您的位置:首页 > 编程语言 > Java开发

使用纯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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: