Spring MVC3: Controller接受Form数据

本文深入解析SpringMVC3中Controller如何通过表单数据进行操作,包括参数解析、对象赋值和不同注解使用场景,提供实例代码帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring MVC3: Controller接受Form数据
	<form action="./saveIntoDatabase.do" method="post" name="saveIntoDatabase">
<input name="name" type="text">
<input name="password" type="text">
<input type="submit" value="Submit">
</form><br>

<form action="./saveObject.do" method="post" name="saveObject">
<input name="name" type="text">
<input name="password" type="text">
<input type="submit" value="Submit">
</form><br>


Controller:
@RequestMapping(value="/saveIntoDatabase.do")
public ModelAndView saveIntoDB(@RequestParam("name")String name,@RequestParam("password")String password){

ModelAndView view = new ModelAndView("helloWord");
view.addObject("message", "saveIntoDB. name="+name);
return view;
}
//A
@RequestMapping(value="/saveObject.do", method=RequestMethod.POST)
public ModelAndView saveObject(@ModelAttribute("user")User user){

ModelAndView view = new ModelAndView("helloWord");
view.addObject("message", "saveObject. name1="+user.getName());
return view;
}
//B
@RequestMapping(value="/saveObject.do", method=RequestMethod.POST)
public ModelAndView saveObject(@ModelAttribute("user1")User user2){

ModelAndView view = new ModelAndView("helloWord");
view.addObject("message", "saveObject. name1="+user2.getName());
return view;
}
//C
@RequestMapping(value="/saveObject.do", method=RequestMethod.POST)
public ModelAndView saveObject(@ModelAttribute User user){

ModelAndView view = new ModelAndView("helloWord");
view.addObject("message", "saveObject. name1="+user.getName());
return view;
}

public String doCreate(@Valid @ModelAttribute("appForm") CreateAppForm appForm,
BindingResult result, ...) {
...
}

参考:
@RequestParam:只针对单个参数。
@ModelAttribute:适用于对象赋值。@ModelAttribute("user1")里面的字符串好像没什么要求?user2就是一个pojo,属性跟form里面控件的name对应。
A,B,C处都不会影响user的属性值,搞不明白,知道的可以告诉我,谢谢。
@ModelAttribute 声明在属性上,表示该属性的value 来源于model 里"queryBean" ,并被保存到model 里@ModelAttribute 声明在方法上,表示该方法的返回值被保存到model里。
其中的@ModelAttribute和BindingResult 中间不能有其它参数,否则会出现如下错误:
Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值