JSF commandButton 操作返回正确的值,但导航规则不适用

发布于 2024-10-06 19:18:12 字数 2646 浏览 0 评论 0原文

标题几乎说明了一切。我有一个名为 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&aacute;n Tanulm&aacute;nyi Rendszer
        </p>
        <p>
          Login: <h:inputText binding="#{backing_admin.loginLoginInput}"
                       id="loginLoginInput"/>
        </p>
        <p>
          Jelsz&oacute;: <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 中的操作,该操作返回它应该返回的值,但我被重定向回 l​​ogin.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苏别ゝ 2024-10-13 19:18:13

"ADMIN" 替换为 ADMIN "STUDENTS" 替换为 STUDENTS

删除导航中的 "案件

replace "ADMIN" with ADMIN "STUDENTS" with STUDENTS

remove " in navigation case

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文