En utilisant Spring MVC 3.0.0.RELEASE, j'ai le contrôleur suivant :
@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;
}
}
Le contrôleur lit les informations d'admission à partir d'un objet de commande rempli à partir d'un formulaire HTML, valide l'objet de commande, fait persister les informations dans la base de données et renvoie un numéro de cas.
Tout fonctionne parfaitement, sauf que lorsque je redirige vers la page intakeDetails.htm, j'obtiens une URL qui ressemble à ceci :
http://localhost:8080/project/intakeDetails.htm?caseNumber=1&users=user1&users=user2&users=user3&users=user4...
Comment empêcher la collection de l'utilisateur d'apparaître dans l'URL ?