我正在使用Sun JSF 2.0并编写了一个扩展javax.faces.event.PhaseListener
的阶段侦听器。我能够记录源URI,目标URI,总时间等。但到目前为止,无法记录ManagedBean以及该客户端事件期间将调用的相应方法。我怎样才能做到这一点?在PhaseListener中记录调用的托管bean操作
3
A
回答
11
输入部件发送他们的客户端ID作为请求参数的名称在同步请求的情况下和作为javax.faces.source
请求参数的请求参数值(AJAX)请求的异步情况。只需循环请求参数,并根据此信息检查UICommand
组件是否可由UIViewRoot#findComponent()
解决,然后进行相应处理。
开球例如:Sun公司已经接管了甲骨文在一年前
@Override
public void beforePhase(PhaseEvent event) {
FacesContext context = event.getFacesContext();
if (context.isPostback()) {
UICommand component = findInvokedCommandComponent(context);
if (component != null) {
String methodExpression = component.getActionExpression().getExpressionString();
// It'll contain #{bean.action}.
}
}
}
private UICommand findInvokedCommandComponent(FacesContext context) {
UIViewRoot view = context.getViewRoot();
Map<String, String> params = context.getExternalContext().getRequestParameterMap();
if (context.getPartialViewContext().isAjaxRequest()) {
return (UICommand) view.findComponent(params.get("javax.faces.source"));
} else {
for (String clientId : params.keySet()) {
UIComponent component = view.findComponent(clientId);
if (component instanceof UICommand) {
return (UICommand) component;
}
}
}
return null;
}
+0
它的工作......谢谢 – Hussain 2011-01-25 01:38:21
相关问题
- 1. 如何在富文件中调用托管bean操作:popupPanel
- 2. JSF 2 - 从托管bean获取PhaseListener的实例
- 3. commandButton不会调用托管bean动作
- 4. 托管bean作为托管属性
- 5. 通过javascript调用控制器托管bean中的操作方法
- 6. JSF在托管bean中获取当前操作
- 7. JSF托管Bean在Servlet中
- 8. JSF托管bean
- 9. 无法从DojoFaces按钮组件调用托管bean操作方法
- 10. JSF中的托管bean
- 11. C#互操作AccessViolationException与托管回调
- 12. 使用COM互操作从非托管代码调用托管代理
- 13. Spring在方法调用过程中获得托管bean
- 14. 业务逻辑类如何在托管bean中调用方法?
- 15. 托管Bean继承
- 16. 替换托管bean
- 17. 默认情况下会调用会话作用域托管bean中的resetProperty()?
- 18. 如何在非托管对象中获得托管bean?
- 19. ADF:通过JSP中的托管bean调用方法
- 20. 如何从jersey.servlet.ServletContainer托管bean获取Spring托管bean?
- 21. 未构建的托管bean
- 22. JSF - 托管bean的变量?
- 23. Glassfish中使用JSF托管bean的spring bean的问题
- 24. 在mysql中记录用户操作
- 25. 在Android中记录用户操作
- 26. Gwt-ext。 Bean记录并记录到bean
- 27. 在页面加载时调用托管bean方法
- 28. 使用jsp:usebean和jsf托管的bean?
- 29. 在托管实体上的Bean验证
- 30. @ViewScoped托管bean中的@EJB导致java.io.NotSerializableException
注意。 – BalusC 2011-01-24 23:43:47