我是Spring MVC的新手。我想将一个模型bean附加到一个绑定值并将其传递给控制器的表单。所以我做了以下方式
在jsp中
<form:form modelattribute="model">
<form:input path="var1"/>
</form:form>
控制器中的
pulic void method(@modelattribute("model")Bean bean)
{
//my code
}
但是在访问表单时,它在呈现jsp时将错误作为异常抛出,没有名称模型存在这样的bean
如何解决这个问题?帮助我
答案 0 :(得分:2)
假设您的模型类如下:
public class MyModel{
private String propOne;
private String porpTwo;
/*Skipping getters and setters*/
}
使用 @ModelAttribute 将用户输入映射到表单bean:
@RequestParam("/myPage")
public String myController(@ModelAttribute MyModel myModel){
/*Do your processing here*/
}
在 jsp 页面上,只需将输入字段与名称(Html属性:名称)相同,作为要映射的bean内的属性:
<form:input name="propOne" class="xyz" />
<form:input name="propTwo" class="xyz" />
这样做可以完成你的bean映射。
答案 1 :(得分:0)
您需要在渲染页面之前保存模型。
uiModel.addAttribute("model", new Bean());
答案 2 :(得分:0)
在Spring MVC中,最好在控制器中为方法提供模型时使用@ModelAttribute注释。在呈现JSP之前,这将被调用并自动添加到模型中。
像这样的东西
@ModelAttribute
public Model model(){
return new Model();
}
我建议您仔细阅读Spring MVC documentation
答案 3 :(得分:0)
您必须在GET请求期间将表单实例添加到模型中
@RequestMapping(value = "/foo", method = RequestMethod.GET)
public String handler(final Model uiModel)
uiModel.addAttribute("model", new Bean());
//做某事并返回视图路径 }
和处理POST请求的处理程序方法
@RequestMapping(value = "/foo", method = RequestMethod.POST)
public String handler(final Bean form)
// process your form bean here and return a view path, probably
}
此处提供了文档:http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/mvc.html
答案 4 :(得分:-1)
请查看Vaibhav方法,我已编辑它,现在它正常工作