#jspからサーブレットdoGetへ遷移したい
jspに直接アクセス
↓
jspでサーブレットdoGetへ飛ぶよう指示
↓
サーブレットでDao処理。Listへ値を格納しAttribureをセット。
再びjspへ
↓
jspでListを取得。表示
の流れでプログラムを組みたい。
jsp
1<!-- 一部省略 --> 2<head> 3<% 4 5 List<Bean> product = (List<Bean>) request.getAttribute("product"); 6 if(product == null || product.isEmpty()){ 7 //サーブレットdoGetへ遷移してListを取得したい 8 response.sendRedirect("ManageHome"); 9 } 10 11%> 12</head> 13 14<body> 15 16 <h3>管理者画面</h3> 17 18 <div class="container"> 19 <table class="table"> 20 <thread> 21 <tr> 22 <th>商品番号</th> 23 <th>商品名</th> 24 <th>金額</th> 25 <th>税込金額</th> 26 </tr> 27 </thread> 28 <tbody> 29 //product.size()でエラー。(Listがnullのため) 30 <% for(int i=0; i < product.size(); i++ ){ %> 31 <tr> 32 <th scope="row"><%=product.get(i).getId() %> </th> 33 <td><%=product.get(i).getName() %></td> 34 <td><%=product.get(i).getPrice() %>円</td> 35 <td><%=product.get(i).getTax_in() %>円</td> 36 </tr> 37 <% } %> 38 </tbody> 39 </table> 40 </div> 41</body>
java
1public class ManageHome extends HttpServlet { 2 private static final long serialVersionUID = 1L; 3 4 /** 5 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 6 */ 7 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 8 try { 9 //DAOをインスタンス化 10 ProductDAO dao = new ProductDAO(); 11 12 List<Bean> product = dao.product(); 13 14 request.setAttribute("product", product); 15 16 request.getRequestDispatcher("/manage.jsp").forward(request, response); 17 18 }catch (Exception e) { 19 e.printStackTrace(); 20 } 21 } 22 23 24}
ManageHome.javaに直接アクセスするとjspに正しく表示されます。
おそらくjspのhead部分インクリメントの記述が正しくないと思われます。
ご教授よろしくおねがいします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/26 11:26
2020/07/26 12:38