Spring失去了GET和POST之间的模型属性

时间:2014-07-13 05:50:48

标签: java spring jsp

get方法将准备模型并发送给"添加人员" JSP
它还将设置"模式"属性为"添加" (所以添加和编辑可以共享相同的jsp)
当processSubmit结果hasErrors时,mode属性消失
如何在呼叫之间维护模式属性?

@RequestMapping(value="/people/def/add" , method = RequestMethod.GET)
public String personAdd(@ModelAttribute("person") Person person,Model map) {        
    map.addAttribute("mode", "add");
    //DO SOME LOGIC
    return "personAdd";
}

@RequestMapping(value="/people/def/add" , method = RequestMethod.POST)
public String processSubmit(@ModelAttribute("person") Person person,BindingResult result) { 
    personValidator.validate(person, result);
    if (result.hasErrors()) {
        //MODE ATTRIBUTE IS LOST
        return "personAdd";

1 个答案:

答案 0 :(得分:2)

请求属性仅在请求期限内有效。因此,如果您希望在Post中返回“模式”,则可能必须在POST中将其提交回来,可以通过在您的Web表单中使用隐藏的表单控件。

你必须在你的“processSubmit”方法中添加“@RequestParam(”mode“)字符串模式”,以便从HTTP POST参数中检索模式的值