方法头部是这样的:
@RequestMapping(params="id", method = RequestMethod.PUT, produces = "text/html")
public String update( @Valid BaseJob job, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest ,@RequestParam("id")JobKey key)
springMVC中把请求的数据都自动填充到表单对象(BaseJob)中的,现在因为页面传过来的数据是不同的(BaseJob子类) 我想自己一个一个数据的取出,创建不同的POJO,但request和uiModel中都没有找到,请问怎么做?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
首先确定能断点进入update方法中。
Enumeration e = request.getParameterNames();
while (e.hasMoreElements())
{
Object object = (Object) e.nextElement();
System.out.println(object);
}
关掉后获取不到,就像上面说的,request里面没有东西,session里面也没有,
现在代码是这样的
@RequestMapping(params="id", method = RequestMethod.PUT, produces = "text/html")
public String update(Model uiModel, HttpServletRequest httpServletRequest
,@RequestParam("id")JobKey key) throws SchedulerException {
Enumeration<?> em = httpServletRequest.getAttributeNames();
System.out.print("httpServletRequest: ");
if(em.hasMoreElements()){
System.out.println(em.nextElement());
}
Enumeration<?> session = httpServletRequest.getSession().getAttributeNames();
System.out.print("httpServletSession: ");
if(session.hasMoreElements()){
System.out.println(session.nextElement());
}
System.out.print("uiModel: ");
Set<String> map = uiModel.asMap().keySet();
for (String string : map) {
Object o = uiModel.asMap().get(string);
System.out.println(o);
}
结果是:
httpServletRequest: CharacterEncodingFilter.FILTERED
httpServletSession:
uiModel: