2

リストを反復処理して、値を次のように出力しようとしています:

<jsp:useBean class="com.lftechnology.db.EmployeeDaoImpl" id="empImpl"></jsp:useBean>
<jsp:useBean class="com.lftechnology.employee.Employee" id="employee"></jsp:useBean>

<%
List<com.lftechnology.employee.Employee> empList = null; 
empList = empImpl.getAllEmployee();
out.println(empList.size());
%>


<c:forEach items="${empList}" var="element"> 
  <tr>
    <td>${element.name}</td>
    <td><c:out value="${element.name}" /></td>
     </tr>
</c:forEach>

ただし、namejstl 内で定義されているものではなく、リストのサイズのみが出力されます。何か助けはありますか?employeeオブジェクトのすべての属性を印刷したい。

4

1 に答える 1

3

なぜスクリプトレットを使用するのですか?このようなものが機能するはずです(私はそれをテストできませんでした):

<jsp:useBean class="com.lftechnology.db.EmployeeDaoImpl" id="empImpl"></jsp:useBean>

<c:forEach items="${empImpl.allEmployee}" var="element"> 
  <tr>
    <td>${element.name}</td>
    <td><c:out value="${element.name}" /></td>
  </tr>
</c:forEach>

いくつかの背景

スクリプトレットで変数を宣言するだけでは、JSTLランタイムで変数を自動的に使用できるようにはなりません。実際、JSTLはpageContext、実行時にコンテナによって各JSPに注入されたものに対して機能します。したがって、スクリプトレットで変数を宣言する必要があり、それをJSTLで使用できるようにする場合は、次のように明示的に行う必要があります。

<%
List<String> stuff = new ArrayList<String>();
request.setAttribute("mystuff", stuff);
%>

<c:out value="${mystuff" />
于 2012-11-29T05:14:27.200 に答える