Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc Spring3MVC错误:BeanName';的BindingResult和普通目标对象都不是;用户';可获得的_Spring Mvc - Fatal编程技术网

Spring mvc Spring3MVC错误:BeanName';的BindingResult和普通目标对象都不是;用户';可获得的

Spring mvc Spring3MVC错误:BeanName';的BindingResult和普通目标对象都不是;用户';可获得的,spring-mvc,Spring Mvc,我知道这个问题可能在其他地方得到了解决,但我无法找到一个令人满意的解决方案。顺便说一句,我正在使用Spring3.0.2 Login.jsp <form:form id="_LoginForm" name="LoginForm" modelAttribute="user" action="login" method="POST"> <form:input path="username" value=""/> <form:input path="pas

我知道这个问题可能在其他地方得到了解决,但我无法找到一个令人满意的解决方案。顺便说一句,我正在使用Spring3.0.2

Login.jsp

<form:form id="_LoginForm" name="LoginForm" modelAttribute="user" action="login" method="POST">
    <form:input path="username" value=""/>
    <form:input path="password" value=""/>
    <input type="submit" value="Submit"/>
尝试访问login.jsp页面时,出现以下错误:

java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'user' available as request attribute at org.springframework.web.servlet.support.BindStatus.(BindStatus.java:141) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:174) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:194) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:160) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:123) at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:409) at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:140) at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102) java.lang.IllegalStateException:bean名称“user”的BindingResult和普通目标对象都不能作为请求属性使用 位于org.springframework.web.servlet.support.BindStatus。(BindStatus.java:141) 位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:174) 位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:194) 位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:160) 位于org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:123) 位于org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:409) 位于org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:140)
在org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)上,您可以在控制器中提供RequestMethod.GET方法吗?
只想确保您也在GET方法中添加modelAttribute。

能否在控制器中提供RequestMethod.GET方法?
只是想确保您也在GET方法中添加modelAttribute。

我添加了以下方法来实现这一点,尽管我觉得一定有更好的方法来实现这一点,而不必每次都编写安装方法

applicationContext.xml

<mvc:view-controller path="/" view-name="index" />

index.jsp

<jsp:forward page="index.action"/>

LoginController.java

@RequestMapping(value="login", method=RequestMethod.POST)
public String login(@ModelAttribute("user") User user, BindingResult result) {
    System.out.println("recd request");
    return null;
}
@RequestMapping(value="index.action", method=RequestMethod.GET)
public String setupLogin(Map<String, Object> modelMap) {        
    modelMap.put("user", new User());
    return "Login";
}
@RequestMapping(value=“index.action”,method=RequestMethod.GET)
公共字符串setupLogin(映射模型映射){
put(“user”,new user());
返回“登录”;
}

我添加了以下方法来实现这一点,尽管我觉得一定有更好的方法来实现这一点,而不必每次都编写安装方法

applicationContext.xml

<mvc:view-controller path="/" view-name="index" />

index.jsp

<jsp:forward page="index.action"/>

LoginController.java

@RequestMapping(value="login", method=RequestMethod.POST)
public String login(@ModelAttribute("user") User user, BindingResult result) {
    System.out.println("recd request");
    return null;
}
@RequestMapping(value="index.action", method=RequestMethod.GET)
public String setupLogin(Map<String, Object> modelMap) {        
    modelMap.put("user", new User());
    return "Login";
}
@RequestMapping(value=“index.action”,method=RequestMethod.GET)
公共字符串setupLogin(映射模型映射){
put(“user”,new user());
返回“登录”;
}

是否建议添加一种设置方法,将“用户”属性放入模型映射,然后重定向到登录页面?是否建议添加一种设置方法,将“用户”属性放入模型映射,然后重定向到登录页面?