我正在使用 Primefaces mobile(0.9.3 和 Primefaces 3.5)构建 JSF 应用程序。我有一个登录页面,在这个登录页面上有一个登录按钮,定义如下:
<p:commandButton value="#{msg['label.login']}" action="#{loginBean.login}" update="usernameMsg" />
loginBean.login 方法定义如下:
public String login() {
try {
//do login
return "#loggedInTarget?transition=fade";
} catch (UserNotValidException e) {
//User not valid, display exception
FacesContext
.getCurrentInstance()
.addMessage(
"loginForm:username",
new FacesMessage(
FacesMessage.SEVERITY_ERROR,
"",
messageService
.getMessage("error.message.loginNotSuccessfull")));
}
return null;
}
在我的主 xhtml(与定义按钮相同)中,我定义了以下附加视图:
<pm:view id="registerTarget">
<ui:include
src="/WEB-INF/c52bc19d58a64ae4bd12dec187a2d4b7/register.xhtml" />
</pm:view>
<pm:view id="loggedInTarget">
TEST
</pm:view>
我这样做是因为我想在 Primefaces mobile 中使用过渡。要进入注册页面,我使用 ap:button 可以正常工作:
<p:button value="#{msg['label.register']}"
href="#registerTarget?transition=fade" />
为什么我的登录按钮不起作用?我还尝试将“#loggedInTarget?transition=fade”作为操作直接放入,但这也不起作用:(
我需要该操作,因为我必须检查用户凭据是否有效。如果它们有效,我想显示我的 loggedInTarget。
我怎样才能实现它?
提前致谢!
编辑:按钮在表单内。