概述
Spring是一个优秀框架,提供了IoC、AOP、MVC等优秀设计功能。本文以Spring MVC框架开发基于RESTful + JSON + FreeMarker应用。
1、配置Spring MVC框架进行请求拦截,截获已.do结尾的请求,这样首页不被拦截。
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationMvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2、开启注解,扫描特定的包下面的注解,以及mvc注解。
<mvc:annotation-driven />, 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
<context:component-scan base-package="com.deppon.dppm" />,Spring可以自动去扫描com.deppon.dppm下面或者子包下面的java文件,如果扫描到有@Repository@Controller@Service等这些注解的类,则把这些类注册为bean
<mvc:annotation-driven />
<context:component-scan base-package="com.deppon.dppm" />
<mvc:annotation-driven />, 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
<context:component-scan base-package="com.deppon.dppm" />,Spring可以自动去扫描com.deppon.dppm下面或者子包下面的java文件,如果扫描到有@Repository@Controller@Service等这些注解的类,则把这些类注册为bean
3、配置FreeMarker视图解析,适用于用FreeMarker生成静态页面,需要导入freemarker.jar
与FreeMarker视图解析类似的,有以下配置JSP页面的视图解析器。
4、配置静态资源不被拦截,例如js文件,image文件,css文件等
Java代码
userlist.jhtml代码,使用FreeMarker标签迭代集合。
启动tomcat,在浏览器地址栏输入:http://localhost:8080/dppm-spring/user/list.do验证静态页面生成
在浏览器地址栏输入:http://localhost:8080/dppm-spring/user/person/jack.do?json,验证json数据,需要引入jackson开发包
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".jhtml" />
<property name="contentType" value="text/html;charset=UTF-8" />
</bean>
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/views/" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
以上配置会寻找在/WEB-INF/views/目录下以.jhtml结尾模板,然后生成静态页面。
与FreeMarker视图解析类似的,有以下配置JSP页面的视图解析器。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
4、配置静态资源不被拦截,例如js文件,image文件,css文件等
<mvc:resources location="/image/" mapping="/image/**" />
<mvc:resources location="/script/" mapping="/script/**" />
<mvc:resources location="/style/" mapping="/style/**" />
Java代码
package com.deppon.dppm.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.deppon.dppm.entity.User;
@Controller
@RequestMapping("/user")
public class UserController {
private List<User> users;
private Map<String, User> map;
public UserController() {
users = new ArrayList<User>();
User user = new User();
user.setUsername("jack");
user.setPassword("123456");
User user2 = new User();
user2.setUsername("tom");
user2.setPassword("123456");
users.add(user);
users.add(user2);
map = new HashMap<String, User>();
map.put("jack", user);
map.put("tom", user2);
}
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(Model model){
model.addAttribute("users", users);
return "userlist";
}
@RequestMapping(value = "/person/{username}", method = RequestMethod.GET, params = "json")
@ResponseBody
public User jsonList(@PathVariable String username,
HttpServletRequest request, HttpServletResponse response){
if (StringUtils.isNotBlank(username)) {
return map.get(username);
}
return null;
}
}
userlist.jhtml代码,使用FreeMarker标签迭代集合。
<html>
<head>
<title>用户显示列表页面</title>
</head>
<body>
<h2>欢迎来到用户显示列表页面</h2>
<h3 id="userlist">查看用户列表</h3>
<#list users as user>
username : ${user.username} <br/>
password : ${user.password} <br/>
</#list>
</body>
</html>
启动tomcat,在浏览器地址栏输入:http://localhost:8080/dppm-spring/user/list.do验证静态页面生成
在浏览器地址栏输入:http://localhost:8080/dppm-spring/user/person/jack.do?json,验证json数据,需要引入jackson开发包
最后
以上就是小巧溪流为你收集整理的Spring RESTful + JSON + FreeMarker整合开发的全部内容,希望文章能够帮你解决Spring RESTful + JSON + FreeMarker整合开发所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复