※ ChatGPTを利用し、要約された質問です(原文:長文失礼致します。Java初心者の者です。)
Java初心者のためのMVCモデル JSPエラーの解決方法
このQ&Aのポイント
Java初心者の者がMVCモデルに挑戦中ですが、JSPの部分でエラーが発生しています。
JSPファイルに何か記述する必要がありますが、具体的に何を記述すれば良いのか分かりません。
質問文章の最後には、JyushoServletとJyushoBeanクラスに関連するコードも含まれています。
MVCモデルに挑戦しているのですが、JSPの部分でエラーが出ます。
何か足りない気はするのですが、何を記述したら良いのか分かりません。
以下、一部抜粋です。
//JSP
<%@ 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>
<TABLE BORDER="1">
<TR><TD><b>NO</b></TD><TD><b>名前</b></TD><TD><b>住所</b></TD><TD><b>電話番号</b></TD></TR>
<TR>
<TD><%=LIST.getNo() %></TD>
<TD><%=LIST.getName()%></TD>
<TD><%=LIST.getAddress()%></TD>
</TR>
</TABLE></body></html>
//JyushoServlet
public class JyushoServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try{Jyusho jyusho = new Jyusho();
List list = Jyusho.list();
request.setAttribute("LIST", list);}
catch(Exception e){
e.printStackTrace();
}
finally{
ServletContext context = this.getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/jyusho.jsp");
dispatcher.forward(request, response);}
}
}
//JyushoBean
public String getAddress() {
return address;}
public void setAddress(String address) {
this.address = address;}
public String getNo() {
return no;}
public void setNo(String no) {
this.no = no;}
public String getName() {
return name;}
public void setName(String name) {
this.name = name;}
//Jyusho
List list = new ArrayList();
while(resultSet.next()){
JyushoBean bean = new JyushoBean();
bean.setNo(resultSet.getString("NO"));
bean.setName(resultSet.getString("NAME"));
bean.setAddress(resultSet.getString("ADDRESS"));
list.add(bean);}
return list;}
public List list(String no)throws ClassNotFoundException, SQLException{
List list = new ArrayList();
Iterator it = list().iterator();
while(it.hasNext()){
JyushoBean bean = (JyushoBean)it.next();
if(bean.getNo().equals(no)){
list.add(bean);}
}return list;}
}
お手数ですが、ご教授お願い致します。
お礼
ご指摘有難うございました。 以下のように訂正することで、一覧を表示することに成功しました。 <%@ 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の仕組みがなかなか理解できないもので…。