1.dispatcherServlet的配置
<!-- The front controller of this Spring Web application, responsible for handling all application requests --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc-ftl.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!-- Map all requests to the DispatcherServlet for handling --><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>注:<url-pattern>/</url-pattern>不能指定后缀名
2. 使servlet可以操作PUT和DELETE
<!-- 支持http的PUT和DELTE操作 --> <filter><filter-name>httpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>httpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
3.controller示例
@Controller
@RequestMapping("/user/")
public class UserController
{@RequestMapping(value="index", method=RequestMethod.GET, produces={"application/json;charset=UTF-8"})public ModelAndView index(){ModelAndView modelAndView = new ModelAndView();modelAndView.setViewName("home");return modelAndView;}@RequestMapping(value="user/{id}", method=RequestMethod.GET, produces={"application/json;charset=UTF-8"})@ResponseBodypublic User getUser(@PathVariable("id") String userId){System.err.println("查询用户信息:" + userId);return new UserBuilder().setUserId(userId).setUserName("测试").toUser();}@RequestMapping(value="user", method=RequestMethod.POST, produces={"application/json;charset=UTF-8"})@ResponseBodypublic User addUser(String userId, String userName, int userAge){System.err.println("新增用户信息:" + userId);return new UserBuilder().setUserId(userId).setUserName(userName).setUserAge(userAge).toUser();}@RequestMapping(value="user", method=RequestMethod.PUT, produces={"application/json;charset=UTF-8"})@ResponseBodypublic User editUser(String userId, String userName, int userAge){System.err.println("修改用户信息:" + userId);return new UserBuilder().setUserId(userId).setUserName(userName).setUserAge(userAge).toUser();}@RequestMapping(value="user/{id}", method=RequestMethod.DELETE, produces={"application/json;charset=UTF-8"})@ResponseBodypublic User deleteUser(@PathVariable("id") String userId){System.err.println("删除用户信息:" + userId);return new UserBuilder().setUserId(userId).toUser();}
}
4.js示例
<script type="text/javascript"> function fnQuery(){$.ajax({type: 'GET',url: '${request.contextPath}/user/user/111',async: true,data: {},dataType: "json",success: function(data){alert(JSON.stringify(data));},error:function(msg){alert(JSON.stringify(msg));}});}function fnAdd(){$.ajax({type: 'POST',url: '${request.contextPath}/user/user',async: true,data: {'userId':'123','userName':'测试测试测试测试','userAge':88,},dataType: "json",success: function(data){alert(JSON.stringify(data));},error:function(msg){alert(JSON.stringify(msg));}});}function fnEdit(){$.ajax({type: 'POST',url: '${request.contextPath}/user/user',async: true,data: {_method:'PUT','userId':'55555','userName':'修改试测试测试','userAge':48,},dataType: "json",success: function(data){alert(JSON.stringify(data));},error:function(msg){alert(JSON.stringify(msg));}});}function fnDelete(){$.ajax({type: 'POST',url: '${request.contextPath}/user/user/111',async: true,data: {_method:'DELETE',},dataType: "json",success: function(data){alert(JSON.stringify(data));},error:function(msg){alert(JSON.stringify(msg));}});}</script>
注:PUT与DELETE的特殊处理,需要在参数中增加_method.
参考地址:http://www.cnblogs.com/qixiaoyizhan/p/5864233.html
转载于:https://blog.51cto.com/881206524/1922055