0

HTMLテーブルに1行を表示するためのHTMLおよびJavaコードを以下に示します。

<table id="myTable" border="0" cellspacing="0" style="border-spacing:0; width:100%;border-collapse: collapse;">
            <%
                Object object = request.getAttribute("myContact");
                MyModel myModel = (MyModel)object;

                String mail = myModel.getmail()!=null ? myModel.getmail().toString().trim() : "";
                String title = myModel.gettitle()!=null ? myModel.gettitle().toString().trim() : "";
                String name = myModel.getname()!=null ? myModel.getname().toString().trim() : "";               
            %>

            <tr>
            <td class="table-border-bottom"><label for="name">Name:</label></td>
            <td class="table-border-bottom"><input id="name" type="text" value='<%=name%>' name="name" class="required" style="height: 17px;"/>
            </td>
            <td class="table-border-bottom"><label for="contactTitle">Title:</label></td>
            <td class="table-border-bottom"> <input id="title" type="text" value='<%=title%>' name="title" class="required" style="height: 17px;"/>

            </td>
            <td class="table-border-bottom"><label for="mail">Email:</label></td>
            <td class="table-border-bottom"><input id="mail" type="text" value='<%=mail%>' name="mail" class="required email" style="height: 17px; "/>

            </td>
            </tr>


            <tr align="center">
            <td valign="bottom" colspan="6" style="height: 45px; ">
            <input type="button" id="submit" name="submit" value="Save" style="width: 80px ; height:24px; text-align: center;border-radius: 10px 10px 10px 10px;"/> 
            <input type="button" id="revert" name="revert" value="Revert" style="width: 80px ; height:24px;text-align: center;border-radius: 10px 10px 10px 10px;"/></td>
            </tr>

      </table>   

データベースから 1 行を取得し、リクエスト スコープ内に保持してから、jsp で同じ行にアクセスし、上記のように html テーブルに表示します。問題なく動作します。問題は、データベースから行のリストを取得し、html で複数の行として表示する必要があることです。また、行の各コンポーネントに一意の ID を割り当てる必要があり、上記のように CSS スタイルを適用する必要もあります。このような場合、ループ内のロジックの上で繰り返して、css スタイルの行のリストを適切に表示するにはどうすればよいですか?

ありがとう!

4

3 に答える 3

1

MyModelクラスに次のような Bean スタイルのゲッターがある場合:

public String getMail() {
   return this.mail;
}

属性の値を取得するには、ELのようなものを使用する必要があります。${myContact.mail}mail

クロスサイト スクリプティングを回避するには、 JSTL<c:out value="${myContact.mail}">タグを使用することをお勧めします。


を表示する場合は、リクエストを JSP に転送するサーブレットList<MyModel>のスコープに設定します。request

request.setAttribute("myModelsList",myModelsListObject);

次に、JSTL の<forEach>ループを使用して、 の各要素を反復処理しList、表示します。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 ...
<table>
   <c:forEach items="${myModelsList}" var="myModel" varStatus="count">
    <tr id="${count.index}">
        <td>${myModel.mail}</td>
        <td>${myModel.title}</td>
        <td>${myModel.name}</td>
    </tr>
  </c:forEach>
</table>

また読む:

  1. JSPファイルでJavaコードを回避するには? .
  2. JSTL forEach ループの varStatus を ID として使用する
  3. JSPを使用してHTMLテーブルの行の色を変える方法は?
于 2013-07-29T14:37:43.963 に答える