Spring模型属性在请求中变为null

时间:2015-04-22 19:38:17

标签: java spring spring-mvc

我的页面顶部有分页链接。 当我点击页面时,我从记录1-50,51-100等开始。 当我单击第二个动作时遇到问题,就像我点击第2页时@ModelAttribute值变为空。

这是页面网址:http://localhost:8080/tax/taxedYear.html?p=2

我需要使用/taxedYear.html弹出控制器类,方法如下:

@RequestMapping(value = "/taxedYear.html", method = RequestMethod.GET)    
public ModelAndView showTaxResults(@ModelAttribute("criteria")
    Criteria criteria, Model model, HttpSession session, HttpServletRequest request) { 

    String src = criteria.getSource();
    System.out.println("src === "+src);
    //....
    //
    }

当它被调用时,条件中的任何内容都为null。从上一页调用相同的方法,它工作正常。 只有当我点击页面网址时才会发生这种情况,网页网址也会在控制器中调用相同的方法并另外发送页面#。

1 个答案:

答案 0 :(得分:1)

来自Spring reference:

  

方法参数上的@ModelAttribute指示应从模型中检索参数。如果模型中不存在,则应首先实例化参数,然后将其添加到模型中。

模型由控制器填充。您假设在进行第二次调用时模型保持不变,但显然您的假设是错误的。因为Spring初始化了模型,我相信你认为它是持久的。这是合理的方式,模型不应该在HTTP调用中持久化。