@ResponseBody @RequestMapping("/user/add") public Map<String, Object> addUser(@RequestBody User user) { ResponseBean responseBean = new ResponseBean(); User u = userService.selectOne(user); // 查询是否存在用户名 if (u == null) { userService.insertSelective(user); // 不存在则插入 } else { responseBean.putError("该用户名已存在"); } return responseBean.getResponseMap(); }
时间: 2023-12-30 09:02:10 浏览: 80
这段代码是一个Spring MVC的控制器方法,用于处理 "/user/add" 的POST请求,接收JSON格式的请求体,并将请求体反序列化为User对象。该方法首先通过调用userService的selectOne方法查询是否已存在相同用户名的用户,如果不存在,则通过调用userService的insertSelective方法将该用户插入到数据库中。如果存在相同用户名的用户,则返回一个包含错误信息的ResponseBean对象,最后将ResponseBean对象的响应Map返回给客户端。
相关问题
@PostMapping @ResponseBody@RequestBody关联关系
@PostMapping和@RequestBody是Spring MVC中的注解,用于处理HTTP POST请求和请求体中的数据。
@PostMapping注解用于将HTTP POST请求映射到特定的处理程序方法。它是@RequestMapping注解的缩写,用于指定HTTP请求的方法类型。
@RequestBody注解用于将HTTP请求正文中的数据绑定到方法的参数上。它告诉Spring MVC框架将请求体中的JSON或XML数据转换为Java对象。
@RequestBody和@PostMapping通常一起使用,以便从HTTP POST请求中获取请求体中的数据并将其转换为Java对象。
以下是一个使用@PostMapping和@RequestBody的示例:
```java
@RestController
@RequestMapping("/user")
public class UserController {
@PostMapping("/addUser")
@ResponseBody
public void addUser(@RequestBody User user){
System.out.println(user);
}
}
```
在上面的示例中,@PostMapping注解将HTTP POST请求映射到addUser()方法。@RequestBody注解将请求体中的数据绑定到User对象上,并将其作为参数传递给addUser()方法。
SpringMVC的基本使用 一、实验目的 1、掌握SpringMVC执行流程 2、掌握基于注解方式配置DispatcherServlet的方法。 3、掌握控制器类的编写和设置URL映射方法。 4、掌握@RequestMapping,@RequestBody,@ResponseBody, @RequestParam,@PathVariable 基本注解的使用方法。
二、实验步骤
1、创建Maven项目并添加SpringMVC依赖
2、在web.xml中配置DispatcherServlet
3、创建Controller类并添加@RequestMapping注解
4、编写业务逻辑方法
5、使用@RequestParam,@RequestBody,@ResponseBody,@PathVariable注解获取请求参数或返回结果
6、启动Tomcat服务器并测试
三、实验代码
1、pom.xml文件中添加SpringMVC依赖
```xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
```
2、web.xml中配置DispatcherServlet
```xml
<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:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
```
3、Controller类中添加@RequestMapping注解
```java
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value="/add", method=RequestMethod.POST)
@ResponseBody
public String addUser(@RequestBody User user){
System.out.println("添加用户:"+user.getName());
return "success";
}
@RequestMapping(value="/{id}", method=RequestMethod.GET)
@ResponseBody
public User getUser(@PathVariable int id){
User user = new User(id, "张三", 20);
return user;
}
@RequestMapping(value="/list", method=RequestMethod.GET)
public ModelAndView getUserList(){
List<User> userList = new ArrayList<User>();
userList.add(new User(1, "张三", 20));
userList.add(new User(2, "李四", 22));
userList.add(new User(3, "王五", 24));
ModelAndView mav = new ModelAndView();
mav.addObject("userList", userList);
mav.setViewName("userList");
return mav;
}
}
```
4、编写业务逻辑方法
```java
public class User {
private int id;
private String name;
private int age;
//getter和setter方法省略
}
```
5、使用@RequestParam,@RequestBody,@ResponseBody,@PathVariable注解获取请求参数或返回结果
```java
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value="/add", method=RequestMethod.POST)
@ResponseBody
public String addUser(@RequestBody User user){
System.out.println("添加用户:"+user.getName());
return "success";
}
@RequestMapping(value="/{id}", method=RequestMethod.GET)
@ResponseBody
public User getUser(@PathVariable int id){
User user = new User(id, "张三", 20);
return user;
}
@RequestMapping(value="/list", method=RequestMethod.GET)
public ModelAndView getUserList(){
List<User> userList = new ArrayList<User>();
userList.add(new User(1, "张三", 20));
userList.add(new User(2, "李四", 22));
userList.add(new User(3, "王五", 24));
ModelAndView mav = new ModelAndView();
mav.addObject("userList", userList);
mav.setViewName("userList");
return mav;
}
}
```
6、启动Tomcat服务器并测试
访问http://localhost:8080/user/list,可以看到用户列表页面。
访问http://localhost:8080/user/1,可以看到id为1的用户信息。
使用Postman发送POST请求,提交用户信息到http://localhost:8080/user/add。
四、实验总结
通过本次实验,我们学习了SpringMVC的基本使用方法,包括了配置DispatcherServlet、编写Controller类、使用注解获取请求参数或返回结果等。掌握了这些基本知识后,可以更好地进行后续的开发工作。
阅读全文