当前位置: 代码迷 >> Ajax >> springMVC+Rest+Ajax小例记要
  详细解决方案

springMVC+Rest+Ajax小例记要

热度:904   发布时间:2012-07-18 12:05:40.0
springMVC+Rest+Ajax小例记录

学习spring 3.0有新的变化,以前只用XML作为配置文件,现在还有标记了,这个实在是方便不少.谢谢aegeanmoon的提示,查了一下springMVC,支持Rest。这里用到springMVC,不过这个以前没有用过,以前只用过strutst2. 好吧,建立如下的项目结构.

1.???????? 文件结构
?

?springMVC的时候会涉及到很多支持spring的包,如果不引入来会出现大量的错误。这个包会在springprojectant之类的文件中找到。

2.???????? 写第一个配置文件web.xml,没有配置spring

的公共容器,只用servlet.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	<servlet>
	<servlet-name>rest</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>rest</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

?

3.???????? 在默认的路径下写rest-servlet.xml

文件(图所示的路径)?

?4.???????? 写一个TestSimpleControl.java作为MVC

中的Controller.

package com.lr;

import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/test")
public class TestSimpleControl {
	
	// /test/index/对应的处理
	@RequestMapping("/index")
	public String index(HttpServletRequest request, HttpServletResponse response) {
		// response,request会自动传进来
		request.setAttribute("message","REST:index page , no input id!");
		return "index";
	}

	// 根据ID获取不同的内容,通过@PathVariable 获得属性
	@RequestMapping(value = "/{id}", method = RequestMethod.GET)
	public String get(@PathVariable("id") String id, HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		request.setAttribute("message","REST:input ID is "+ id + "");
		return "index";
	}
	//{}用了占位符,这个用于Ajax中的异步请求
	@RequestMapping(value = "/{id}", method = RequestMethod.POST)
	public void testAjax(@PathVariable("id") String id,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException {
		response.getWriter().write("ID is " + id);
	}
}

?

5.???????? 测试1:输入-----http://localhost:8080/TestRest/test/index
?

?

6.???????? 测试2:输入------http://localhost:8080/TestRest/test/118

7.???????? 测试3:输入------http://localhost:8080/TestRest/responseAjax.jsp

?

?

?

  相关解决方案