如何使用POST方法从Controller写入<input type =“hidden”/>

时间:2014-11-14 12:22:28

标签: javascript spring-mvc

我尝试的是将一个简单的布尔值写入jsp中隐藏字段的值:

控制器:

@RequestMapping(value = "/createResource", method = RequestMethod.POST)
public String createCategory(@RequestParam("parentCategory") String parentCategory,                     
                             @ModelAttribute("SmartResources") Category category, ModelMap model, HttpSession session)
{
    model.addAttribute("resourceProperties", CategoryPropertyService.getInstance().getAllPropertiesById(Integer.parseInt(parentCategory))); 

    model.addAttribute("test", Boolean.TRUE);

    return "redirect:" + GlobalConstants.Dialog.DIALOG_BLANK;
}

JSP:

<input type="hidden" id="showPopUp" name="showPopUp" value="${test}" />     

当我用JQuery读取隐藏输入的值时,它总是为空:

脚本:

var popUpControl = $("#showPopUp").val();
var modal = $.UIkit.modal("#newResource");
if (popUpControl == true) {
    modal.show();   
}

当我在同一个控制器的GET方法中执行相同操作时,输入字段将被填充。

请帮帮我。必须有一种方法从post方法填充此输入字段。

1 个答案:

答案 0 :(得分:1)

如果您希望模型中的属性在重定向中保持不变,那么您必须使用Model接口的专门化,RedirectAttributes

@RequestMapping(value = "/createResource", method = RequestMethod.POST)
public String createCategory(@RequestParam("parentCategory") String parentCategory,                     
                             @ModelAttribute("SmartResources") Category category, ModelMap model, RedirectAttributes redirectAttrs, HttpSession session)
{
    redirectAttrs.addFlashAttribute("resourceProperties", CategoryPropertyService.getInstance().getAllPropertiesById(Integer.parseInt(parentCategory))); 

    redirectAttrs.addFlashAttribute("test", Boolean.TRUE);

    return "redirect:" + GlobalConstants.Dialog.DIALOG_BLANK;
}