spring mvc 使用Freemarker模板

本文介绍了一个使用Freemarker模板引擎展示学生列表的例子。通过JavaBean传递数据到Freemarker模板并显示出来。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,定义一个freemarker模板,解析对象studentList

/freemarker/success.ftl

 

<html>
  
<body>
    
<table border="1">
     
<#list studentList as student>
      
<tr>
       
<td>${student.name}</td>
       
<td>${student.sex}</td>
      
</tr>
     
</#list>
      
    
</table>
  
</body>  
</html>

 JavaBean

 

package model;

public class Student {
   
private String name;
   
private String sex;
public String getName() {
    
return name;
}

public void setName(String name) {
    
this.name = name;
}

public String getSex() {
    
return sex;
}

public void setSex(String sex) {
    
this.sex = sex;
}

}

 

编写控制器:

 

package Action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Student;

import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;


/**
 * @@org.springframework.web.servlet.handler.commonsattributes.PathMap("/home.mvc");
 
*/

public class FreemarkerHomeController extends AbstractCommandController {


    
protected ModelAndView handle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, BindException arg3) throws Exception {
        
// TODO 自动生成方法存根
        return null;
    }


    
protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
         Student stu1
=new Student();
         stu1.setName(
"gaoxiang1");
         stu1.setSex(
"male1");
         Student stu2
=new Student();
         stu2.setName(
"gaoxiang2");
         stu2.setSex(
"male2");
         List a
=new ArrayList();
         a.add(stu1);
         a.add(stu2);
         System.out.println(a);
         
return new ModelAndView("success","studentList",a);
    }



    
}
  


web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns
="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
  
<context-param>
    
<param-name>contextConfigLocation</param-name>
    
<param-value>/WEB-INF/train-servlet.xml</param-value>
  
</context-param>
  
<servlet>
    
<servlet-name>train</servlet-name>
    
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
<load-on-startup>0</load-on-startup>
  
</servlet>
  
<servlet-mapping>
     
<servlet-name>train</servlet-name>
     
<url-pattern>*.mvc</url-pattern>
  
</servlet-mapping>

   
<listener>
     
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   
</listener>
    
  
<filter>
    
<filter-name>character</filter-name>
    
<filter-class>Action.CharacterFilter</filter-class>
  
</filter>
  
<filter-mapping>
    
<filter-name>character</filter-name>
    
<url-pattern>/*</url-pattern>
  
</filter-mapping>
  
<welcome-file-list>
    
<welcome-file>index.jsp</welcome-file>
  
</welcome-file-list>
</web-app>

 

train-servlet.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>

<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 
<property name="mappings">
   
<props>
       
<prop key="/freemarker.mvc">FreemarkerHomeController</prop>
     
   
</props>
 
</property>
</bean>


<bean id="FreemarkerHomeController" class="Action.FreemarkerHomeController">
</bean>

<!-- freemarker页面解析器--> 
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  
<property name="suffix">
    
<value>.ftl</value>
  
</property>
  
<property name="viewClass">
    
<value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
  
</property>
</bean>

<!-- 配置Freemarker -->
<bean id="freemarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
  
<property name="templateLoaderPath">
    
<value>/freemarker/</value>
  
</property>
  
<property name="freemarkerSettings"><!-- 如果模板不经常更新,此属性设置更新延迟时间 -->
    
<props>
      
<prop key="template_update_delay">3600</prop>
    
</props>
  
</property>
</bean>

</beans>

 

执行/freemarker.mvc

结果:

gaoxiang1male1
gaoxiang2male2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值