[Struts] 액션 클래스에서 넘어온 값 꺼내기
보통 <s:property> 태그를 사용해서 값을 꺼내오는데
<s:if> 또는 <s:iterator> 를 사용한 경우는 꺼내는 방식이 약간 다르다..
스트럿츠를 처음 접할때 봤던 내용인 것 같은데 다 까먹고 있다가 계속 삽질만 해서 다시 정리한다
[액션 클래스]
ArrayList<BoardBean> boardBean;
String number;
...Getter / Setter 생략...
[BoardBean]
String id;
String number;
클래스가 이런 형태라고 가정하고 number와 boardBean의 id 값을 꺼낸다고 하면..
[Result JSP]
ㅇ <s:property>만 사용하는 경우
Number : <s:property value="number" />
boardBean ID : <s:property value="boardBean.id" />
boardBean Number : <s:property value="boardBean.number" />
ㅇ <s:if> 안에서 사용하는 경우
<s:if test="number == boardBean.number">
number : <s:property value="number" />
</s:if>
==> <s:if> 태그 안에 다시 <s:property>를 넣어주지 않고 바로 변수명을 써주기만 하면 된다
ㅇ <s:iterator> 안에서 사용하는 경우
<s:iterator value="boardBean">
boardBean Number : <s:property value="number" />
// 이 경우 액션 클래스의 number가 아니라 BoardBean의 number가 출력된다
</s:iterator>
Number : <s:property value="number" />
// <s:iterator> 외부에서는 액션 클래스의 number 이다
<s:iterator> 내부에서 액션 클래스의 number를 부르는 방법은 아무리 찾아봐도 못찾겠다...
굳이 쓸려면 <s:iterator> 내부에서 쓸려면 아예 변수명을 다르게 해서 넘어오던가 아래와 같이 해줘야 된다
<s:set name="outputNumber" value="number"/>
<s:iterator value="boardBean">
BoardBean Number : <s:property value="number" />
액션 클래스 Number : <s:property value="outputNumber" />
</s:iterator>