# 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接口

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)
```