我尝试的是将一个简单的布尔值写入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方法填充此输入字段。
答案 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;
}