gpt4 book ai didi

java - 如何使用 Spring MVC 从我的表单中填充两个 bean?

转载 作者:搜寻专家 更新时间:2023-11-01 02:29:47 31 4
gpt4 key购买 nike

所以我使用带注解的 Spring MVC 3。

我有一个包含三个字段的简单 html 表单(实际上是 ExtJS)。

1) Username
2) Password
3) Color

好的,usernamepassword 属于名为User 的数据bean。 color 属于另一个名为 Color 的 bean。

在我的 UserController 中,我有:

@RequestMapping(value = "/users/login", method = RequestMethod.POST)
@ResponseBody
public String handleLogin( @ModelAttribute("user") User paUser,
@ModelAttribute("color") Color paColor,
ModelMap map) {

// at this point "paUser" contains both username AND password submitted from form

// however, there is nothing in "paColor"

...

return "user.jsp"
}

我做错了什么?

顺便说一句,我是 Spring 的新手。

谢谢

最佳答案

通常您会创建一个表示表单的新类(这称为表单支持对象),例如 UserColorForm,它包含请求正文中每个输入的属性。

您的 Controller 方法将如下所示:

@RequestMapping(value = "/users/login", method = RequestMethod.POST)
@ResponseBody
public String handleLogin(UserColorForm form, ModelMap map) {
// now you can work with form.getUsername(), form.getColor() etc.

如果 FBO bean 具有与表单输入名称匹配的属性名称,Spring 会将请求中的输入直接绑定(bind)到属性。即,如果表单输入是 username=matt&color=blue 那么 Spring 将创建我的表单的一个新实例并调用 setUsername("matt")setColor("蓝色").

顺便说一句,如果您要从方法返回 View 的名称 (user.jsp)。 @ResponseBody表示方法的返回值应该直接写入响应流。

关于java - 如何使用 Spring MVC 从我的表单中填充两个 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12413105/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com