1

サーブレットと単純な JSP ページを検討します。

プレゼンテーションとアプリケーションの間の結合をできるだけ減らし、JSP ページの Java コードをできるだけ減らしたいと考えています。

JSP ページに、Java で満たされた単純な HTML リストがあります。

  <%
  String[] myList = (String[])request.getAttribute("myList");
  %>

  <form name="selection" action="foo.jsp">
       <select name="myList">
           <option value=""> </option>
           <% for (int i = 0; i < myList.length; i++){%>
               <option value="<%=i%>"><%=myList[i]%></option>
           <%}%>
       </select>
       <input type="submit" />
   </form>

プレゼンテーションで Java コード (ループ) をできるだけ減らすために、使用する最善の方法/パターンは何ですか? サーブレットで直接 html を生成しても問題は改善されません。

編集: doGet() サーブレット メソッドで解決策を探しています。

4

1 に答える 1

1

JSTL を使用して、JSP ページのロジックをクリーンアップできます。MVC のようなパターンを使用して、バックエンドの設計を改善できます。

実際、現在のコードでは単純に JSTL で十分ですが、複雑さが増すにつれて、Spring、Struts、EJB などのフレームワークを検討して、懸念事項をより堅牢で明確に分離し、長期的な保守性を確保したいと思うかもしれません。

たとえば、JSTL に相当するものは次のようになります。

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

  <form name="selection" action="foo.jsp">
       <select name="myList">
           <option value=""> </option>
       <c:forEach var="item" items="${myList}"  varStatus="status">
          <option value='<c:out value="${status.index}"/>'><c:out value="${item}" /></option>
           </c:forEach>           
       </select>
       <input type="submit" />
   </form>

Some Notes:

ビュー (JSP) にビジネス ロジックを追加するのではなく、単にモデル (myItems) を使用してビューを描画するという点で、ある程度 MVC パターンの一部に従っています。モデルがどのように構築され、どのビジネス ロジックが実行されたかは、ビューとは別に保持されます。

そして、Javaコードを削減するというあなたのポイントまで、ビューは単にモデルを利用してプレゼンテーションをユーザーにレンダリングするように機能します。コードの代わりに、ビュー フレームワーク/ライブラリを利用してモデルをレンダリングするのに役立ちます。これは、多くの人が JSP 内で JSTL を利用したり、Velocity などの代替テンプレート フレームワークを使用したり、アンダースコアなどの完全なフロント エンド JavaScript テンプレートを使用したりして行われます。

Some Links:

JSTL チュートリアル: http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm

JSTL @ Java.net: https://jstl.java.net/

MVC パターン: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

スプリング フレームワーク: http://www.springsource.org/spring-framework

于 2013-06-13T19:05:52.690 に答える