@ModelAttribute
对@RequestParam
中的每个变量使用Pojo class
,@RequestParam
使用request.getParameter()
(我正确吗?)。
但是从Spring MVC Documentation它确定@ModelAttribute
填充请求参数以绑定到参数字段。
但我的问题是如果pojo
类是generic
类,则无法获取参数, 为什么 < /强>
Object
,而不是传递参数类型(Pojo)。Generics
?Wrapper
类比它能正常工作,因为它可以确定param类型(即Pojo类)。要检查的示例代码:
控制器
@RequestMapping(value = "/generic", method = RequestMethod.GET)
public String generic(@ModelAttribute Generic<ParamClass> generic) {
return null;
}
@RequestMapping(value = "/wrapper", method = RequestMethod.GET)
public String wrapper(@ModelAttribute WrapperClass wrpr) { //wrpr contains value
return null;
}
包装类
public class WrapperClass {
private ParamClass paramList;
//getter & setter
}
通用课程
public class Generic<T> {
private T paramList;
//getter & setter
}
Pojo Class
public class ParamClass {
private String param;
// getter & setter
}
Jsp表格
<form action="/wrapper">
<table>
<tr>
<td><input type="text" name="paramList.param" /></td>
</tr>
</table>
<input type="submit" value="Submit">
</form>
还有一个问题是,每种类型都需要Wrapper
类吗?有没有更好的解决方案(除了在一个类中包含所有param类型变量)?