Struts2

Hagi 2010. 2. 3. 15:24

* tablib의 선언 => <%@ taglib prefix="s" uri="/struts-tags" %>

 

1. <s:proerty />

 action 클래스에 선언되어 있는 getter에서 값을 가져온다. 이때 OGNL을 이용한다.

 <s:property value="message" /> 와 같은 식으로 action class에 있는 변수명과 value 내의 이름을 일치시키면 해당 값을 출력한다.

 

2. <s:iterator />와 <s:if />

 java.util.Collection과 java.util.Iterator 등을 출력할 때 쓰인다. 이것 역시 OGNL을 이용해 getter를 받는다.

action 클래스에서 List가 printList로 저장되어 있다면...(각 값은 디폴트인 String 형태)

<s:iterator value="printList">

<s:property />

</s:iterator>

로 출력한다.

<s:iterator status="stat" />

status는 말 그대로 상태를 나타낸다. 해본 예제에 의하면 html의 table에서 처음행(first),마지막행(last),행의 인덱스(idex), 짝수(odd) 등을 나타낼 수 있다.

<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>

=> if, elseif, else가 있다고 한다. 위 소스의 출력은 짝수행은 색깔이 회색으로 출력된다.

 

3. 객체 출력

 만약 action 클래스에 model을 선언하고 getter를 만들었다면, 예를 들어

package example.object.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;
 }
}

action 클래스에서 Product product = new Product(); 라고 인스턴스를 생성하면,

view에서

<s:label>제품 이름 : </s:label>
<s:property value="product.name"/>
<br/>
<s:label>제품 모델번호 : </s:label>
<s:property value="product.modelNO"/>

이렇게 출력할 수 있다.

 

4. <s:date />

 action 클래스에서 Date currDate로 생성하면 getter와 OGNL을 이용하여 <s:date name="currDate" />로 날짜,시간 등을 출력할 수 있다.

=> 2010. 2. 3 오후 3:28:27 

 format="yyyy-MM-dd hh:mm:ss" 또는 dd/MM/yyyy hh:mm등으로 형식도 지정할 수 있다.

 

위 예제 소스

struts2-blank-2.1.8.1.war=> 용량 초과로 lib내의 파일 전부 삭제했으니 알아서 추가하시기 바람

 

- 첨부파일

struts2-blank-2.1.8.1.war