- 兩種使用 JSP & JSTL 的方式:
- ResourceBundleViewResolver - 可以混合多種 view。
<!-- the ResourceBundleViewResolver --> <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views"/> </bean> # And a sample properties file is uses (views.properties in WEB-INF/classes): welcome.(class)=org.springframework.web.servlet.view.JstlView welcome.url=/WEB-INF/jsp/welcome.jsp productList.(class)=org.springframework.web.servlet.view.JstlView productList.url=/WEB-INF/jsp/productlist.jsp
- InternalResourceViewResolver
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
- 使用 Spring form tag
- 設定
- tag library 在 spring-webmvc.jar 裡,tag descriptor 為 spring-form.tld。
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> - form:form
- 可用 commandName 指定 form backing object 的名字,預設為 command。
- form:form 會將 command object 放到 page context 裡,供其他 form tag 使用。
- 怎沒提到 modelAttribute。
<form:form commandName="user"> <form:input path="firstName" /> <input type="submit" value="Save Changes" /> </form:form>
- form:input
- form:checkbox
- form:checkboxes
- form:radiobutton
- form:radiobuttons
- form:password
- form:select
- form:option
- form:options
- form:textarea
- form:hidden
- form:errors
- 以 span 呈現驗證訊息。
- 可以用 path="*" 顯示所有的驗證訊息。
<form:input path="firstName" />
<form:errors path="firstName" /> - Tiles
- 需要的 library:
- Tiles 2.1.2 以上的版本
- Commons BeanUtils
- Commons Digester
- Commons Logging
- 設定
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> <property name="definitions"> <list> <value>/WEB-INF/defs/general.xml</value> <value>/WEB-INF/defs/widgets.xml</value> </list> </property> </bean>
- 有兩個 view resolver 可以用:
- UrlBasedViewResolver
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> </bean> // 簡易版設定 <bean class="org.springframework.web.servlet.view.tiles2.TilesViewResolver"/>
- ResourceBundleViewResolver - 可以混合多種 view。
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="views"/> </bean> welcomeView.(class)=org.springframework.web.servlet.view.tiles2.TilesView welcomeView.url=welcome (this is the name of a Tiles definition) vetsView.(class)=org.springframework.web.servlet.view.tiles2.TilesView vetsView.url=vetsView (again, this is the name of a Tiles definition) findOwnersForm.(class)=org.springframework.web.servlet.view.JstlView findOwnersForm.url=/WEB-INF/jsp/findOwners.jsp
- Tiles 2 內建支援 JSTL。
- AJAX
- 首先要有 jackson-core-asl.jar 與 jackson-mapper-asl.jar 兩個 library,pom 設定如下:
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.7.3</version> <type>jar</type> <scope>runtime</scope> </dependency>
- 接下來只要使用 @ResponseBody 就可以了。
@RequestMapping("/ajax") public @ResponseBody Map<String, String> ajax() { Map<String, String> map = new HashMap<String, String>(); map.put("a", "aaa"); return map; }
2011-03-07
Spring MVC 3.0.5 之三
標籤:
Spring,
Spring MVC
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言