java - Spring 模型属性在请求中获取 null

标签 java spring spring-mvc

我有一个页面,顶部有分页链接。 当我单击页面时,它会从记录 1-50、51-100 等中跳转。 当我单击第二个操作(例如单击第 2 页 @ModelAttribute 值获取 null 时)时,我遇到问题。

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

它带我到带有/taxedYear.html的spring Controller 类,方法如下:

@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);
    //....
    //
    }

当调用它时,条件中的任何内容都是空的。从上一页调用相同的方法并且工作正常。 仅当我单击页面网址时才会发生这种情况,该网址也会在 Controller 中调用相同的方法并另外发送页面#。

最佳答案

来自Spring reference:

An @ModelAttribute on a method argument indicates the argument should be retrieved from the model. If not present in the model, the argument should be instantiated first and then added to the model.

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

关于java - Spring 模型属性在请求中获取 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29807257/

相关文章:

java - 我们可以在onPostExecute()中执行AsyncTask吗?

spring - 事务在junit中不起作用?

spring - 如何在 Spring Boot 配置中显式传递数据库名称?

java - Spring Form 一对多绑定(bind)对象

css - Spring MVC 4 + Thymeleaf : static resources 404 error

java - LibGDX Big FreeType MipMapped 字体看起来像素化

java - 使用 nginx 服务器作为 glassfish 服务器的代理来加载静态内容

spring - Spring Rest响应中的异常的Stacktrace

java - @JsonSerialize/@JsonDeserialize 未使用 Spring MVC 调用

java - ResultSet.getFloat 返回 0 而不是 NULL