开发者社区 问答 正文

SpringMVC中关于ModelAttribute的问题

方法头部是这样的:

@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中都没有找到,请问怎么做?

展开
收起
a123456678 2016-03-13 16:28:57 3047 分享 版权
1 条回答
写回答
取消 提交回答
  • 首先确定能断点进入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:
    2019-07-17 19:02:51
    赞同 展开评论
问答地址: