웹 게시판 만들기
<body>
<h1> 질문받습니다. </h1>
<div>[home] <a href="boardList"> [질의응답]</a></div>
</body>
jsp 파일에 서블릿으로 가는 하이퍼링크를 연결해두었다.
boardList 서블릿으로 이동
등록된 게시글을 전부 출력해야 하기 때문에 DAO객체를 만들어주고 DAO 객체의 모든 게시글을 가지고 오는 메서드를 사용해서 ArrayList에 저장해 주었다.
private boardDAO bdao=new boardDAO();
ArrayList<boardVO> list=new ArrayList<>();
list=bdao.selectAll();
DAO객체의 selectAll()메서드
public ArrayList<boardVO> selectAll(){
ArrayList<boardVO> allList=new ArrayList<>();
String sql="select * from qa";
if(connect()) {
ResultSet rs=null;
try {
Statement st=conn.createStatement();
rs=st.executeQuery(sql);
while(rs.next()) {
boardVO bvo=new boardVO();
bvo.setNum(rs.getInt("num"));
bvo.setId(rs.getString("id"));
bvo.setName(rs.getString("name"));
bvo.setPass(rs.getString("pass"));
bvo.setTitle(rs.getString("title"));
bvo.setContent(rs.getString("content"));
bvo.setIndate(rs.getString("indate"));
bvo.setChkbox(rs.getString("chkbox"));
allList.add(bvo);
}
conn.close();
return allList;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
결과를 저장할 ResultSet rs변수를 선언하고 rs.next()메서드를 사용하여 변수에 VO객체를 넣어준다.
데이터베이블의 모든 결과를 select 했으니 모든 게시글이 arrayList에 저장되고 리턴한다.
String url="bbs/list.jsp";
RequestDispatcher dispatcher= request.getRequestDispatcher(url);
request.setAttribute("blist", list);
dispatcher.forward(request, response);
System.out.println(list.size());
//디버깅용 sysout
리턴된 arrayList를 저장하고 setAttribute로 view페이지에 넘겨준다.
<%
ArrayList<boardVO> al=(ArrayList)request.getAttribute("blist");
for(int i=0; i<al.size(); i++){
boardVO bvo=al.get(i);
out.print("<tr class='record'>");
out.print("<td><a href='"+request.getContextPath()+"/boderView?wno="+bvo.getNum()+"'>" + bvo.getNum() + "</td>");
if(bvo.getChkbox().equals("N")){
out.print("<td>"+bvo.getTitle()+"* </td>");
}else{
out.print("<td>"+bvo.getTitle()+"</td>");
}
out.print("<td>"+bvo.getName()+"</td>");
out.print("<td>"+bvo.getId()+"</td>");
out.print("<td>"+bvo.getIndate()+"</td>");
out.print("</tr>");
}
%>
JSTL(Jsp Standard Tag Library)
view 페이지의 테이블을 생성하고 <%= %> 사이에 자바코드를 넣어주면 html문서안에 자바코드를 사용할 수 있다.
getAttribute로 리스트를 넘겨받고 for문으로 한게시글 당 하나의 즉 한줄이 추가될 수 있게 작성하였다.
그리고 게시글의 번호를 클릭하면 게시글의 세부내용을 확인할 수 있게 하기 위해 하이퍼링크를 걸어주었다.