일반 프로퍼티 또는 List 타입의 프로퍼티를 출력하는 방법은 이미 살펴 보았다.
프로퍼티가 아닌 객체 자체를 출력하는 경우는 다음과 같이 할 수 있다.
Product라는 모델에 빈 프로퍼티를 만들고, PrintObjectAction.java 파일의 execute 메소드에서 해당 프로퍼티에 값을 셋팅한다.
셋팅 된 값을 printObject.jsp에서 <s:property> 태그에서 product.name, product.modelNo로 불러와 사용한다.
해당 값은 OGNL 형식으로 getter, setter 형식의 빈 메소드를 사용하여 값을 불러 온다.
label 태그는 html 형식의 label 태그를 생성해 주는 역할을 한다.
객체를 List형태로 보여주는 경우라면 아래와 같이 사용할 수 있다.
action 파일의 execute 메소드에서 List 타입의 listProduct 프로퍼티에 값을 설정한다.
설정된 값을 printObjectList.jsp에서 불러와서 사용한다.
앞에서 product.name, product.modelNo 와 같이 사용했지만, iterator 안에서는 name, modelNo 와 같은 식으로 사용한다.
status는 Iteration 상태 값을 가리키는 값이다.
if 태그를 통해서 해당 값이 홀수인지 체크(#status.odd)한다.
status에서 지원하는 다른 속성은 다음과 같다.
추가로 날짜 출력과 관련된 예제 하나를 더 살펴보면 아래와 같다.
sdate 태그에서 format 을 설정하지 않으면 "2009. 5. 11 오후 3:06:36"와 같이 출력되며, format을 주게 되면 format 형식으로 출력된다
원본 : http://www.4te.co.kr/
프로퍼티가 아닌 객체 자체를 출력하는 경우는 다음과 같이 할 수 있다.
struts.xml
<action name="printObject" class="example.chapter2.PrintObjectAction">
<result>/chapter2/printObject.jsp</result>
</action>
<action name="printObject" class="example.chapter2.PrintObjectAction">
<result>/chapter2/printObject.jsp</result>
</action>
example.model.Product.java
package example.model;
public class Product {
private String name;
private String modelNo;
public Product() {}
public Product(String name, String modelNo) {
this.name = name;
this.modelNo = modelNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getModelNo() {
return modelNo;
}
public void setModelNo(String modelNo) {
this.modelNo = modelNo;
}
}
package example.model;
public class Product {
private String name;
private String modelNo;
public Product() {}
public Product(String name, String modelNo) {
this.name = name;
this.modelNo = modelNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getModelNo() {
return modelNo;
}
public void setModelNo(String modelNo) {
this.modelNo = modelNo;
}
}
example.chapter2.PrintObjectAction.java
package example.chapter2;
import example.model.Product;
public class PrintObjectAction {
private Product product;
public String execute() throws Exception {
product = new Product("MP3 플레이어", "MP3-070701");
return "success";
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
}
package example.chapter2;
import example.model.Product;
public class PrintObjectAction {
private Product product;
public String execute() throws Exception {
product = new Product("MP3 플레이어", "MP3-070701");
return "success";
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
}
/chapter2/printObject.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:label>제품 이름 : </s:label>
<s:property value="product.name"/>
<br>
<s:label>제품 모델번호 : </s:label>
<s:property value="product.modelNo"/>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:label>제품 이름 : </s:label>
<s:property value="product.name"/>
<br>
<s:label>제품 모델번호 : </s:label>
<s:property value="product.modelNo"/>
</body>
</html>
Product라는 모델에 빈 프로퍼티를 만들고, PrintObjectAction.java 파일의 execute 메소드에서 해당 프로퍼티에 값을 셋팅한다.
셋팅 된 값을 printObject.jsp에서 <s:property> 태그에서 product.name, product.modelNo로 불러와 사용한다.
해당 값은 OGNL 형식으로 getter, setter 형식의 빈 메소드를 사용하여 값을 불러 온다.
label 태그는 html 형식의 label 태그를 생성해 주는 역할을 한다.
객체를 List형태로 보여주는 경우라면 아래와 같이 사용할 수 있다.
<action name="printObjectList" class="example.chapter2.PrintObjectListAction">
<result>/chapter2/printObjectList.jsp</result>
</action>
<result>/chapter2/printObjectList.jsp</result>
</action>
example.chapter2.PrintObjectListAction.java
package example.chapter2;
import java.util.ArrayList;
import java.util.List;
import example.model.Product;
public class PrintObjectListAction {
private List<Product> listProduct;
public String execute() throws Exception {
listProduct = new ArrayList<Product>();
listProduct.add(new Product("MP3 플레이어", "MP3-070701"));
listProduct.add(new Product("노트북 PC", "NB-070613"));
listProduct.add(new Product("PDA", "PDA-070507"));
listProduct.add(new Product("휴대폰", "MOB-070615"));
return "success";
}
public List<Product> getListProduct() {
return listProduct;
}
public void setListProduct(List<Product> listProduct) {
this.listProduct = listProduct;
}
}
package example.chapter2;
import java.util.ArrayList;
import java.util.List;
import example.model.Product;
public class PrintObjectListAction {
private List<Product> listProduct;
public String execute() throws Exception {
listProduct = new ArrayList<Product>();
listProduct.add(new Product("MP3 플레이어", "MP3-070701"));
listProduct.add(new Product("노트북 PC", "NB-070613"));
listProduct.add(new Product("PDA", "PDA-070507"));
listProduct.add(new Product("휴대폰", "MOB-070615"));
return "success";
}
public List<Product> getListProduct() {
return listProduct;
}
public void setListProduct(List<Product> listProduct) {
this.listProduct = listProduct;
}
}
/chapter2/printObjectList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>제품목록 : </p>
<table border="1" width="400">
<tr align="center" style="color:white;background-color:black;">
<td>제품이름</td>
<td>제품 모델번호</td>
</tr>
<s:iterator value="listProduct" status="status">
<tr bgcolor="<s:if test="#status.odd">lightgrey</s:if>">
<td><s:property value="name"/></td>
<td><s:property value="modelNo"/></td>
</tr>
</s:iterator>
</table>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p>제품목록 : </p>
<table border="1" width="400">
<tr align="center" style="color:white;background-color:black;">
<td>제품이름</td>
<td>제품 모델번호</td>
</tr>
<s:iterator value="listProduct" status="status">
<tr bgcolor="<s:if test="#status.odd">lightgrey</s:if>">
<td><s:property value="name"/></td>
<td><s:property value="modelNo"/></td>
</tr>
</s:iterator>
</table>
</body>
</html>
action 파일의 execute 메소드에서 List 타입의 listProduct 프로퍼티에 값을 설정한다.
설정된 값을 printObjectList.jsp에서 불러와서 사용한다.
앞에서 product.name, product.modelNo 와 같이 사용했지만, iterator 안에서는 name, modelNo 와 같은 식으로 사용한다.
status는 Iteration 상태 값을 가리키는 값이다.
if 태그를 통해서 해당 값이 홀수인지 체크(#status.odd)한다.
status에서 지원하는 다른 속성은 다음과 같다.
first : 처음 행
last : 마지막 행
index : 행의 인덱스
last : 마지막 행
index : 행의 인덱스
추가로 날짜 출력과 관련된 예제 하나를 더 살펴보면 아래와 같다.
struts.xml
<action name="printDate" class="example.chapter2.PrintDateAction">
<result>/chapter2/printDate.jsp</result>
</action>
<action name="printDate" class="example.chapter2.PrintDateAction">
<result>/chapter2/printDate.jsp</result>
</action>
PrintDateAction.java
package example.chapter2;
import java.util.Date;
public class PrintDateAction {
private Date currDate;
public String execute() {
currDate = new Date();
return "success";
}
public Date getCurrDate() {
return currDate;
}
public void setCurrDate(Date currDate) {
this.currDate = currDate;
}
}
package example.chapter2;
import java.util.Date;
public class PrintDateAction {
private Date currDate;
public String execute() {
currDate = new Date();
return "success";
}
public Date getCurrDate() {
return currDate;
}
public void setCurrDate(Date currDate) {
this.currDate = currDate;
}
}
printDate.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<ul>
<li><s:property value="currDate"/></li>
<li><s:date name="currDate"/></li>
<li><s:date name="currDate" format="yyyy-MM-dd HH:mm:ss"/></li>
</ul>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<ul>
<li><s:property value="currDate"/></li>
<li><s:date name="currDate"/></li>
<li><s:date name="currDate" format="yyyy-MM-dd HH:mm:ss"/></li>
</ul>
</body>
</html>
sdate 태그에서 format 을 설정하지 않으면 "2009. 5. 11 오후 3:06:36"와 같이 출력되며, format을 주게 되면 format 형식으로 출력된다
원본 : http://www.4te.co.kr/
'프레임워크 > Struts2' 카테고리의 다른 글
Struts2에서의 파일업로드 (0) | 2009.10.14 |
---|---|
Strtus2 설정 - struts.xml (0) | 2009.10.14 |
스트럿츠2 설치시 에러 (0) | 2009.09.30 |
스트럿츠2를 사용하여 List 출력하기 (0) | 2009.09.30 |
스트럿츠2 설정하기 (0) | 2009.09.30 |