springMVC4.0+tiles2整合筆記

看出來了,整合不同的框架就不停的配置,導包,缺一個就夠你折騰半天的,沒辦法,誰叫人家每次升級都會與舊版本有不同的配置呢。時間都浪費在配置上了。估計下次用tiles3又會有所不同了。(首先demo項目來自spring in action 第三版第七章練習)

1.首先是web.xml,這裏只要配置好springMVC就可以了,像一些教程還配置了一堆tiles的,現在最簡

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
	<display-name>springmvc</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<!--spring mvc初始化配置文件,自動加載spitter-servlet.xml-->

	<servlet>  
		<servlet-name>spitter</servlet-name>  
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
		<load-on-startup>1</load-on-startup>  
	</servlet>  
	<servlet-mapping>
		<servlet-name>spitter</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
</web-app>


2.配置spitter-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"  
	
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans  
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
	http://www.springframework.org/schema/context  
	http://www.springframework.org/schema/context/spring-context-3.0.xsd
	http://www.springframework.org/schema/mvc 
	http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
	<!--默認註解映射-->
	<mvc:annotation-driven/>
	<!--對靜態資源文件的訪問,
		以/resources開頭的請求,由/resources/底下的文件提供服務
		-->
	<mvc:resources mapping="/resources/**" location="/resources" cache-period="31556926"/>
	
	<mvc:default-servlet-handler/>

	<!--spring 組件掃描配置 -->
	<context:component-scan base-package="com.sam.controller"/>
	<context:component-scan base-package="com.sam.service"/>
   
	<!-- ViewResolver -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><!--jsp使用了jstl需要將原來默認的InternalResourceView替換爲JstlView-->
		<property name="prefix" value="/WEB-INF/jsp/"/>
		<property name="suffix" value=".jsp"/>
	</bean>
	<!-- 文件解析器-->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:maxUploadSize="500000"></bean>
	
	
	<!--集成Apache tiles視圖-->
	<bean id="tilesviewResolver"
		class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">
		<property name="order" value="0"></property>
	</bean>

	<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
		<property name="definitions">
			<list>
				<value>/WEB-INF/jsp/**/views.xml</value><!--定義tiles佈局-->
			</list>
		</property>
		<property name="preparerFactoryClass"
			value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory"/>
	</bean>


</beans>

 

3.配置文件只要這樣就行了,關鍵是jar的導入才讓人煩哪,建議分開導入

springMVC相關的jar包

jstl.jar跟standard.jar因爲jsp頁面jstl標籤需要

tiles相關的jar包,(可以到Apache官網下載)這裏是2.0的,3.0的又有點不一樣

框中選中的從官網下載的2.0版本lib裏沒有,會報錯,所以從3.0的裏面拷貝過來,注意上圖中的commons也是必須的,缺少哪個就到Apache去下載都有

現在就可以使用tiles了。

我們在spitter-servlet.xml裏面設置了tiles配置文件的位置爲/WEB-INF/jsp/**/views.xml,即jsp文件夾下所有views.xml文件

views.xml

<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
	<definition name="template" template="/WEB-INF/jsp/main_template.jsp">
		<put-attribute name="top" value="/WEB-INF/jsp/tiles/spittleForm.jsp"></put-attribute>
		<put-attribute name="side" value="/WEB-INF/jsp/tiles/signinsignup.jsp"></put-attribute>
	</definition>
	
	<definition name="home" extends="template"><!--首頁-->
		<put-attribute name="content" value="/WEB-INF/jsp/home.jsp"></put-attribute>
	</definition>
	
	<definition name="spittles/list" extends="template"><!--特定spitter的spittle列表展示頁-->
		<put-attribute name="content" value="/WEB-INF/jsp/spittles/list.jsp"></put-attribute>
	</definition>
	
	<definition name="spittles/edit" extends="template"><!--特定spitter的表單提交頁-->
		<put-attribute name="content" value="/WEB-INF/jsp/spittles/edit.jsp"></put-attribute>
	</definition>
	<definition name="spittles/view" extends="template"><!--特定spitter的個人信息展示頁-->
		<put-attribute name="content" value="/WEB-INF/jsp/spittles/view.jsp"></put-attribute>
	</definition>
</tiles-definitions>

 

可以看出,我們先定義了一個Template複用模板,在底下的首頁跟其他特定的頁面中,繼承Template就可以複用到上面的公共片段了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章