JSF commandButton 操作返回正确的值,但导航规则不适用
标题几乎说明了一切。我有一个名为 login.jsp 的页面:
<f:view>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1250"/>
<title>Bejelentkezés</title>
<!--<script language="JavaScript" src="login.js" type="text/javascript"></script>-->
</head>
<body>
<h:form>
<h:messages/>
<p>
Urán Tanulmányi Rendszer
</p>
<p>
Login: <h:inputText binding="#{backing_admin.loginLoginInput}"
id="loginLoginInput"/>
</p>
<p>
Jelszó: <h:inputSecret binding="#{backing_admin.loginPasswordInput}"
id="loginPasswordInput"/>
</p>
<p>
<h:commandButton value="Bejelentkezés"
binding="#{backing_admin.loginLoginButton}"
id="loginLoginButton"
action="#{backing_admin.loginAction}"/>
</p>
</h:form>
</body>
</html>
</f:view>
<%-- oracle-jdev-comment:auto-binding-backing-bean-name:backing_admin--%>
和一些导航规则:
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee">
<managed-bean>
<managed-bean-name>backing_admin</managed-bean-name>
<managed-bean-class>hu.elte.pgy2.BACNAAI.view.backing.BackingAdmin</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<!--oracle-jdev-comment:managed-bean-jsp-link:1admin.jsp-->
<!--oracle-jdev-comment:managed-bean-jsp-link:1login.jsp-->
</managed-bean>
<navigation-rule>
<from-view-id>/login.jsp</from-view-id>
<navigation-case>
<from-action>#{backing_admin.loginAction}</from-action>
<from-outcome>"ADMIN"</from-outcome>
<to-view-id>/admin.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-action>#{backing_admin.loginAction}</from-action>
<from-outcome>"STUDENT"</from-outcome>
<to-view-id>/student.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
</faces-config>
单击 login.jsp 上的按钮会调用支持 bean 中的操作,该操作返回它应该返回的值,但我被重定向回 login.jsp 而不是页面在导航规则中定义。什么可能导致这种情况发生?
Title pretty much says it all. I have a page called login.jsp:
<f:view>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1250"/>
<title>Bejelentkezés</title>
<!--<script language="JavaScript" src="login.js" type="text/javascript"></script>-->
</head>
<body>
<h:form>
<h:messages/>
<p>
Urán Tanulmányi Rendszer
</p>
<p>
Login: <h:inputText binding="#{backing_admin.loginLoginInput}"
id="loginLoginInput"/>
</p>
<p>
Jelszó: <h:inputSecret binding="#{backing_admin.loginPasswordInput}"
id="loginPasswordInput"/>
</p>
<p>
<h:commandButton value="Bejelentkezés"
binding="#{backing_admin.loginLoginButton}"
id="loginLoginButton"
action="#{backing_admin.loginAction}"/>
</p>
</h:form>
</body>
</html>
</f:view>
<%-- oracle-jdev-comment:auto-binding-backing-bean-name:backing_admin--%>
And some navigation rules:
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee">
<managed-bean>
<managed-bean-name>backing_admin</managed-bean-name>
<managed-bean-class>hu.elte.pgy2.BACNAAI.view.backing.BackingAdmin</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<!--oracle-jdev-comment:managed-bean-jsp-link:1admin.jsp-->
<!--oracle-jdev-comment:managed-bean-jsp-link:1login.jsp-->
</managed-bean>
<navigation-rule>
<from-view-id>/login.jsp</from-view-id>
<navigation-case>
<from-action>#{backing_admin.loginAction}</from-action>
<from-outcome>"ADMIN"</from-outcome>
<to-view-id>/admin.jsp</to-view-id>
<redirect/>
</navigation-case>
<navigation-case>
<from-action>#{backing_admin.loginAction}</from-action>
<from-outcome>"STUDENT"</from-outcome>
<to-view-id>/student.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
</faces-config>
Clicking the button on login.jsp invokes the action in the backing bean, which returns the value it's supposed to, but I get redirected back to login.jsp instead of the page defined in the navigation rule. What could cause this to happen?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将
"ADMIN"
替换为ADMIN
"STUDENTS"
替换为STUDENTS
删除导航中的
"
案件replace
"ADMIN"
withADMIN
"STUDENTS"
withSTUDENTS
remove
"
in navigation case