이번에는 show, 글을 클릭했을 때에 글을 보여주는 부분을 설명하겠습니다.
우선 list.do를 실행하게 되면 글목록이 나오는데 여기서 글을 클릭하는 링크는 "show.do?id=숫자" 입니다.
해당 글의 id를 요청하게 됩니다.
show의 액션매핑의 액션을 보도록합시다.
<action path="/show"
type="simpleboard.actions.showAction"
scope="request">
<forward name="success" path="/show.jsp"/>
</action>
type="simpleboard.actions.showAction"
scope="request">
<forward name="success" path="/show.jsp"/>
</action>
showAction클래스를 실행하게 됩니다.
showAction클래스를 보도록 합시다.
showAction.java
[code]
package simpleboard.actions;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import simpleboard.model.Board;
import simpleboard.model.BoardDAO;
public class showAction extends Action{
public ActionForward execute( ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
BoardDAO dao = new BoardDAO();
Board board = new Board();
HttpSession session = request.getSession();
int id = Integer.parseInt(request.getParameter("id"));
board = dao.findBoard(id);
board.setContent(dao.convertHtmlBr(board.getContent()));
session.setAttribute("board", board);
return mapping.findForward("success");
}
}
[/code]
id를 파라메터로 받고 그것을 dao에 있는 findBoard메소드에 넘겨줍니다. 이 메소드는 해당 id에 있는 글, 제목 등을 리턴시켜줍니다.
그리고 중요한 것이 converHtmlBr이라는 메소드를 실행하게 되는데 이것은 content에 있는 내용에 "\n"을 모두 <br>로 바꿔주는 메소드입니다. 이것을 안해주면 html에서는 \n을 인식못하므로 <br>로 바꿔줘야합니다.
바꾼다음에 현재글을 세션에 저장합니다.
이제 show.jsp소스코드를 보도록 합시다.
show.jsp
[code]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>심플보드에 오신 것을 환영합니다</title>
</head>
<body>
<center>
<table border="1" width="500" height="50">
<tr>
<td align="center" bgcolor="dddddd">
간단한 게시판 (Simple Board)
</td>
</tr>
</table>
<table width="500" border="1">
<tr>
<td width="100" bgcolor="#7eaee9">등록자</td>
<td width="400" align="left">
<bean:write name="board" property="name"/>
</td>
</tr>
<tr>
<td bgcolor="#7eaee9">제 목</td>
<td align="left">
<bean:write name="board" property="title"/>
</td>
</tr>
<tr>
<td bgcolor="#7eaee9">내용</td>
<td align="left">
<bean:define id="content" name="board" property="content"/>
<%= content %>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<html:link page="/modifyConfirm.do" paramId="id"
paramName="board" paramProperty="id">
수정</html:link>
<html:link page="/deleteForm.do" paramId="id"
paramName="board" paramProperty="id">
삭제</html:link>
<html:link page="/list.do">목록보기</html:link></td>
</tr>
</table>
<table border="1" width="500" height="28">
<tr>
<td align="center" bgcolor="dddddd">
제작자 : 성종천(mudchobo@nate.com)
</td>
</tr>
</table>
</center>
</body>
</html>
[/code]
여기서 board에 있는 값을 bean:write태그를 통해서 출력을 합니다.
중간쯤 보면 <bean:define id="content" name="board" property="content"/><%= content %>
content부분은 define으로 정의를 해서 jsp코드를 사용합니다. 이것은 왜그런지는 잘 모르겠지만 그냥 bean:write해버리면 <br>이 그냥 나타나버립니다-_-;
그래서 저렇게 정의를 한 뒤 jsp코드로 사용해야 합니다.
그리고 수정이나 링크부분은 param으로 id번호를 넘겨줘서 링크를 시킵니다.
오늘은 여기까지!-_-;
package simpleboard.actions;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import simpleboard.model.Board;
import simpleboard.model.BoardDAO;
public class showAction extends Action{
public ActionForward execute( ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
BoardDAO dao = new BoardDAO();
Board board = new Board();
HttpSession session = request.getSession();
int id = Integer.parseInt(request.getParameter("id"));
board = dao.findBoard(id);
board.setContent(dao.convertHtmlBr(board.getContent()));
session.setAttribute("board", board);
return mapping.findForward("success");
}
}
[/code]
id를 파라메터로 받고 그것을 dao에 있는 findBoard메소드에 넘겨줍니다. 이 메소드는 해당 id에 있는 글, 제목 등을 리턴시켜줍니다.
그리고 중요한 것이 converHtmlBr이라는 메소드를 실행하게 되는데 이것은 content에 있는 내용에 "\n"을 모두 <br>로 바꿔주는 메소드입니다. 이것을 안해주면 html에서는 \n을 인식못하므로 <br>로 바꿔줘야합니다.
바꾼다음에 현재글을 세션에 저장합니다.
이제 show.jsp소스코드를 보도록 합시다.
show.jsp
[code]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>심플보드에 오신 것을 환영합니다</title>
</head>
<body>
<center>
<table border="1" width="500" height="50">
<tr>
<td align="center" bgcolor="dddddd">
간단한 게시판 (Simple Board)
</td>
</tr>
</table>
<table width="500" border="1">
<tr>
<td width="100" bgcolor="#7eaee9">등록자</td>
<td width="400" align="left">
<bean:write name="board" property="name"/>
</td>
</tr>
<tr>
<td bgcolor="#7eaee9">제 목</td>
<td align="left">
<bean:write name="board" property="title"/>
</td>
</tr>
<tr>
<td bgcolor="#7eaee9">내용</td>
<td align="left">
<bean:define id="content" name="board" property="content"/>
<%= content %>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<html:link page="/modifyConfirm.do" paramId="id"
paramName="board" paramProperty="id">
수정</html:link>
<html:link page="/deleteForm.do" paramId="id"
paramName="board" paramProperty="id">
삭제</html:link>
<html:link page="/list.do">목록보기</html:link></td>
</tr>
</table>
<table border="1" width="500" height="28">
<tr>
<td align="center" bgcolor="dddddd">
제작자 : 성종천(mudchobo@nate.com)
</td>
</tr>
</table>
</center>
</body>
</html>
[/code]
여기서 board에 있는 값을 bean:write태그를 통해서 출력을 합니다.
중간쯤 보면 <bean:define id="content" name="board" property="content"/><%= content %>
content부분은 define으로 정의를 해서 jsp코드를 사용합니다. 이것은 왜그런지는 잘 모르겠지만 그냥 bean:write해버리면 <br>이 그냥 나타나버립니다-_-;
그래서 저렇게 정의를 한 뒤 jsp코드로 사용해야 합니다.
그리고 수정이나 링크부분은 param으로 id번호를 넘겨줘서 링크를 시킵니다.
오늘은 여기까지!-_-;