• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:長文失礼致します。Java初心者の者です。)

Java初心者のためのMVCモデル JSPエラーの解決方法

このQ&Aのポイント
  • Java初心者の者がMVCモデルに挑戦中ですが、JSPの部分でエラーが発生しています。
  • JSPファイルに何か記述する必要がありますが、具体的に何を記述すれば良いのか分かりません。
  • 質問文章の最後には、JyushoServletとJyushoBeanクラスに関連するコードも含まれています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

>JSPの部分でエラーが出ます。 とありますが、具体的なエラーの内容を書かないとわからないです。 コンパイルエラーなのか、実行時エラーなのか、どんな内容のエラーなのか。 とりあえず、 ><%=LIST.getNo() %> の部分ですが、LISTはArrayList型なのでgetNo()というメソッドはありませんよね。 JSTLやスクリプトレットなどを使ってLISTのループしてJyushoBeanのインスタンスを取得して、 そのインスタンスに対してgetNo()しなければいけないのではないでしょうか。

mew-ktrk
質問者

お礼

ご指摘有難うございました。 以下のように訂正することで、一覧を表示することに成功しました。 <%@ page contentType="text/html; charset=Windows-31J" %> <%@ page import="java.util.*"%> <%@ page import= "jp.co.xxx.bean.Jyusho" %> <jsp:useBean id="LIST" class="java.util.ArrayList" scope="request"/> <html> <body> <CENTER> <b>住所録一覧</b><BR><BR> <TABLE BORDER="1"> <TR><TD><center><b>NO</b></center></TD><TD><center><b>名前</b></center></TD><TD><center><b>住所</b></center></TD><TD><center><b>電話番号</b></center></TD></TR> <TR> <% ArrayList array = (ArrayList)request.getAttribute( "LIST"); for( int i=0; i<array.size(); i++ ) { JyushoBean bean = (JyushoBean) array.get(i); %> <TR> <TD><%=(String)bean.getNo()%></TD> <TD><%=(String)bean.getName()%></TD> <TD><%=(String)bean.Address()%></TD> </TR> <% } %> </TABLE> </CENTER> </body> </html> そこで、もう1つ質問をさせて下さい。 表示したデータから任意のデータ(名前)を選択し、そのデータのみを表示したいのですが、 JSPではどのような処理を加えればよいのでしょうか? ちなみに選択はselectタグを使用して、 <form action="web/app/list"method="post"> <HR> <select name="no"> <option value="山田太郎">山田太郎</option> <option value="山田次郎">山田次郎</option> <option value="山田三郎">山田三郎</option> </select> <input type="submit"value="検索"> </form> ↑このように記述してみました。 また、サーブレットの方は protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try{ String no request.getParameter("no"); Jyusho jyusho = new Jyusho(); List list = Jyusho.list(); List searchList = Jyusho.list(no); request.setAttribute("LIST_SELECT", list); request.setAttribute("LIST", searchList); } catch(Exception e){ e.printStackTrace(); } finally{ ServletContext context = this.getServletContext(); RequestDispatcher dispatcher = context.getRequestDispatcher("/jyusho.jsp"); dispatcher.forward(request, response); 上記の記述を追加しております。 度々申し訳ありません。 独学で学んでいるのですが、JSPの仕組みがなかなか理解できないもので…。

関連するQ&A