● 액션 태그 (Action Tag)
- JSP 내에서 자바코드를 줄이기 위한 태그
- 액션 태그는 JSP내에서 Java 코드 없이 태그를 이용해 동적인 실행을 처리 하기 위해 제한됨
- 태드와 Java 코드를 연결하여 JSP가 Servlet으로 변환 시 Web Container가 그에 알맞은 동적인 실행을 처리
● 종류
- 표준 Action 태그 : JSP 스펙에서 제공하는 태그
- Custom tag : 사용자 정의 액션 태그
- 기본 구문
- <prefix : 태그명 속성 = "속성값" [속성 = "속성값".. ]>
- prefix : 태그 library를 구분하기 위한 이름 (접두어)
- xml 문법을 따른다.
- 대소문자 구분 ※ HTML은 대소문자 구분 없다.
- 속성의 값은 ' 또는 " 으로 감싸준다.
- 태그는 반드시 닫아야 한다.
ex)
<c:forEach item="list" var="mto"> </c:forEach>
<jsp:getProperty name='cto' property='name'/>
● 표준 액션 태그
- JSP 스펙에서 제공하는 액션태그
- 따로 library를 설정할 필요 없이 web container가 제공한다.
- 구문
<jsp:태그명 속성='값' ...>
- 주요 태그
- Attribute로 설정된 빈 객체와 연동하기 위한 태그
- useBean, setProperty (특정 빈에 값 셋팅), getProperty (
- 수행을 이동하기 위한 태그
- include, forword, param
※ <jsp:useBean>
- 속성 영역(page, request, session, application) 에 binding 된 속성 객체를 lookup 한다. 만약 가져오지 못하면 생성하여 그 영역에 binding 한다.
- 태그의 attribute(속성)
- id : 자바 식별자, binding시 설정 이름
- class : lookup 할 클래스의 이름. fully name으로 설정
- scope : 속성 영역, 값 : page(기본), request, session, application
ex )
<jsp:useBean id="mto" class="dto.MemberDTO" scope="request"/>
→ 의미
- MemberDTO mto = (MemberDTO)request.getAttribute("mto");
if(mto==null){
mto = new MemberDTO();
request.setAttribute("mto", mto);
}
※ <jsp:setProperty>
- <jsp:useBean> 태그로 lookup 한 객체 (Attribute)의 property에 값을 설정하는 태그
- Lookup 한 Attribute의 setter메소드를 호출하여 값을 설정 한다.
- 명시적인 값을 설정
- 요청 파라미터로 넘어온 값을 설정
- 속성
- name : 값을 설정할 bean의 이름. useBean의 id 값
- property : 값을 설정할 property 명. (setter메소드에서 set을 제외한 이름)
- value : 설정할 값
- param : 요청파라미터의 값을 설정할 경우, 요청 파라미터의 이름
- 요청 파라미터로 넘어온 값을 설정할 경우 property의 이름과 요청 파라미터의 이름이 동일한 경우 param을 생략 할 수 있다.
- ex)
<jsp:setProperty name = "mto" property="id" value = "myid" />
→ 의미 : mto.setId("myid");
--------------------------------------------------------------------------------
<jsp:setProperty name="mto" property = "name" param="p_name" />
→ 의미 : mto.setName(request.getParameter("p_name"));
※ <jsp:getProperty> 태그
- <jsp:useBean> 태그로 lookup한 객체의 property 값을 조회하여 출력하는 태그
- bean 객체의 getter 메소드를 호출한다. (getXXX 또는 isXXX)
- 속성
- name : 프라퍼티를 조회할 객체의 이름. useBean의 id값
- property : 조회할 프라퍼티의 이름 (getter 메소드의 이름)
- ex) <jsp:getProperty name = "mto" property="age" />
→ 의미
<%= mto.getAge() %>
※ <jsp:forword>
- JSP의 수행을 다른 컴포넌트로 (JSP, Servlet, HTML) 로 이동하는 태그
- RequestDispacher객체.forword() 실행을 태그화 하는 것.
- 요청 Dispatch 방식으로 이동
- 속성
- page : 수행을 이동항 컴포넌트의 url 설정
- ex)<jsp:forword page="abc.jsp/>
→ 의미
RequestDispatcher rdp = request.getRequestDispatcher("abc.jsp");
rdp.forword(request, response);