Spring mvc 从jsp传递参数到后台控制器中,传递的参数如何封装成一个对象
jsp部分:就是一个form表单,表单参数有name,createDate,Description这三个参数pojo部分:一个实体类client中有这三个属性contro...
jsp部分 : 就是一个form表单,表单参数有 name , createDate, Description 这三个参数
pojo 部分: 一个实体类client 中有这三个属性
controller部分代码:
@RequestMapping("clientAdd")
public String clientAdd(Client client){
System.out.println(client.getName()+"=============000");
return "redirect:../../api/go/login";
}
问题: 为什么 打印出来的名字为空,也是说没有把直set到client中 ,错误在那里,因该怎样解决 ,请给位大神棒棒忙 ,着急中 展开
pojo 部分: 一个实体类client 中有这三个属性
controller部分代码:
@RequestMapping("clientAdd")
public String clientAdd(Client client){
System.out.println(client.getName()+"=============000");
return "redirect:../../api/go/login";
}
问题: 为什么 打印出来的名字为空,也是说没有把直set到client中 ,错误在那里,因该怎样解决 ,请给位大神棒棒忙 ,着急中 展开
3个回答
展开全部
表单中的name名称改为client.name
更多追问追答
追问
试过了 ,还是没有数据进去 ,
追答
楼上说的是对的,需要一个中间层来交互,其中一种实现方式(放父类里),自己显式调用绑定
/**
* Spring MVC
*
* @return
* @see #preBind(HttpServletRequest,Object,ServletRequestDataBinder)
*/
protected BindingResult bindObject(HttpServletRequest request,
Object command) throws Exception {
ServletRequestDataBinder binder = createBinder(request, command);
preBind(request, command, binder);
binder.bind(request);
Validator[] validators = getValidators();
if (validators != null) {
for (Validator validator : validators) {
if (validator.supports(command.getClass())) {
ValidationUtils.invokeValidator(validator, command, binder
.getBindingResult());
}
}
}
return binder.getBindingResult();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接接受这三个参数在赋值给你的pojo也行!
追问
直接复直是可以的 ,但是如果参数表多,这样感觉代码不简练
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询