私は Struts2 フレームワークの初心者であり、Struts2 の本を読む時間があまりありませんでした。私はYouTubeからそれを学んでいます。とにかくここに私の質問があります。
おそらく私のstruts.xmlは以下の通りです:
<struts>
<package name="p1" namespace="/" extends="struts-default">
<action name="login" class="org.tutorial.struts2.action.LoginAction">
<result name="success" type="redirect" >searchTutorialForm</result>
<result name="error">/login.jsp</result>
</action>
<action name="searchTutorialForm">
<result>/searchForm.jsp</result>
</action>
</package>
</struts>
パッケージ p1 について話しましょう。
URL が [http://localhost:8080/Struts2/login] の場合、org.tutorial.struts2.action.LoginAction が呼び出され、成功すると、searchForm.jsp を呼び出す searchTutorialForm アクション タグにリダイレクトされます。
したがって、クライアントに表示される URL は [http://localhost:8080/Struts2/searchTutorialForm] です (目的は、クライアントが [http://localhost:8080/Struts2/searchForm.jsp] を表示することではありません)。
現在、タグを使用して searchForm.jsp に表示されている LoginAction にいくつかのメンバー変数があります。ただし、このアプローチを使用すると、オブジェクト LoginAction が ValueStack に存在しなくなったと思われるため、それらは表示されません (リダイレクト後、私は思いますか??)。
もちろん、上記のアプローチを使用しない場合は、代わりに以下のようにします。
<struts>
<package name="p1" namespace="/" extends="struts-default">
<action name="login" class="org.tutorial.struts2.action.LoginAction">
<result name="success">/searchForm.jsp</result>
<result name="error">/login.jsp</result>
</action>
</package>
</struts>
次に、LoginAction オブジェクトのメンバー変数が タグを使用して success.jsp に表示されます (ただし、ユーザーには URL [http://localhost:8080/Struts2/searchForm.jsp] が表示されます)。
基本的に私の意図は、ユーザーが特定の内部ファイルや .jsp や .action などの呼び出しを表示しないようにすることです。
重要な注意: アクション タグ searchTutorialForm にはアクション クラスはありません。基本的にはダミー アクションです。
質問:
1. 最初の方法を使用して LoginAction オブジェクトにメンバー変数を表示するにはどうすればよいですか?
2. Value Stack 内の LoginAction オブジェクトのライフサイクルは?
ありがとう。