使用纯Java整合SpringMVC、freemarker
2017-06-18 18:33
477 查看
前言
我一直以来spring的配置都是通过web.xml来配置的,但是最近看到servlet3.0(即一般Tomcat 6.0以上)以上可用通过Java类来配置spring,这样做比较直观。当然,如果servlet版本较低那只能通过web.xml来配置。步骤
1.新建一个web工程
2.导入如下jar包(红色标记的是必须要的jar包,其他看情况自行加入)
3.新建一个类spittrWebAppInitilizer,包名自己定义(我用com.spitter.config),这个类继承AbstractAnnotationConfigDispatcherServletInitializer,代码 如下:
package com.spitter.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class spittrWebAppInitilizer extends AbstractAnnotationConfigDispatcherServletInitializer { //spring的配置 @Override protected Class<?>[] getRootConfigClasses() { return new Class<?>[] { RootConfig.class }; } //springmvc的配置 @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[] { WebConfig.class }; } @Override protected String[] getServletMappings() { return new String[] { "/" }; } }
4.新建类RootConfig,代码如下:
package com.spitter.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @Configuration @ComponentScan(basePackages = { }, excludeFilters = { @Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class) }) public class RootConfig { }5.新建类WebConfig,继承WebMvcConfigurerAdapter,代码如下:
package com.spitter.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver; @Configuration @EnableWebMvc @ComponentScan("com.oaec.controller") public class WebConfig extends WebMvcConfigurerAdapter { // freemarker的基本配置 @Bean public FreeMarkerConfigurer freeMarkerConfigurer() { FreeMarkerConfigurer configurer = new FreeMarkerConfigurer(); configurer.setTemplateLoaderPath("/WEB- 4000 INF/ftl/"); configurer.setDefaultEncoding("UTF-8"); return configurer; } // freemarker的试图解析配置 @Bean public ViewResolver viewResolver() { FreeMarkerViewResolver resolver = new FreeMarkerViewResolver(); resolver.setPrefix("/");//也可以不同配置prefix,内部默认值是""; resolver.setSuffix(".ftl"); resolver.setContentType("text/html;charset=UTF-8"); return resolver; } // 静态资源处理 @Override public void configureDefaultServletHandling( DefaultServletHandlerConfigurer configurer) { configurer.enable(); } }
6.构建controller,代码如下:
package com.oaec.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("/demo") public class DemoController { @RequestMapping("/view") public String view(ModelMap map) { map.put("name", "jack89"); return "index"; } @RequestMapping("/hello") public String helloTest(Model model) { model.addAttribute("title", "Spring MVC And Freemarker"); model.addAttribute("content", " Hello world , test my first spring mvc ! "); return "hello"; } }
7.新建freemarker的界面文件index.jtl和hello.jtl,这里自己注意文件放置的位置,然后配置相应路径,代码如下:
<pre class="java" name="code"><html> <body> <h1>holle world ${name}</h1><br/> 1 + 1 = 3? ${(1 != 1)?string("yes", "no")} </body> </html> </pre> <br>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>${title}</title> </head> <body> ${content} </body> </html>8.我的项目结构如图:
9.最后就是启动服务器就行测试了,运行结果如下:
注:这是我自己网上找资料然后做出来的,可能有很多地方不是很严谨,希望多多指出错误,另外类上的注解想了解详细信息可以参考https://my.oschina.net/devleon/blog/530953。
相关文章推荐
- springmvc整合freemarker时,freemarker使用include的根路径的问题
- JAVAWEB开发之SpringMVC详解(一)——SpringMVC的框架原理、架构简介、与mybatis整合和注解方式的使用、
- springmvc整合freemarker,使用ftl文件
- java-使用 freemarker 替换 jstl EL 开发 springmvc web项目
- 【JAVA基础】springMVC 整合freemarker(maven)
- springMVC整合freemarker的使用
- 关于使用Gradle整合Springmvc构建JavaWeb项目的那点事
- java-mybatis、springmvc 整合,使用 @Transactional 时遇到的事务相关问题
- SpringMVC和FreeMarker整合中使用注解方式的后台数据校验validate(部分自己扩展)
- Java语言SpringMvc整合FreeMarker静态页面生成
- JAVA Freemarker(2)---在IDEA中 SpringMVC整合Freemarker的详细步骤
- JAVAWEB开发之SpringMVC详解(一)——SpringMVC的框架原理、架构简介、与mybatis整合和注解方式的使用、
- Java Web开发之Spring | SpringMvc | Mybatis | Hibernate整合、配置、使用
- SpringMVC和Freemarker整合,带自定义标签的使用方法
- SpringMVC和FreeMarker整合中使用注解方式的后台数据校验
- FreeMarker与SpringMVC整合
- FreeMarker在Java Project的简单使用
- java实现word套打(关于Freemarker生成word的使用(java生成word))
- [spring] springmvc 整合freemarker 出现版本错误
- Java Web开发——FreeMarker模板使用方法讲解