Struts 1.3 で、コントローラーがビューに変数を入力する最善の方法は何ですか?
-
01-07-2019 - |
質問
古い Struts コードをいくつか継承しました。
Struts (1.3) が MVC パターンに従っている場合、Action クラスは HTML でレンダリングする変数をビューにどのように埋め込むのでしょうか?
これまでのところ、Action クラスが変数をプッシュするのを見てきました。 (1)
HTTP リクエスト
request.setAttribute("name", user.getName())
(2)
ActionForm クラスで、アプリケーション固有のメソッドを使用します。
UserForm form = (UserForm) actionForm;
form.setUserName(user.getName());
そして (3)
requestScope 変数。JSP レイヤー (ビューは JSP を使用します) には表示されますが、Action クラスには表示されません。
<p style='color: red'><c:out value='${requestScope.userName}' /></p>
それでは、これらのうちどれが古いと考えられていますか?また、Struts のビューに変数をプッシュする推奨される方法は何でしょうか?
解決
として Struts 1.3
は時代遅れだと考えられているため、流れに身を任せ、継承したアプリケーション全体ですでに使用されているスタイルを使用することをお勧めします。
さまざまなスタイルがすべてすでに使用されている場合は、最もよく使用されているスタイルを選択します。その後、個人的なお気に入りを選択してください。私の場合は 1 または 3 です。通常、フォーム (2) は、最終的に一部のフォーム コントロール内でレンダリングされるデータに最適です。この場合はフォームを使用し、そうでない場合は使用しないでください。
他のヒント
私の Struts の時代はとうの昔に終わりましたが、私が覚えている限り、以前は 1 つのビュー固有の Bean (より詳細な Bean または Bean のコレクションのホルダーとして機能します) を Action.perform() 内のリクエスト スコープに配置していました。実装。このビュー固有の Bean はビューによってレンダリングされます。