@ 스트럿츠2 태그 - Generic Tag - Control Tag(if,elseif,else,append,merge,iterator)
- Data Tage(a, date, property)
- UI Tag - Form Tag(form, textfield, submit)
- Non-Form Tag
@ 태그 라이브러리 설정
<%@ taglib prefix="s" uri="/struts-tags" %>
@ 스트럿츠2에서는 액션이 실행될 때마다 액션을 스택 상에 저장하여 밸류스택이 구축됨 액션이 실행되는 동안 밸류스택에 쌓인 여러 개의 액션 객체의 정보를 OGNL(Object Graph Navigational Language)표현식으로 얻어온다.
@ 스택 : 여러 개의 데이터를 저장하기 위한 공간의 일종. 저장 공간에 임의로 접근하지 못하고 마지막에 입력한 값부터 꺼내올 수 있는 구조로 되어 있다.
@ 스트럿츠2 태그의 name 속성은 액션의 어떤 프로퍼티와 매핑하는지 의미함. 태그의 value속성은 name속성에 지정한 액션의 프로퍼티와 동일한 타입으로 자동적으로 설정된다.
@ OGNL은 액션 컨텍스트의 객체를 참조하기 위해 #application,#session,#request,#attr,#parameters와 같이 #기호를 사용. 루트 객체인 밸류 스택을 참조할 때에는 #rlghfmf tkdydgkwl dksgsmsek. 액션은 항상 밸류스택에 저장됨
@ <s:append>와 <s:merge>
- <s:append>태그는 여러 리스트를 하나의 iterator로 묶고 param을 사용하여 합친다
<s:append id="totalList">
<s:param value="%{list}"/>
<s:param value="%{list2}"/>
</s:append>
<s:param value="%{list}"/>
<s:param value="%{list2}"/>
</s:append>
- <s:merge>태그도 <s:append>태그처럼 여러 리스트를 하나의 iterator로 묶지만 첫 리스트 내의 아이템들을 번갈아 가며 차례로 섞어서 하나의 iterator로 묶는다.
@ <s:bean />태그는 스택의 컨텍스트에 인스턴스화하여 빈 객체를 생성하기 위해서 생성한다.