Spring Tag Library
meassage tag(<spring:message>)
스프링은 메시지 리소스 파일로 부터 메시지를 가져와 간편하게 출력할수 있도록, <spring:message> 태그를 제공한다.
JSP 페이지의 타이틀을 <spring:message>를 이용해서 출력하는 예제를 만들어 보자.
빈 정의 파일에 리소스 번들 관련된 설정이 되어 있어야 한다.
<!-- Message Source--> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basename="messages"/>
먼저 메시지 관련 리소스 파일에 코드값을 설정해준다. PropertiedEditor 같은 유틸의 도움을 받으면 편리하게 한글 입력-편집이 가능하다.
/easycompany/webapp/WEB-INF/classes/messages_ko.properties ... # -- spring:message -- easaycompany.loginform.title=로그인페이지 easaycompany.employeelist.title=사원 정보 리스트 페이지 easaycompany.updateemployee.title=사원 정보 수정 페이지 easaycompany.insertemployee.title=사원 정보 입력 페이지 easaycompany.departmentlist.title=부서 정보 리스트 페이지 easaycompany.updatedepartment.title=부서 정보 수정 페이지 easaycompany.insertdepartment.title=부서 정보 입력 페이지
JSP 페이지에 커스텀 태그를 사용하기 위해 라이브러리 선언을 해줘야 한다.그리고 <spring:message> 태그의 code 값에는 메시지 키값을 주면 된다.
... <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><spring:message code="easaycompany.departmentlist.title"/></title> ...
해당 화면의 타이틀이 “부서 정보 리스트 페이지”로 표기 될 것이다.
form tag(<form:form>,<form:input>,...)
폼 관련 어플리케이션을 개발할 때는 스프링이 제공하는 폼 태그와 같이 사용하면 편리하다.
스프링 폼 태그는 Model 데이터의 커맨드 객체(command object)나 참조 데이터(reference data)들을 화면상에서 쉽게 출력하도록 도와 준다.
일단, 스프링 폼 태그를 사용하려면 페이지에 커스텀 태그 라이브러리를 선언해야 한다.
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
스프링 폼 태그에는 아래와 같은 태그들이 있다.
<form:form>
<form:form>는 속성 commandName에 정의된 model attribute를 PageContext에 저장해서, <form:input>이나 <form:hidden>같은 tag들이 접근할 수 있도록 한다.
관련 속성은 아래와 같다.
-
commandName : 참조하려는 model attribute 이름.
-
action : 폼 전송할 URL
-
method : 폼 전송시에 HTTP 메소드(GET,POST)
-
enctype: 폼 전송시에 데이터 인코딩 타입.
<form:form> 태그를 사용하고 출력된 페이지에서 소스 보기로 HTML 코드를 열어보면 아래와 같이 HTML FORM 태그가 출력된걸 확인할 수 있을것이다.
<form:form commandName="department" action="http://myUrl..." method="post"> -> <form id="department" action="http://myUrl..." method="post"> <form:form commandName="department"> -> <form id="department" action="현재페이지 URL" method="post">
<form:input>
HTML text타입의 input 태그에 commandName에 지정된 객체 프로퍼티를 바인딩하기 위해 사용한다.
path에 프로퍼티 이름을 적으면, text타입의 input 태그의 id, name 값이 프로퍼티 이름이 되고, value는 해당 프로퍼티의 값이 된다.
<form:form commandName="department"> <tr> <th>부서이름</th> <td><form:input path="deptname" size="20"/></td> </tr> </form:form>
아래와 같이 HTML로 출력된다.
<form id="department" action="/easycompany/updateDepartment.do?deptid=1100" method="post"> <tr> <th>부서이름</th> <td><input id="deptname" name="deptname" type="text" value="회식메뉴혁신팀" size="20"/></td> </tr> </form>
<form:password>
HTML password타입의 input 태그에 commandName에 지정된 객체 프로퍼티를 바인딩하기 위해 사용한다.
바인딩값을 표기하기 위해서는 showPassword 속성을 showPassword=“true”로 지정해 주어야 한다.
<form:hidden>
HTML hidden타입의 input 태그에 commandName에 지정된 객체 프로퍼티를 바인딩하기 위해 사용한다.
<form:select>, <form:options>, <form:option>
HTML select, option 태그에 commandName에 지정된 객체 프로퍼티를 바인딩하기 위해 사용한다.
아래와 같이 <form:select>의 path 속성에 commandName 객체의 프로퍼티를 지정하고,
<form:options>의 items 속성에 List, Map등의 Collection 객체를 값으로 주면,
<form:form commandName="department"> <tr> <th>상위부서</th> <td> <form:select path="superdeptid"> <option value="">상위부서를 선택하세요.</option> <form:options items="${deptInfoOneDepthCategory}" /> </form:select> </td> </tr> </form:form>
아래와 같이 HTML로 출력된다. <form:select>의 path 속성값과 일치하는 option 값이 있으면 selected=“selected” 된다.
<form id="department" action="/easycompany/updateDepartment.do?deptid=1100" method="post"> <tr> <th>상위부서</th> <td> <select id="superdeptid" name="superdeptid"> <option value="">상위부서를 선택하세요.</option> <option value="5000">금융사업부</option> <option value="3000">IT연구소</option> <option value="4000">공공사업부</option> <option value="1000" selected="selected">경영기획실</option> <option value="2000">경영지원실</option> </select> </td> </tr> </form>
<form:checkboxes>
<form:checkbox>
error tag(<form:errors>)
'백엔드기술 > 스프링프레임워크' 카테고리의 다른 글
Spring Framework MVC 로그인 (0) | 2012.12.04 |
---|---|
Spring Framework MVC + Mybatis 3 (0) | 2012.12.04 |
Spring MVC 3 + MyBatis(iBatis) 3 CRUD구현 (0) | 2012.10.18 |