0

JSPでデータベーステーブルを表示する必要があります。

データベースで見つかったすべてのデータを表示するメソッドを含むセッションBeanがあります。

JSPでどのように使用しますか?

コード(以下のコメントから):

@Override public List findAll() { 
   String flightQuery = "SELECT f FROM Flights f"; 
   Query q = em.createQuery(flightQuery); 
   List existing = q.getResultList(); 

   if (existing.isEmpty()) { 
       System.out.println("Invalid");
   }
   return existing; 
}

JSPコード

<c:forEach items="${flights}" var="flight"> 
   <tr> 
   <td>${flight.flightid}</td> 
   <td><c:out value="${flight.flightnumber}" /></td> 
   <td><c:out value="${flight.datetime}" /></td> 
   <td><c:out value = "${flight.seatsleft}"</td> 
   <td><c:out value="${flight.id}" /></td> 
   <td><c:out value="${flight.price}" /></td> 
   <td><c:out value="${flight.originairport}" /></td> 
   <td><c:out value="${flight.destinationairport}" /></td>
   </tr>
</c:forEach> 
</table> 

テーブルに表示されていません。

4

1 に答える 1

3

コントローラ サーブレットを使用します。目的のジョブを正確に実行する基本的な例は、サーブレット wiki ページの「Hello World #2 (リクエストの前処理)」セクションで、ページの約半分に既に示されています。@EJBアノテーションを使用して、EJB をサーブレットに直接注入できます。

関連性の抜粋を次に示します。

@WebServlet("/products")
public class ProductServlet extends HttpServlet {

    @EJB
    private ProductService productService;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Product> products = productService.list();
        request.setAttribute("products", products);
        request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response);
    }

}

そして、JSPで:

<c:forEach items="${products}" var="product">
    <tr>
        <td>${product.id}</td>
        <td><c:out value="${product.name}" /></td>
        <td><c:out value="${product.description}" /></td>
        <td><fmt:formatNumber value="${product.price}" type="currency" /></td>
    </tr>
</c:forEach>

最後に、サーブレットをその URL で呼び出すだけです: http://localhost:8080/context/products.

于 2013-01-15T16:11:59.120 に答える