0

認証クラスを介してユーザーを認証するログインページを作成しました。認証後、次のステートメントを使用して JSP ページにリダイレクトします。

response.sendRedirect("welcome.page");

tiles-defs.xmlこれは、実際の jsp ページへのマッピングを探す必要があります。私はこれを次のように提供しました

<definition name="main.layout" path="/mainLayout.jsp">
<put name="header" value="/header.jsp"/>
<put name="info" value="/info.jsp"/>
<put name="menu" value="/menu.jsp"/>
<put name="body" value=""/>
<put name="footer" value="/footer.jsp" />
</definition>

<definition name="welcome.page" extends="main.layout">
<put name="title" value="Welcome"/>
<put name="body" value="/welcome.jsp"/>
</definition>

mainLayout.jspと のページを作成しましたwelcome.jsp。ユーザーが認証されたら、にリダイレクトする必要がありwelcome.jspます。しかし、「Web ページが見つかりません」というエラーが表示されます。マッピングが正しくないためwelcome.jsp、 を見つけることができないと思いますが、どこで間違ったのかわかりません。

4

2 に答える 2

1

ActionClassユーザー認証ロジックnaを配置したユーザーのいずれかで、ユーザーを認証した後、アクションクラスはnaを返す必要があります。次に、次のようなコードを配置する必要があるファイルにreturn mapping.findForward(SUCCESS); コントロールフォーカスがあります。struts-config.xml

 <action input="/index.jsp" name="loginForm" path="/login" scope="session" type="gg.locinAction">
        <forward name="success" path="welcome.page"/>
 </action>

次に、ファイル内の定義に焦点を合わせてtiles-defs.xml、次のように定義を記述します。welcome.pagetiles-defs.xml

<definition name="welcome.page" extends="main.layout">
  <put name="title" value="Welcome"/>
  <put name="body" value="/welcome.jsp"/>
</definition>

次に、定義が実行され、必要なページがタイルに表示されます。

于 2012-07-03T11:03:46.190 に答える
0

タイル定義にリダイレクトすることはできません。リダイレクトとは、「次の URL にアクセスしてください」という応答をブラウザに送信することです。タイル定義は URL ではありません。

JSP にリダイレクトすると、JSP が実行されます。ただし、適切に設計された MVC アプリケーションでは、すべての要求がコントローラーを通過する必要があるため、これは悪い習慣です。もちろん、アクションの URL にリダイレクトすることもできます。これは、あなたがすべきことです: URL にリダイレクトされます ( Struts のウェルカム アクションの URL であるとwelcome.do仮定します)。welcome.do

于 2012-07-02T10:15:16.880 に答える