`
esffor
  • 浏览: 1367309 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring mvc 使用Freemarker模板

阅读更多

首先,定义一个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

结果:

gaoxiang1 male1
gaoxiang2 male2



分享到:
评论

相关推荐

    spring mvc +freemarker不错的mvc搭配

    FreeMarker模板是纯文本文件,其中包含可插入动态数据的特殊指令。 在Spring MVC中集成FreeMarker,首先需要在项目的配置文件(如`servlet-context.xml`)中配置FreeMarker视图解析器。这通常包括指定模板目录、...

    Spring MVC and FreeMarker Sample

    model.put("message", "欢迎使用FreeMarker模板"); return new ModelAndView("index", model); } } ``` 对应FreeMarker模板`index.ftl`: ```html &lt;!DOCTYPE html&gt; ${title} ${message} ``` **5. 运行...

    spring MVC + freeMarker

    在这个例子中,FreeMarker模板使用`&lt;#list&gt;`指令遍历`students`属性(由控制器传递),并插入到表格中。当服务器接收到请求时,Spring MVC会调用控制器,处理业务逻辑,然后使用FreeMarker生成响应的HTML页面。 ...

    Spring MVC整合FreeMarker

    总之,Spring MVC 整合 FreeMarker 是一种常见的 Web 开发实践,它使开发者能够专注于业务逻辑,同时利用 FreeMarker 的强大模板功能生成动态页面。理解并掌握这种整合方式,对于提升 Web 应用的开发效率和质量具有...

    spring mvc freemarker 简单例子

    - 启动Spring MVC应用,访问`http://localhost:8080/hello?name=YourName`,浏览器将显示由Freemarker模板渲染后的页面,其中`YourName`替换为传入的参数。 通过这个简单的例子,我们可以看到Spring MVC和...

    Spring3.2.1MVC+Freemarker简单示例

    在本文中,我们将深入探讨如何使用Spring 3.2.1 MVC框架与Freemarker模板引擎结合,构建一个简单的Web应用程序。Spring MVC是Spring框架的一部分,它为开发RESTful Web服务提供了强大的支持,而Freemarker则是一个轻...

    spring mvc mybatis freemarker 开发CMS代码

    而`HzjwCMS`可能包含了整个项目的源代码和资源文件,包括但不限于Java类、配置文件、Freemarker模板、静态资源等。通过学习和研究这个项目,开发者可以深入了解如何在实际项目中整合Spring MVC、MyBatis和Freemarker...

    Spring 3 mvc + Freemarker 框架例子

    在本例子中,我们将深入探讨如何将Spring MVC与Freemarker模板引擎结合使用。 Freemarker是一个开源的模板引擎,用于生成动态HTML、XML或其他格式的文本。它不依赖任何Web容器,仅需要一个解析器来处理模板文件。...

    spring MVC3 集成 freemarker

    5. **模板中的表达式和指令**:在FreeMarker模板文件中,可以使用 `${expression}` 表达式来获取模型数据,用 `#if`, `#foreach`, `#set` 等指令进行逻辑控制。例如: ```html &lt;!DOCTYPE html&gt; ${title} &lt;h1&gt;...

    spring mvc freemarker 自定义标签

    在Spring MVC中,Freemarker模板通常用于生成HTTP响应中的HTML内容。自定义标签则允许我们在模板中创建自己的逻辑结构,这些结构可以封装复杂的业务逻辑或重复使用的UI组件。 要创建自定义标签,你需要编写一个Java...

    spring mvc, tiles, freemarker集成

    标题中的“Spring MVC, Tiles, Freemarker集成”指的是在Java Web开发中,将Spring MVC作为控制器框架,Tiles作为页面布局工具,而Freemarker作为视图模板引擎进行整合使用的技术方案。这种集成可以帮助开发者构建...

    spring3 mvc restful freemarker jquery json

    FreeMarker模板引擎用于生成视图层,它与Spring3 MVC配合,接收由后台传递的数据模型,并根据模板规则生成动态HTML页面。开发者在FreeMarker模板中定义变量和逻辑,FreeMarker会将这些变量与后台传递的对象进行绑定...

    spring mvc 3.0-mybatis-freemarker整合

    6. **创建Freemarker模板**:在项目的视图目录下创建Freemarker模板文件,使用Freemarker语法将数据渲染到页面上。 通过以上步骤,我们便成功地整合了Spring MVC 3.0、MyBatis 3 和 Freemarker 2.3,实现了MVC架构...

    整合 freemarker +spring security + spring MVC + spring DATA jpa 前端jtable 简单的crud

    项目文件"jinandi"可能包含了该项目的所有源码,包括Freemarker模板文件、Spring配置文件、Java源代码以及JTable相关的JavaScript和CSS文件。开发者可以通过阅读这些文件,了解各个组件是如何协同工作的,从而学习和...

    spring mvc+freemaker 开发实例

    开发者可以研究这些文件,了解实际项目中的实现方式,包括如何配置Spring MVC,如何创建和组织FreeMarker模板,以及如何在控制器中处理业务逻辑。 学习这个实例,开发者不仅能掌握Spring MVC的基本使用,还能理解...

    Spring3.1整合FreeMarker2.3.19

    综上所述,"Spring3.1整合FreeMarker2.3.19"涉及的关键技术点包括Spring MVC的配置、FreeMarker模板的编写和使用,以及两者之间的数据绑定和交互。在实际开发中,结合标签和源码分析,能更好地理解和应用这一整合。

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    视图则通常是JSP、Thymeleaf、FreeMarker等模板引擎,用于渲染数据并返回给客户端。视图解析器(ViewResolver)在其中起到了关键作用,它根据逻辑视图名来找到实际的视图资源。 在配置方面,Spring MVC使用XML或...

    Spring MVC 4.2.3

    7. **多视图解析器**:Spring MVC支持多种视图解析器,如JSP、FreeMarker、Thymeleaf等,可以根据项目需求灵活选择。 8. **模板引擎集成**:例如,与Thymeleaf的集成使得开发者能编写声明式逻辑的模板,提高了视...

    Spring MVC整合 freemarker及使用方法

    Spring MVC整合Freemarker及使用方法 Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,主要用于开发Web应用程序。它实现了MVC架构模式的思想,将Web层进行职责解耦,基于请求驱动...

    Spring MVC + Tiles + FreeMarker 的整合

    1. **设置项目结构**:在Web应用中,通常会将Spring MVC相关的配置文件(如`dispatcher-servlet.xml`)放在`WEB-INF`目录下,而JSP页面和FreeMarker模板文件通常放在`jsp`或`WEB-INF/views`目录下。 2. **引入依赖*...

Global site tag (gtag.js) - Google Analytics