# ssm-test01 **Repository Path**: MarkPolaris/ssm-test01 ## Basic Information - **Project Name**: ssm-test01 - **Description**: ssm整合实现crud - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-30 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 整合的两种方式 1. import 整合 在springMVC配置文件中导入spring配置文件 ```xml ``` 2. web.xml整合 不修改springMVC和spring配置文件,在web.xml中整合 ```xml contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener ``` ### 动静分离 #### controller层 ```java package com.neuedu.controller; import com.alibaba.fastjson.JSON; import com.neuedu.entity.User; import com.neuedu.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; import java.util.Map; /** * @Author: MARK * @Date: 2019/7/29 19:14 * @version: 1.0.0 * @Description: */ @Controller @Slf4j @ResponseBody @RequestMapping(value = "/user" ,produces = "application/json; charset=utf-8") public class UserController { @Autowired private UserService userService; @GetMapping("/user") public String users(){ log.info("-------用户列表controller进来了"); List list = userService.getAll(); String json = JSON.toJSONString(list); return json; } @PostMapping("/add") public void add(@RequestParam("username") String username){ log.info("-------add controller"); log.info("-------" + username); User user = new User(); user.setUsername(username); userService.add(user); } @PostMapping("/update") public void update(HttpServletRequest request){ log.info("-------update controller"); Integer id = Integer.parseInt(request.getParameter("modal_id")); String username = request.getParameter("modal_name"); User user = new User(); user.setId(id); user.setUsername(username); userService.update(user); } @PostMapping("/delete") public void delete(HttpServletRequest request){ log.info("-------delete controller"); Integer id = Integer.parseInt(request.getParameter("id")); userService.delete(id); } } ``` #### AJAX ```javascript // 提交更新 $("#modal_submit").click(function(){ $.ajax({ url: "../../../user/update", //请求路径urlPattern dataType: "text", type: "post", data: { id: $("#modal_id").text(), username: $("#modal_name").val(), birth: $("#modal_birth").val() + " 00:00:00" }, success: function(){ window.location.href="userList.html" } }); }); ``` #### 配置后台数据校验通过validator 1. 配置pom.xml 注意使用5.0版本6.0报错 ```xml org.hibernate hibernate-validator 5.0.2.Final ``` ``` 2. spring-mvc.xml中配置validator ```xml classpath:messages ``` 3. 编写messages.properties ```properties user.username.null=用户名不能为空 ``` 4. 实体类添加注解 ```java @NotNull(message = "user.username.null") private String username; ``` 5. controller添加注解 ```java @PostMapping("/add") /** * @param [user] 实体类实现参数绑定 * @return void * @create: 9:51 2019/8/1 * @author MARK * @Description: */ public void add(@Valid User user, BindingResult result){ if (result.hasErrors()) { // 输出错误信息 List allErrors = result.getAllErrors(); for (ObjectError objectError : allErrors) { // 输出错误信息 log.info("-------"+objectError.getDefaultMessage()); } } log.info("-------add controller"); log.info("-------" + user.getUsername()); log.info("-------" + user.getBirth()); log.info("-------" + user.getPassword()); userService.add(user); } } ``` 6. postman接口测试 ```text [INFO ] 2019-08-01 10:57:19,899 method:com.neuedu.controller.UserController.add(UserController.java:62) -------用户名不能为空 ``` 7. 如果出现乱码,查看idea的编码,file-settings-editor-file Encoding 修改下面properties编码设置 #### json数据传递 1. 使用postman测试json接口 ![5d4286d1d0c8d56978](https://i.loli.net/2019/08/01/5d4286d1d0c8d56978.png) 2. controller层 ```java @PostMapping("/json") public String getJson(@RequestBody String json){ JSONObject userJson = JSONObject.parseObject(json); User user = JSON.toJavaObject(userJson, User.class); log.info("-------json.toJavaObject: "+user); return json; } ``` 3. 日志输出 ```textile [INFO ] 2019-08-01 14:20:46,188 method:com.neuedu.controller.UserController.getJson(UserController.java:98) -------json.toJavaObject: User(id=null, username=是否是, password=12121, birth=Wed Aug 07 00:00:00 CST 2019) ```