我有一个管理的Bean,希望根据调用它的页面将其方法内的逻辑分开处理,是否存在一种方法可以实现这个目标?
这可以通过UIViewRoot#getViewId()
实现。
String viewId = FacesContext.getCurrentInstance().getViewRoot().getViewId();
我必须说明的是,这有点像一种气味。取决于您认为检查调用XHTML页面将是正确解决方案的具体功能要求,可能会有更好的方法来实现具体的功能需求。
我认为有两种方法,第一种是从Http请求中获取referer头,它可能包含请求页面的url。
FacesContext.getCurrentInstance().getExternalContext().getRequestHeaderMap().get("referer")
另一个选项是通过发送参数进行导航,例如在查询字符串中添加viewId作为参数,在jsf-2中,您可以在页面导航时发送参数使用
我希望这能帮助到您
FacesContext.getCurrentInstance().getExternalContext().getContextName()
来导航 UIView。 - Bob Dalgleish