我正在使用PrimeFaces和JSF2。我试图通过发送登录名和密码作为Ajax请求来验证用户身份。在支持bean的action方法中,我试图验证用户并在验证成功时重定向到新视图。
使用primefaces时这可能吗?
因为我认为使用primefaces'p:commandButton
,我只能有ajax行为或导航。
答案 0 :(得分:29)
是的,只需发送重定向而不是(默认)转发作为结果。 <navigation-case>
- 更少的JSF 2.0方式会将?faces-redirect=true
附加到action方法中的结果字符串。
E.g。
public String login() {
// ...
return "home?faces-redirect=true";
}
答案 1 :(得分:16)
这是您可能会发现有用的另一种技术。这是当您从未实现导航的Primefaces属性通过AJAX调用方法时。例如,我有一个p:tree对象,其中包含nodeSelectionListener选择的方法。
在该方法中,您可以像这样调用重定向:
String url = (something)
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext ec = fc.getExternalContext();
try {
ec.redirect(url);
} catch (IOException ex) {
Logger.getLogger(Navigation.class.getName()).log(Level.SEVERE, null, ex);
}
希望你觉得这很有用。