ssm实现crud_使用rest风格的uri、服务端返回json数据(3)
来源:互联网 发布:js 函数对象的构造函数 编辑:程序博客网 时间:2024/05/22 10:34
1、配置web.xml文件来支持rest风格
<filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
如上配置后,在post的请求数据中添加”_method=PUT”标识为put请求,delete类似,此时不能将请求直接设为PUT,必需使用POST,让filter来转换。因为在页面直接发put请求时,需要添加spring的HttpPutFormContentFilter拦截器,因为tomcat对put的请求不进行数据封装,配置如下:
<!--解决put请求数据tomcat不封装的问题--> <filter> <filter-name>HttpPutFormContentFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class> </filter> <filter-mapping> <filter-name>HttpPutFormContentFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2、让服务端返回json数据
在maven配置文件中添加:
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.9</version> </dependency>
在控制器的对应方法上添加注解@ResponseBody
, 例如:
@ResponseBody @RequestMapping(value = "/user/{id}",method = RequestMethod.GET) public Msg getUser(@PathVariable("id")Integer id){ User user=userService.getUser(id); return Msg.success().add("user",user); }
其中@PathVariable("id")
指明对应参数由@RequestMapping(value = "/user/{id}",method = RequestMethod.GET)
中的id获得。
控制器完整代码如下:
package cn.mk95.www.ssm_crud.controller;import cn.mk95.www.ssm_crud.bean.Msg;import cn.mk95.www.ssm_crud.bean.User;import cn.mk95.www.ssm_crud.service.UserService;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.*;import java.util.ArrayList;import java.util.List;/** * Created by yyh on 2017/7/14. */@Controllerpublic class UserController { @Autowired UserService userService; //使用json,需要jackson包将对象转换成json @RequestMapping("/jsonUserList") @ResponseBody public Msg getUsers(@RequestParam(value = "pn",defaultValue = "1")int pn){ PageHelper.startPage(pn,5);//在要分页查询的方法前指定页数和每页的数据数量 List<User> users=userService.findAll(); //使用pageoinfo包装查询后的结果,封装了详细的分页信息,包括数据,传入连续显示的页数 PageInfo pageInfo=new PageInfo(users,5); return Msg.success().add("pageinfo",pageInfo); } @ResponseBody @RequestMapping(value = "/user",method = RequestMethod.POST) public Msg saveUser(User user){ userService.saveUser(user); return Msg.success(); } @ResponseBody @RequestMapping(value = "/user/{id}",method = RequestMethod.GET) public Msg getUser(@PathVariable("id")Integer id){ User user=userService.getUser(id); return Msg.success().add("user",user); } /** * uri中的userId与user对象的属性对应 * 在页面直接发put请求时,需要添加spring的HttpPutFormContentFilter拦截器,因为tomcat对put的请求不进行数据封装 * 发post请求在参数后接"&_method=put"就可以不用配置拦截器 * @param user * @return */ @ResponseBody @RequestMapping(value = "/user/{userId}",method = RequestMethod.PUT) public Msg updateUser(User user){ userService.updateUser(user); return Msg.success(); } @ResponseBody @RequestMapping(value = "/user/{ids}",method = RequestMethod.DELETE) public Msg deleteUser(@PathVariable("ids") String ids){ if(ids.contains("-")){ String[] str_ids=ids.split("-"); List<Integer> int_ids=new ArrayList<Integer>(); for(String id:str_ids){ int_ids.add(Integer.parseInt(id)); } userService.deleteBatch(int_ids); }else{ Integer id=Integer.parseInt(ids); userService.deleteUser(id); } return Msg.success(); } @RequestMapping("/list") public String getUsers(@RequestParam(value = "pn",defaultValue = "1")int pn, Model model){ PageHelper.startPage(pn,5);//在要分页查询的方法前指定页数和每页的数据数量 List<User> users=userService.findAll(); //使用pageoinfo包装查询后的结果,封装了详细的分页信息,包括数据,传入连续显示的页数 PageInfo pageInfo=new PageInfo(users,5); model.addAttribute("pageinfo",pageInfo); return "list"; }}
UserSerivce完整代码:
package cn.mk95.www.ssm_crud.service;import cn.mk95.www.ssm_crud.bean.User;import cn.mk95.www.ssm_crud.bean.UserExample;import cn.mk95.www.ssm_crud.dao.UserMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * Created by yyh on 2017/7/14. */@Servicepublic class UserService { @Autowired UserMapper userMapper; public List<User> findAll() { return userMapper.selectByExampleWithTeam(null); } public void saveUser(User user) { userMapper.insertSelective(user); } public User getUser(Integer id) { return userMapper.selectByPrimaryKey(id); } public void updateUser(User user) { userMapper.updateByPrimaryKeySelective(user); } public void deleteUser(Integer id) { userMapper.deleteByPrimaryKey(id); } public void deleteBatch(List<Integer> int_ids) { UserExample example=new UserExample(); UserExample.Criteria criteria=example.createCriteria(); criteria.andUserIdIn(int_ids); userMapper.deleteByExample(example); }}
项目完整代码:https://github.com/1114951496/ssm-crud
阅读全文
0 0
- ssm实现crud_使用rest风格的uri、服务端返回json数据(3)
- ssm实现crud_创建项目(1)
- asp.net mvc实现rest风格返回json
- SpringMVC构建REST风格的URI
- 使用NetKerne实现REST风格的ESB
- vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
- vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
- SpringMVC4.0实现rest风格接口,json格式请求和返回
- ssm框架整合及Rest风格接口实现
- REST风格的应用程序实现
- REST风格的应用程序实现
- REST风格的应用程序实现
- Httpclient 请求带Authorization(授权)的REST API 返回JSON数据
- 简单的node 服务端 响应get,返回json数据;
- 简单的node 服务端 响应get,返回json数据;
- 使用Jersey快速实现rest风格的webservice
- 使用SpringMVC实现REST风格的CRUD功能
- ssm框架 返回 json格式数据
- 屏蔽网站广告插件:广告终结者
- WPS制作三线表(表内横线粗细可调)
- angularjs 页面之间传递图片地址
- Python导入自定义模块
- Socket与http、tcp客户端与服务器连接的区别!
- ssm实现crud_使用rest风格的uri、服务端返回json数据(3)
- 降低耦合严重度
- quickFix Java Demo
- JavaMail原理解析
- Java线程监听,意外退出线程后自动重启
- FineReport(二)帆软报表图表的
- stratum mining protocol demo
- 超级读入挂HDU(6044)
- nexus更新Central仓库索引