转载:http://www.verydemo.com/demo_c143_i3284.html
springMVC整合大家都比较熟悉了吧主要有以下几个步骤:
在web.xml配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
//上面的listener主要是启动spring容器
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
//上面是定义一个servlet ,DispatcherServlet主要是启动mvc框架的。也就是以do结尾的请求都转发到这个dispatchServlet然后由他转发到相应的controller。
定义spring—servlet.xml(上面的DispatcherServlet名+servlet.xml)
<!--注解说明-->
<context:annotation-config />
<!-- 把标记了@Controller注解的类转换为bean -->
<context:component-scan base-package="com.Springmvc.control" />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 请求映射-->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- freemarker的配置 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/view/" />
<property name="defaultEncoding" value="utf-8" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">10</prop>
<prop key="locale">zh_CN</prop>
<prop key="datetime_format">yyyy-MM-dd</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="number_format">#.##</prop>
</props>
</property>
</bean>
<!-- FreeMarker视图解析 如返回student。。在这里配置后缀名ftl和视图解析器。。-->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"></property>
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=utf-8" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="exposeSpringMacroHelpers" value="true" />
</bean>
exposeRequestAttributes exposeSessionAttributes两个属性都被设置为true。结果是请求和会话属性都被复制到模板的属性集中,可以使用FreeMarker的表达式语言来访问并显示。
使用这些宏,必须设置FreeMarkerViewResolver的exposeSpringMacroHelpers属性为true:
然后controller的的内容如下:
@Controller
@RequestMapping("addStudent.do")
public class StudentControl {
@Autowired
private StudentService studentService;
@RequestMapping(params = "method=add")
public String addStudent(HttpServletRequest request,ModelMap model,Student student) throws IOException, TemplateException {
studentService.addStudent(student);
List<Student> list = studentService.findStudentAll();
model.addAttribute("studentlist", list);//request保存这个对象
return "student";
}
在controller中保持了studentlist(存储在request中)
在freemarker中
<table>
<tr><td>index</td><td>username</td><td>password</td><td>id</td></tr>
<#list studentlist as student>
<tr><td>${student_index}</td><td>${student.user?if_exists}</td><td>${student.psw?if_exists}</td><td>${student.id?if_exists}</td</tr>
</#list>
</table>
即可输入studentlist 内容,注意如果数据库为空没有加?if_exits是不行的,
如果提交表单中有日期格式的话要做自己的属性编辑器
注解方法如下:
@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class,
new CustomDateEditor(dateFormat, false));//注册个人编辑器。
// binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
}
在web.xml配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
//上面的listener主要是启动spring容器
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
//上面是定义一个servlet ,DispatcherServlet主要是启动mvc框架的。也就是以do结尾的请求都转发到这个dispatchServlet然后由他转发到相应的controller。
定义spring—servlet.xml(上面的DispatcherServlet名+servlet.xml)
<!--注解说明-->
<context:annotation-config />
<!-- 把标记了@Controller注解的类转换为bean -->
<context:component-scan base-package="com.Springmvc.control" />
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 请求映射-->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- freemarker的配置 -->
<bean id="freemarkerConfig"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/view/" />
<property name="defaultEncoding" value="utf-8" />
<property name="freemarkerSettings">
<props>
<prop key="template_update_delay">10</prop>
<prop key="locale">zh_CN</prop>
<prop key="datetime_format">yyyy-MM-dd</prop>
<prop key="date_format">yyyy-MM-dd</prop>
<prop key="number_format">#.##</prop>
</props>
</property>
</bean>
<!-- FreeMarker视图解析 如返回student。。在这里配置后缀名ftl和视图解析器。。-->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"></property>
<property name="suffix" value=".ftl" />
<property name="contentType" value="text/html;charset=utf-8" />
<property name="exposeRequestAttributes" value="true" />
<property name="exposeSessionAttributes" value="true" />
<property name="exposeSpringMacroHelpers" value="true" />
</bean>
exposeRequestAttributes exposeSessionAttributes两个属性都被设置为true。结果是请求和会话属性都被复制到模板的属性集中,可以使用FreeMarker的表达式语言来访问并显示。
使用这些宏,必须设置FreeMarkerViewResolver的exposeSpringMacroHelpers属性为true:
然后controller的的内容如下:
@Controller
@RequestMapping("addStudent.do")
public class StudentControl {
@Autowired
private StudentService studentService;
@RequestMapping(params = "method=add")
public String addStudent(HttpServletRequest request,ModelMap model,Student student) throws IOException, TemplateException {
studentService.addStudent(student);
List<Student> list = studentService.findStudentAll();
model.addAttribute("studentlist", list);//request保存这个对象
return "student";
}
在controller中保持了studentlist(存储在request中)
在freemarker中
<table>
<tr><td>index</td><td>username</td><td>password</td><td>id</td></tr>
<#list studentlist as student>
<tr><td>${student_index}</td><td>${student.user?if_exists}</td><td>${student.psw?if_exists}</td><td>${student.id?if_exists}</td</tr>
</#list>
</table>
即可输入studentlist 内容,注意如果数据库为空没有加?if_exits是不行的,
如果提交表单中有日期格式的话要做自己的属性编辑器
注解方法如下:
@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class,
new CustomDateEditor(dateFormat, false));//注册个人编辑器。
// binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
}
相关推荐
springMVC+freemarker详细整合实例,供大家学习,如果下载下来的项目上有一个红色感吧号就把架包重新加一次,架包位于web-info下面的lib文件夹内
完整的maven+springmvc+mybatis+freemarker+mysql框架整合
简单基础,带注释的springmvc+freemarker开发登录事例
整合了springmvc+FreeMarker+shiro的小Demo!
Spring + SpringMVC + Mybatis + FreeMarker 整合示例。所用jar包均是目前位置最新版本:201710最新版: spring mvc4.3.12 , mybatis: 3.4.5 , FreeMarker : 2.3.26。 有mysql数据库脚本。导入即可使用。有个简单的...
Maven+Spring+SpringMVC+MyBatis+FreeMarker模版下载为Word的Demo
springmvc+mybatis+ehcache+freemarker+sitemesh页面布局(注解)整合实例完美运行
该文档对于SpringMVC与Hibernate和Freemarker整合做了详细的阐述,通过范例使得大家对于三者整合框架的搭建有了更好的了解。
这是一个基于eclipse+springmvc+freemarker+注解的入门例子,是一个war包,import到eclipse就应该可以直接运行,但是确保maven环境到存在;我做为一个入门者,是参照了...
springMVC+freemarker 简单的整合加自定义标签
SpringMVC简单配置及整合Freemarker例子。SpringMVC+Freemarker
Spring3.0+Hibernate4.0+SpringMVC整合ExtJS4是一个集成的应用系统,希望对学习javaweb和extjs的朋友有帮助
SpringMVC+hibernate框架整合 项目中有包括用到的所有包,可以运行!前台用freemarker,开发人员只需要开发就行。
该系统在技术上使用Spring+SpringMVC+MyBatis整合框架作为后台开发框架,AmazeUI作为前端开发框架。 并使用Ehcache作为项目的缓存,druid作为项目的数据库连接池,使用FreeMarker实现word的导出,使用Shiro完成项目...
该系统在技术上使用Spring+SpringMVC+MyBatis整合框架作为后台开发框架,AmazeUI作为前端开发框架。 并使用Ehcache作为项目的缓存,druid作为项目的数据库连接池,使用FreeMarker实现word的导出,使用Shiro完成项目...
消灭了xml配置,转为javaConfig配置类,Spring4.3.12,前端freemarker,持久层JPA
包括1、SpringMVC的配置 2、Freemarker的配置(freemarkerConfig和freemarkerViewResolver) 以简单的HelloWorld为例
SpringMVC-Spring-Mybatis-Freemarker整合
本篇文章主要介绍了springmvc整合freemarker的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
使用springMVC搭建的项目源码,整合freemarker,搭建配置有问题的可以参看一下,有问题留言,一起学习!