如何在spring MVC中将jsp中的表单值连接到控制器

时间:2013-06-21 16:58:16

标签: java spring jsp spring-mvc

我是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

如何解决这个问题?帮助我

5 个答案:

答案 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方法,我已编辑它,现在它正常工作