utilizando Spring MVC 3.0.0.RELEASE, tengo el siguiente controlador:¿Cómo evito que las variables Spring 3.0 MVC @ModelAttribute aparezcan en la URL?
@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;
}
}
El controlador lee la información de admisión de un objeto de comando poblada de un formulario HTML, valida el objeto de comando, persiste la información a la base de datos y devuelve un número de caso
Todo funciona muy bien, a excepción de cuando vuelvo a dirigir a la página intakeDetails.htm, consigo una URL que tiene este aspecto:
http://localhost:8080/project/intakeDetails.htm?caseNumber=1&users=user1&users=user2&users=user3&users=user4...
¿Cómo evito la Colección de usuario aparezcan en el URL?
Una solución sencilla para esto se ha escrito en los comentarios de la respuesta de axtavt, echar un vistazo en eso si quieres una solución de una sola línea. –
también es cierto para 'Spring 4.x' – Andremoniy