$.ajax=>@ModelAttribute=null
我是一名学习Java的学生 我在学习和练习,但我问你一个问题,因为我有一个问题$.ajax=>@ModelAttribute=null,ajax,Ajax,我是一名学习Java的学生 我在学习和练习,但我问你一个问题,因为我有一个问题 通过$.ajax从join.jsp向controller发送(用户名、密码、irum、电子邮件) 从控制器获取@modeldattribute并将其移交给服务 将服务作为insert输入数据库 我在想一些事情 另外 不发送电子邮件 ID和密码规则不适用 我来写代码 join.jsp $("#join_btn").on("click", function() { var
$("#join_btn").on("click", function() {
var formData = new FormData($("#join_form")[0]);
for(var item of formData.entries()) { // Normal output
console.log(item [0]+ ' : '+ item [1]);
}
alert("콘솔확인용"); // Normal output
$.ajax({
url: "/www/users/user",
method: "post",
data: formData,
contentType: false,
processData: false
}).done(()=>{alert("succ")})
.fail(()=>{alert("fail")}); // "fail" output
});
↓
↓
控制器
@PostMapping("/users/user")
public ResponseEntity<?> join(@ModelAttribute UserDto.Join dto) {
System.out.println("==============================================");
System.out.println("dto : " + dto); // null output
service.join(dto);
return ResponseEntity.ok(null);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-
mapper.dtd">
<mapper namespace="com.iciamall.www.dao.UserDao">
<insert id="insert">
insert into users(username, password, irum, email)
values(#{username}, #{password}, #{irum}, #{email})
</insert>
dto
@NoArgsConstructor
public class UserDto {
@Data
public static class Join {
private String username;
private String password;
private String irum;
private String email;
}
}
public interface UserDao {
public User findById(String username);
public User findByEmail(String email);
public int insert(User user);
}
dao
@NoArgsConstructor
public class UserDto {
@Data
public static class Join {
private String username;
private String password;
private String irum;
private String email;
}
}
public interface UserDao {
public User findById(String username);
public User findByEmail(String email);
public int insert(User user);
}
实体
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain=true)
public class User {
private String username;
private String password;
private String irum;
private String email;
}
userMapper
@PostMapping("/users/user")
public ResponseEntity<?> join(@ModelAttribute UserDto.Join dto) {
System.out.println("==============================================");
System.out.println("dto : " + dto); // null output
service.join(dto);
return ResponseEntity.ok(null);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-
mapper.dtd">
<mapper namespace="com.iciamall.www.dao.UserDao">
<insert id="insert">
insert into users(username, password, irum, email)
values(#{username}, #{password}, #{irum}, #{email})
</insert>
插入用户(用户名、密码、irum、电子邮件)
值(#{username}、#{password}、#{irum}、#{email})
=========================================================================================================
控制器
System.out.println(“dto:+dto”);
=>UserDto.Join(用户名=null,密码=null,irum=null,电子邮件=null)
控制台
=>[请求处理失败;嵌套异常为java.lang.NullPointerException:无法调用“com.iciamall.www.service.UserRestService.join(com.iciamall.www.dto.UserDto$join)”,因为“this.service”为null]