Struts °Ô½ÃÆÇ
Struts - First Steps ¸¦ ¸ÕÀú ½Ç½ÀÇÑ ´ÙÀ½ ¾Æ·¡¸¦ ¼öÇà
- mystruts-helloworld/WEB-INF/lib ¿¡ ÀÖ´Â ¾ÆÄ«ÀÌºê ÆÄÀÏÀ» dadam/WEB-INF/lib ¿¡ º¹»ç
- mystruts-helloworld/WEB-INF/src/MessageResources.properties ¸¦ dadam/WEB-INF/src ¿¡ º¹»ç
- mystruts-helloworld/WEB-INF ¿¡ ÀÖ´Â *.tld ÆÄÀÏÀ» dadam/WEB-INF ¿¡ º¹»ç
- mystruts-helloworld/WEB-INF/struts-config.xml, validation.xml ¸¦ dadam/WEB-INF ¿¡ º¹»ç
- mystruts-helloworld/WEB-INF/web.xml ¿¡¼ ActionServlet ¼ºí¸´ ¼±¾ð°ú ¸ÅÇÎ, Struts ÅÂ±× ¶óÀ̺귯¸® ¼±¾ðºÎºÐÀ» dadam/WEB-INF/web.xml ÆÄÀÏ¿¡ º¹»ç ÆíÁý (À̶§ taglib ¿¤¸®¸ÕÆ®´Â jsp-config ¿¤¸®¸ÕÆ®ÀÇ ÀÚ½Ä ¿¤¸®¸ÕÆ®°¡ µÇµµ·Ï ÇÔ)
- mystruts-helloworld/pages À» dadam/pages ·Î º¹»ç mystruts-helloworld/index.jsp ÆÄÀÏÀ» dadam/index.jsp ·Î º¹»ç
- dadam ¾ÖÇø®ÄÉÀ̼ÇÀ» ´Ù½Ã ·ÎµåÇϰí http://localhost:8080/dadam/ À¸·Î Á¢±ÙÇØ¼ Welcoem.jsp ÆÄÀÏÀÇ ³»¿ëÀÌ º¸ÀÌ¸é ¿ì¸®ÀÇ À¥ App¿¡ Struts À» Àû¿ëÇÒ Áغñ ¿Ï·á
1. ¸ñ·Ïº¸±â ±¸Çö
¸ñ·Ïº¸±â¿¡ ´ëÇÑ Æûºó, ¾×¼ÇÀ» ÀÛ¼ºÇϰí struts-config.xml ÆíÁýÇÏ´Â ¼øÀ¸·Î ÁøÇà
¸ðµ¨2 °Ô½ÃÆÇ ÀÛ¾÷°ú ºñ±³ÇÏ¸é ÆûºóÀÌ Ãß°¡µÈ °ÍÀÌ ´Ù¸§
¸ñ·Ïº¸±â¿¡ ¾²ÀÏ ÆûºóÀ» ListForm À¸·Î À̸§À» Áþ°í ÆÑŰÁö´Â com.dadam.form À¸·Î ÁöÁ¤
ListForm À» ±¸ÇöÇϱâ À§Çؼ ¸ÕÀú model2 °Ô½ÃÆÇ¿¡¼ list.jsp ¿¡ ¾î¶² Á¤º¸°¡ Àü´ÞµÇ´ÂÁö È®ÀÎÇÑ´Ù.
list.jsp ÆäÀÌÁö°¡ Àü´Þ¹Þ¾Æ¾ß ÇÏ´Â Á¤º¸
- gulList
- board
- prev
- next
- cur_page => ( ÀÚ¹Ù ¸í¸í°ü·Ê¿¡ µû¶ó curPage ·Î º¯°æ )
- first_page => ( firstPage ·Î º¯°æ )
- last_page => ( lastpage ·Î º¯°æ )
- article_no => ( articleNo ·Î º¯°æ )
¸ðµ¨2 °Ô½ÃÆÇ¿¡¼ ListAction ÀÌ Àü´Þ¹ÞÀº ÆÄ¶ó¹ÌÅÍ
- cur_page => list.jsp °¡ ¹Þ¾Æ¾ß ÇÏ´Â Á¤º¸¿Í Áߺ¹
- board => list.jsp °¡ ¹Þ¾Æ¾ß ÇÏ´Â Á¤º¸¿Í Áߺ¹
À̰ÍÀÌ ListForm ÀÇ ¸â¹öº¯¼ö È帱ºÀÌ´Ù.
ÀÌ Á¤º¸¸¦ °¡Áö°í ListForm ¸¦ ¾Æ·¡¿Í °°ÀÌ ÀÛ¼ºÇÑ´Ù.
ListForm.java
package com.dadam.form;
import java.util.ArrayList;
import org.apache.struts.action.ActionForm;
public class ListForm extends ActionForm {
private ArrayList gulList;
private String board;
private int prev;
private int next;
private int curPage;
private int firstPage;
private int lastPage;
private int articleNo;
public ArrayList getGulList() {
return gulList;
}
public void setGulList(ArrayList gulList) {
this.gulList = gulList;
}
public String getBoard() {
return board;
}
public void setBoard(String board) {
this.board = board;
}
public int getPrev() {
return prev;
}
public void setPrev(int prev) {
this.prev = prev;
}
public int getNext() {
return next;
}
public void setNext(int next) {
this.next = next;
}
public int getCurPage() {
return curPage;
}
public void setCurPage(int curPage) {
this.curPage = curPage;
}
public int getFirstPage() {
return firstPage;
}
public void setFirstPage(int firstPage) {
this.firstPage = firstPage;
}
public int getLastPage() {
return lastPage;
}
public void setLastPage(int lastPage) {
this.lastPage = lastPage;
}
public int getArticleNo() {
return articleNo;
}
public void setArticleNo(int articleNo) {
this.articleNo = articleNo;
}
}
ÀÌÁ¦ Action À» ÀÛ¼ºÇÑ´Ù.
¸ñ·Ïº¸±â ¿äûÀ» ¼öÇàÇÒ ¾×¼ÇÀÇ À̸§Àº ListAction À̶ó°í Çϰí
ÆÑŰÁö´Â com.dadam.action À̶ó Á¤ÇÑ´Ù.
ÄÚµå´Â model2 °Ô½ÃÆÇ¿¡¼ ÀÛ¼ºÇÑ ListAction Âü°íÇÏ¿© ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.
ListForm °´Ã¼°¡ list.jsp ±îÁö Àü´ÞµÈ´Ù´Â °ÍÀ» ¾Ë±â¿¡ list.jsp °¡ ÇÊ¿äÇÑ ¸ðµç Á¤º¸¸¦ ListForm ¿¡ ´ã´Â´Ù.
ListAction.java
package com.dadam.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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 com.dadam.board.*;
import com.dadam.form.*;
public class ListAction extends Action {
public ActionForward execute (
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
// paramter
ListForm listForm = (ListForm) form;
String board = listForm.getBoard();
if ( board == null ) {
listForm.setBoard("notice");
}
int curPage = listForm.getCurPage();
if (curPage == 0 ) {
listForm.setCurPage(1);
}
GulManager gulManager = new GulManager();
int total_record = gulManager.getTotalRecord(listForm.getBoard());
gulManager.init(listForm.getCurPage(), total_record);
int start = gulManager.getStartRecord();
int end = gulManager.getEndRecord();
listForm.setGulList( gulManager.findGulList( start, end, listForm.getBoard() ) );
listForm.setPrev( gulManager.getPrev() );
listForm.setNext( gulManager.getNext() );
listForm.setFirstPage( gulManager.getFirstPage() );
listForm.setLastPage( gulManager.getLastPage() );
listForm.setArticleNo( gulManager.getArticleNo() );
return mapping.findForward("list");
}
}
ÀÌÁ¦ Æûºó°ú ¾×¼ÇÀ» strutc-config.xml ¿¡ ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÑ´Ù.
¸ÕÀú ÆûºóÀ» ¼³Á¤ÇÑ´Ù.
¾Æ·¡ ÄÚµåÁ¶°¢À» struts-config.xml ÆÄÀÏÀÇ form-beans ¿¤¸®¸ÕÆ®ÀÇ ÀÚ½Ä ¿¤¸®¸ÕÆ®·Î Ãß°¡ÇÑ´Ù.
<form-bean
name="listForm"
type="com.dadam.form.ListForm"
/>
¾×¼ÇÀ» ¼³Á¤ÇÑ´Ù.
¾Æ·¡ ÄÚµåÁ¶°¢À» struts-config.xml ÆÄÀÏÀÇ action-mappings ¿¤¸®¸ÕÆ®ÀÇ ÀÚ½Ä ¿¤¸®¸ÕÆ®·Î Ãß°¡ÇÑ´Ù.
<action
path="/list"
type="com.dadam.action.ListAction"
name="listForm"
scope="request"
unknown="false"
validate="true">
<forward
name="list"
path="/struts/list.jsp"
redirect="false"
/>
</action>
ÀÌÁ¦ ¸¶Áö¸·À¸·Î list.jsp ÆÄÀÏÀ» ÆíÁýÇÑ´Ù.
ÀÌÁ¦ list.jsp ¿¡¼ ÇÊ¿äÇÑ ¸ðµç Á¤º¸´Â ListForm ¿¡ ´ã°ÜÁ® ÀÖ´Ù.
ÁÖÀÇÇÒ Á¡Àº list.do À» ¿äûÇÏ¸é¼ ³Ñ±â´Â ÆÄ¶ó¹ÌÅͰ¡ ÀÌÁ¦´Â cur_page °¡ ¾Æ´Ñ curPage ¶ó´Â °ÍÀÌ´Ù.
cur_page ·Î ÆÄ¶ó¹ÌÅ͸¦ ³Ñ±â¸é Struts °¡ ListForm ÀÇ curPage ¸â¹ö¸¦ ¼ÂÆÃÇÏÁö ¸øÇϹǷΠ¹®Á¦°¡ ¹ß»ýÇÑ´Ù.
list.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.util.*" %>
<%@ page import="net.java_school.util.Log" %>
<%@ page import="com.dadam.board.*" %>
<%@ page import="com.dadam.form.*" %>
<%
ListForm listForm = (ListForm) request.getAttribute("listForm");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitonal.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
<title>DADAMITA °Ô½ÃÆÇ Å×½ºÆ®</title>
<script language="javascript">
function goWrite() {
var form = document.getElementById("frmWrite");
form.submit();
}
function goView(number) {
var form = document.getElementById("frmView");
var gulno = document.forms.frmView.elements[0];
gulno.value = number;
form.submit();
}
function goList(cpage) {
var form = document.getElementById("frmList");
form.curPage.value = cpage;
form.submit();
}
</script>
</head>
<body>
<table border="1">
<tr>
<th>No</th>
<th>Á¦¸ñ</th>
<th>µî·ÏÀÏ</th>
<th>Á¶È¸</th>
</tr>
<%
ArrayList gulList = listForm.getGulList();
int length = gulList.size();
int articleNo = listForm.getArticleNo();
for ( int i = 0; i < length; i++ ) {
Gul gul = (Gul)gulList.get(i);
%>
<tr>
<td><%=articleNo%></td>
<td>
<a href="javascript:goView('<%=gul.getGulno() %>')"><%=gul.getSubject()%></a>
</td>
<td><%=gul.getSigndate()%></td>
<td><%=gul.getRef()%></td>
</tr>
<%
articleNo--;
}
String board = listForm.getBoard();
int curPage = listForm.getCurPage();
%>
</table>
<p>
<input type="button" value="»õ±Û" onclick="javascript:goWrite('<%=board %>')" />
</p>
<%@ include file="pager.jsp" %>
<div id="form-grp">
<form id="frmList" name="frmList" action="list.do" method="post">
<input type="hidden" name="board" value="<%=board %>" />
<input type="hidden" name="curPage" />
</form>
<form id="frmView" name="frmView" action="view.do" method="post">
<input type="hidden" name="gulValue.gulno" />
<input type="hidden" name="gulValue.bcode" value="<%=board %>" />
<input type="hidden" name="curPage" value="<%=curPage %>" />
</form>
<form id="frmWrite" name="frmWrite" action="write_form.do" method="post">
<input type="hidden" name="board" value="<%=board %>" />
<input type="hidden" name="curPage" value="<%=curPage %>" />
</form>
</div>
</body>
</html>
pager.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="com.dadam.form.*" %>
<%
int prev = listForm.getPrev();
int next = listForm.getNext();
int firstPage = listForm.getFirstPage();
int lastPage = listForm.getLastPage();
if ( prev != 0 ) {
%>
<p>
<a href="javascript:goList('<%=prev %>')">[ÀÌÀü]</a>
<%
}
for ( int i = firstPage; i <= lastPage; i++ ) {
%>
<a href="javascript:goList('<%=i%>')">[<%=i%>]</a>
<%
}
if ( next != 0 ) {
%>
<a href="javascript:goList('<%=next %>')">[´ÙÀ½]</a>
<%
}
%>
</p>
À¥ App ´Ù½Ã ·ÎµåÇϰí http://localhost:8080/dadam/list.do ·Î ¿äûÇÑ´Ù.
