springMVC整合Freemarker例子

来源:互联网 发布:linux查看php日志文件 编辑:程序博客网 时间:2024/05/17 10:56

springMVC整合Freemarker例子

    

freemarker是Java模板引擎

springmvc的搭建流程就不详细讲解了,需要的同学可以看我之前的博文。

这次主要分享的是:springMVC整合Freemarker

需要的Jar包:

       ——freemarker-2.3.15.jar

      ——jstl.jar

在已搭建好的spring的配置文件的基础上添加以下代码:

(用于解析freemarker的视图文件)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!-- freemarker的配置 --> 
 <beanid="freemarkerConfig"class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"
   <propertyname="templateLoaderPath"value="/WEB-INF/view/"/> 
   <propertyname="defaultEncoding"value="utf-8"/> 
   <propertyname="freemarkerSettings"
   <props
    <propkey="template_update_delay">10</prop
    <propkey="locale">zh_CN</prop
    <propkey="datetime_format">yyyy-MM-dd</prop
    <propkey="date_format">yyyy-MM-dd</prop
    <propkey="number_format">#.##</prop
   </props
  </property
 </bean
 <!-- FreeMarker视图解析   如返回student。。在这里配置后缀名ftl和视图解析器。。--> 
 <beanid="viewResolver"class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"
     
  <propertyname="viewClass"value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"></property
     
  <propertyname="suffix"value=".ftl"/> 
  <propertyname="contentType"value="text/html;charset=utf-8"/> 
  <propertyname="exposeRequestAttributes"value="true"/> 
  <propertyname="exposeSessionAttributes"value="true"/> 
  <propertyname="exposeSpringMacroHelpers"value="true"/> 
 </bean>

 

java文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
packagecom.app.controller; 
   
importjava.util.HashMap; 
importjava.util.Map; 
   
importjavax.servlet.http.HttpServletRequest; 
importjavax.servlet.http.HttpServletResponse; 
   
importorg.springframework.stereotype.Controller; 
importorg.springframework.web.bind.annotation.RequestMapping; 
importorg.springframework.web.servlet.ModelAndView; 
   
   
@Controller 
publicclass FreemarkerDemo { 
        
    @RequestMapping(value="xuan/freemarker"
    publicModelAndView testfreemarkerview(HttpServletRequest request,HttpServletResponse response){ 
        ModelAndView mav=newModelAndView(); 
        System.out.println("你的上传空间"); 
        String str="这是返回给freemarker页面的值"
        mav.addObject("haha", str); 
    
        ///这里顺便回顾下HashMap的使用方法 
/*      创建:Map<String,String> map = new HashMap<String,String>();
        插入元素:map.put("1","a"); 
        移除元素: map.remove("1");
        清空: map.clear();*/ 
        Map<String,String> map=newHashMap<String,String>(); 
        map.put("name""xiaoming"); 
        map.put("age""21"); 
        map.put("address""硅谷"); 
        map.put("ad""广州"); 
        map.remove("ad"); 
        mav.addObject("maplist", map); 
        mav.setViewName("freemaeker/xuan"); 
        returnmav; 
    
}

freemarker页面:(xuan.ftl)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html
<p>我们${haha}</p
<p>你好吗?${maplist.name}</p
<p>你好?${maplist.age}</p
<p>你吗?${maplist.address}</p
<p>你?${maplist.ad!}</p
   
Welcome ${user!}! 
Welcome ${user!'your name'}! 
或者 
${user?if_exists} 
   
${user?default('your name')} 
   
如果user找不到值,会输出 
Welcome ! 
Welcome your name! 
否则freemarker会报错 
   
</html>
0 0
原创粉丝点击