springmvc集成jsp和freemark两个模板引擎

          加入freemark.jar包,在web-inf下面写一个ftldpt-servlet.xml文件,内容如下:


         
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.2.xsd ">











class="com.pacific.product.custom.exception.CustomSimpleMappingExceptionResolver">







class="org.springframework.web.multipart.commons.CommonsMultipartResolver">





class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">




10
zh_CN
yyyy-MM-dd
yyyy-MM-dd
#.##




class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">


value="org.springframework.web.servlet.view.freemarker.FreeMarkerView">












在spring-mvc.xml文件内容如下:


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.2.xsd ">











class="com.pacific.product.custom.exception.CustomSimpleMappingExceptionResolver">







class="org.springframework.web.multipart.commons.CommonsMultipartResolver">





class="org.springframework.web.servlet.view.InternalResourceViewResolver">









上面两个文件分别定义了不同的模板引擎


     第二步,在web.xml文件配一下,何时使用哪一个引擎


   在web.xml文件中加入如下内容

     
action
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath:spring-mvc.xml

1



        ftldpt
       
            org.springframework.web.servlet.DispatcherServlet
       

        2
   




action
*.do



        ftldpt
        *.ftl
   


     从上面的内容来来看,当以.do结尾的就用jsp引擎,当使用ftl结尾的仿问就用freemark来处理


       测试如下:

      @Controller
@RequestMapping("/freemark")
public class FreemarkTestController {


@RequestMapping("/index")
public String index(Model model){
model.addAttribute("userName","lin");
return "index";
}
}


上面是一个controller,当仿问index时,会通过不同的结尾调用不同的模板引擎


      项目中尽量使用freemark这种静态模板,如果页面修改比较多时,每一次修改,jsp都会编译一下比较慢,而freemark不会。另外使用freemark可以方便实现页面静态化,因为它的输出不一定是servlet容器,而可以是file文件。

你可能感兴趣的:(springmvc集成jsp和freemark两个模板引擎)