0

私はjpa、jsf、jaasアプリケーションを開発していますが、今この問題があります:

web.xml にこのセキュリティ制約があります

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Private</web-resource-name>
            <url-pattern>/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
    </web-resource-collection>          
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.xhtml</form-login-page>
        <form-error-page>/badLogin.xhtml</form-error-page>
    </form-login-config>
</login-config>

したがって、アプリケーションが起動するたびに、ユーザーはログイン ページにリダイレクトされますが、ページは表示されますが、faces サーブレットを通過していないため、faces コンポーネントはレンダリングされません。これは私の Faces サーブレット マッピングです

 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
   <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
     <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>

どうしたの?

4

1 に答える 1

3

リクエスト URL が Faces サーブレットの URL パターンと一致していることを確認してください。

現在のセットアップでは、次の 2 つのオプションがあります。

  1. どちらかが変わる

    <form-login-page>/login.xhtml</form-login-page>
    <form-error-page>/badLogin.xhtml</form-error-page>
    

    <form-login-page>/login.jsf</form-login-page>
    <form-error-page>/badLogin.jsf</form-error-page>
    

    Faces サーブレットの URL パターンと一致するようにします。


  2. または、変更

    <url-pattern>*.jsf</url-pattern>
    

    <url-pattern>*.xhtml</url-pattern>
    

    仮想 URL をいじる必要がないようにします。

于 2013-02-18T13:37:44.443 に答える