Java 在Spring项目中使用@ModelAttribute时,SpringInputGeneralFieldDattrProcessor出错
我正在尝试使用表单更新用户名。问题是,当我使用@modeldattribute时,我得到以下错误: 处理器执行期间出错 'org.thymeleaf.spring4.processor.attr.springInputGeneralFieldDattrProcessor' (帐户:79) 来自IDE的完整错误信息:Java 在Spring项目中使用@ModelAttribute时,SpringInputGeneralFieldDattrProcessor出错,java,spring,forms,spring-boot,modelattribute,Java,Spring,Forms,Spring Boot,Modelattribute,我正在尝试使用表单更新用户名。问题是,当我使用@modeldattribute时,我得到以下错误: 处理器执行期间出错 'org.thymeleaf.spring4.processor.attr.springInputGeneralFieldDattrProcessor' (帐户:79) 来自IDE的完整错误信息: @Controller public class AccountController { @Autowired private UserService userSe
@Controller
public class AccountController {
@Autowired
private UserService userService;
@GetMapping("/account")
public ModelAndView adminPage(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("account");
//modelAndView.addObject("users", userService.getAllUsers());
return modelAndView;
}
@PutMapping("/renameUsername")
public ModelAndView renameUserName(@ModelAttribute("user") User newUserName) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String currentUser = auth.getName();
userService.changeUsername(currentUser, newUserName);
return new ModelAndView("account");
}
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@ToString
public class User {
@Id
private String logonName;
private String firstName;
private String lastName;
@JsonIgnore
private String password;
private String recoveryQuestion;
@JsonIgnore
private String recoveryAnswer;
}
public void changeUsername(String oldUserName, User newUserName) {
User user = userRepository.findOne(oldUserName);
user.setLogonName(newUserName.getLogonName());
userRepository.save(user);
}
2017-12-30 09:03:16.082错误6536---[nio-8080-exec-7]
o、 a.c.c.c.[/].[dispatcherServlet]:的Servlet.service()
路径为[]的上下文中的servlet[dispatcherServlet]引发异常
[请求处理失败;嵌套异常为
org.thymeleaf.exceptions.TemplateProcessingException:运行期间出错
处理器的执行
'org.thymeleaf.spring4.processor.attr.springInputGeneralFieldDattrProcessor'
(账户:79)]有根本原因
java.lang.IllegalStateException:既不是BindingResult也不是plain
bean名称“user”的目标对象可作为请求属性在
org.springframework.web.servlet.support.BindStatus.(BindStatus.java:144)
~[spring-webmvc-4.3.13.RELEASE.jar:4.3.13.RELEASE]at
org.thymeleaf.spring4.util.FieldUtils.getBindStatusFromParsedExpression(FieldUtils.java:401)
~[thymeleaf-spring4-2.1.6.释放.罐:2.1.6.释放]在
org.thymeleaf.spring4.util.FieldUtils.getBindStatus(FieldUtils.java:328)
~[thymeleaf-spring4-2.1.6.释放.罐:2.1.6.释放]在
org.thymeleaf.spring4.util.FieldUtils.getBindStatus(FieldUtils.java:294)
~[thymeleaf-spring4-2.1.6.释放.罐:2.1.6.释放]在
org.thymeleaf.spring4.processor.attr.AbstractSpringFieldAttrProcessor.processAttribute(AbstractSpringFieldAttrProcessor.java:98)
~[thymeleaf-spring4-2.1.6.释放.罐:2.1.6.释放]在
org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess(AbstractAttrProcessor.java:87)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.processor.AbstractProcessor.process(AbstractProcessor.java:212)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.applyNextProcessor(Node.java:1017)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:972)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Node.processNode(Node.java:990)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.dom.Document.process(Document.java:93)
~[thymeleaf-2.1.6.释放.jar:2.1.6.释放]at
org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1155)
~[thymeleaf-2.1.6.发布.jar:2.1.6.REL