Изучаю Spring. Пытаюсь создать форму регистрации. Но после заполнения формы объект User в addUserFromForm приходит пустым. В bindingResult также нет никаких ошибок, чтобы я туда не вводил.
UserController.java
package mvc;
import db.UserDAO;
import entities.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/user")
public class UserController {
private UserDAO userDAO;
@Autowired
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
@RequestMapping(value = "/r", method = RequestMethod.GET)
public String regUser(Model model){
model.addAttribute(new User());
return "reg";
}
@RequestMapping(value = "/r", method = RequestMethod.POST)
public String addUserFromForm(User user, BindingResult bindingResult){
if (bindingResult.hasErrors()) return "reg";
System.out.println(user);
userDAO.persistUser(user); //Валится здесь из-за того, что все поля пустые
System.out.println(bindingResult.getFieldErrors().size());
return "redirect:/user/" + user.getNickName();
}
User.java
package entities;
import db.UserDAO;
import javax.persistence.*;
import javax.validation.constraints.Size;
import java.util.Objects;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue
private int id;
@Size(min = 4, max = 50, message = "От 4 до 50 символов")
@Column(nullable = false)
private String name;
@Size(min = 6, max = 20, message = "От 6 до 20 символов")
private String password;
private boolean admin;
private String position;
@ManyToOne
@JoinColumn(name = "DEPARTMENT_ID")
private Department department;
@ManyToOne
@JoinColumn(name = "ORG_ID", nullable = false)
private Organization organization;
private byte[] photo;
private byte[] photo_small;
private UserSettings settings;
@Transient
private UserDAO userDAO;
public User() {
}
registration_form.jsp
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Registration</title>
</head>
<body>
<div class="reg_container">
<sf:form enctype="multipart/form-data" method="post" modelAttribute="user">
<div class="reg_block">
<label class="reg_field">
Введите Ваше имя:
<sf:input path="name" size="50" maxlength="50"/>
<img src="../../resources/checkbox.jpg">
<sf:errors path="name" cssClass="error"/>
</label>
</div>
<div class="reg_block">
<label class="reg_field">
Введите пароль:
<sf:password path="password" size="20"/>
<img src="../../resources/checkbox.jpg">
<sf:errors path="password" cssClass="error"/>
</label>
</div>
<div class="reg_block">
<label class="reg_field">
Повторите пароль:
<input type="password">
<img src="../../resources/checkbox.jpg">
</label>
</div>
<div class="form_photo reg_block">
<label class="reg_field">Загрузите фото:
<input type="file" name="photo" accept="image/*" class="select_avatar">
<img src="../../resources/checkbox.jpg">
</label>
</div>
<div class="reg_block">
<input name="commit" type="submit" >
</div>
</sf:form>
</div>
</body>
</html>
Добавь к аргументу user метода addUserFromForm аннотацию @RequestBody
:
public String addUserFromForm(@RequestBody User user, BindingResult bindingResult) {...}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Столкнулся с такой проблемойВ БД записал объект класса Cookie вот таким вот образом :
Есть не тривиальная задачка отслеживать схожесть идентификаторов +- в %-ном соотношенииБольше надеюсь узнать нет ли какой то либы от гугла,...
Пишу вэб приложение на javascript которое должно быть кросплатформенным, но столкнулся с проблемой при работе с сайтом на телефоне не работают...
При нажатии на ссылку производиться скроллМне необходимо, что бы при скролле нажав на другую ссылку, поменялся приоритет и изменения скролла...