我正在使用带有 JSF2 的 PrimeFaces。我正在尝试通过将登录名和密码作为 Ajax 请求发送来对用户进行身份验证。在支持 bean 的操作方法中,我正在尝试验证用户并在验证成功时重定向到新视图。
使用primefaces时这可能吗?
因为我认为使用 primefaces' p:commandButton
,我只能有 ajax 行为或导航。
我正在使用带有 JSF2 的 PrimeFaces。我正在尝试通过将登录名和密码作为 Ajax 请求发送来对用户进行身份验证。在支持 bean 的操作方法中,我正在尝试验证用户并在验证成功时重定向到新视图。
使用primefaces时这可能吗?
因为我认为使用 primefaces' p:commandButton
,我只能有 ajax 行为或导航。
是的,只需发送重定向而不是(默认)转发作为结果。<navigation-case>
-less JSF 2.0 方式将附加到?faces-redirect=true
操作方法中的结果字符串。
例如
public String login() {
// ...
return "home?faces-redirect=true";
}
这是您可能会发现有用的另一种技术。这是当您通过 AJAX 从不实现导航的 Primefaces 属性调用方法时。例如,我有一个 ap: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);
}
希望您觉得这个有帮助。