java - 如何防止 Spring 3.0 MVC @ModelAttribute 变量出现在 URL 中?

标签 java spring spring-mvc

使用 Spring MVC 3.0.0.RELEASE,我有以下 Controller :

@Controller
@RequestMapping("/addIntake.htm")
public class AddIntakeController{

  private final Collection<String> users;

  public AddIntakeController(){
    users = new ArrayList<String>();
    users.add("user1");
    users.add("user2");
    // ...
    users.add("userN");
  }

  @ModelAttribute("users")
  public Collection<String> getUsers(){
    return this.users;
  }

  @RequestMapping(method=RequestMethod.GET)
  public String setupForm(ModelMap model){

    // Set up command object
    Intake intake = new Intake();
    intake.setIntakeDate(new Date());
    model.addAttribute("intake", intake);

    return "addIntake";
  }

  @RequestMapping(method=RequestMethod.POST)
  public String addIntake(@ModelAttribute("intake")Intake intake, BindingResult result){

    // Validate Intake command object and persist to database
    // ...

    String caseNumber = assignIntakeACaseNumber();

    return "redirect:intakeDetails.htm?caseNumber=" + caseNumber;

  }

}

Controller 从由 HTML 表单填充的命令对象中读取 Intake 信息,验证命令对象,将信息保存到数据库中,并返回一个案例编号。

一切都很好,除了当我重定向到入口详细信息.htm 页面时,我得到一个如下所示的 URL:

http://localhost:8080/project/intakeDetails.htm?caseNumber=1&users=user1&users=user2&users=user3&users=user4...

如何防止用户集合出现在 URL 中?

最佳答案

model.asMap().clear();
return "redirect:" + news.getUrl();

:)

关于java - 如何防止 Spring 3.0 MVC @ModelAttribute 变量出现在 URL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163517/

相关文章:

java - @JsonView 不过滤属性(Spring 4.1.0.RC2,Jackson 2.3.2)

java - 幂函数指数 JOptionPane java

java - 使用 NIO 写入文件时缺少新行

java - 检查 NullPointerException 或 ArrayOutOfBound 异常 Java 的解决方案

java - 在 Java 中将数据从 HashSet 移动到 ArrayList

java - 智能 : view property values in code

spring - 使用 camel http4 的系统属性代理设置

java - Spring Insight 崩溃并出现 "Imbalanced frame stack"

java - 请求方法 'GET' 不受支持,但它实际上存在于 Controller 中

java - Spring Security询问身份验证问题