Spingboot,校验,校验出错 org.thymeleaf.exceptions.TemplateProcessingException: java.lang.IllegalStateExc

11 篇文章 0 订阅
3 篇文章 0 订阅

问题描述

<form th:action="@{/save}" method="post">
		<label>用户姓名:<input type="text" name="name"/><font color="red" th:errors="${users.name}"></font></label><br/>
		<label>用户密码:<input type="password" name="password"/><font color="red" th:errors="${users.password}"></font></label><br/>
		<label>用户年龄:<input type="text" name="age"/><font color="red" th:errors="${users.age}"></font></label><br/>
		<button>提交</button>
	</form>
org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'org.thymeleaf.spring4.processor.SpringErrorsTagProcessor' (template: "addUser" - line 9, col 65)
	at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:117) ~[thymeleaf-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'users' available as request attribute
	at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:144) ~[spring-webmvc-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.thymeleaf.spring4.util.FieldUtils.getBindStatusFromParsedExpression(FieldUtils.java:307) ~[thymeleaf-spring4-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	at org.thymeleaf.spring4.util.FieldUtils.getBindStatus(FieldUtils.java:258) ~[thymeleaf-spring4-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	at org.thymeleaf.spring4.util.FieldUtils.getBindStatus(FieldUtils.java:227) ~[thymeleaf-spring4-3.0.2.RELEASE.jar:3.0.2.RELEASE]
	

解决办法:

方法1,在跳转到添加页面添加users对象

/*
	 * 解决异常方式,可以在跳转页面的方法注入一个Users对象
	 * 注意:由于springmvc会将该对象放到Model中传递,
	 * key的名称会使用该对象驼峰式的命名规则来做为key
	 * 所以参数的变量名需要与对象的名称相同,将首字母小写
	 */
	@RequestMapping("/addUser")
	public String showPage(Users users) {
		return "addUser";
	}

 

方法2,修改controller和html

@RequestMapping("/addUser")
	public String showPage(@ModelAttribute("aa") Users users) {
		return "addUser";
	}
<form th:action="@{/save}" method="post">
		<label>用户姓名:<input type="text" name="name"/><font color="red" th:errors="${aa.name}"></font></label><br/>
		<label>用户密码:<input type="password" name="password"/><font color="red" th:errors="${aa.password}"></font></label><br/>
		<label>用户年龄:<input type="text" name="age"/><font color="red" th:errors="${aa.age}"></font></label><br/>
		<button>提交</button>
	</form>
@RequestMapping("/save")
	public String saveUser(@ModelAttribute("aa") @Valid Users users,BindingResult result) {
		System.out.println(users);
		if(result.hasErrors()) {
			return "addUser";
		}
		return "ok";
	}

建议都用方法1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值