Spring MVC – Bean名称“ xxx”的BindingResult或纯目标对象都不能用作请求属性。

问题

最近,刚刚将基于Spring MVC xml的表单控制器转换为基于 注释的表单控制器 ,并遇到了以下错误消息。

严重:Bean名称“ customerForm”的BindingResult或普通目标对象都不能用作请求属性
java.lang.IllegalStateException:BeanResult'customerForm'的BindingResult和普通目标对象都不可用作请求属性

上面的错误消息清楚地表明“ customerForm” bean不存在,并且我100%确保正确配置了视图解析器,并且存在“ CustomerForm.jsp”视图页面。

表单控制器

@Controller
@RequestMapping("/customer.htm")
public class CustomerController{

       @RequestMapping(method = RequestMethod.GET)
	public String initForm(ModelMap model){
		//return form view
		return "CustomerForm";
	}

查看解析器

...
	<bean id="viewResolver"
	      class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
              <property name="prefix">
                  <value>/WEB-INF/pages/</value>
              </property>
              <property name="suffix">
                 <value>.jsp</value>
             </property>
        </bean>

导致的根本原因是JSP页面中的视图名称不正确,请参见下文。

<form:form method="POST" commandName="customerForm">

控制器映射中不再存在“ customerForm”,请参见注释映射@RequestMapping(“ / customer.htm”) ,应将其更改为“ customer”。

<form:form method="POST" commandName="customer">

类似情况

我已经看到很多类似的情况也发生在验证器或SimpleFormController类中。 要解决此问题,只需确保映射名称匹配或存在。

翻译自: https://mkyong.com/spring-mvc/spring-mvc-neither-bindingresult-nor-plain-target-object-for-bean-name-xxx-available-as-request-attribute/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值