【发布时间】:2014-04-02 18:01:36
【问题描述】:
在 Spring Controller 方法中,我想从 jsp 文件中发布的内容中丰富模型元素。
这里是代码功能的开始。 每次输入函数时,模型都是无效的。有什么提示吗?
@RequestMapping(value = Uris.IMPORTADDRBOOK)
public String mainImportController(HttpServletRequest request, HttpServletResponse response, Model model,
@RequestParam(value = "chosenSP", required = false) String bookToImportName,
@RequestParam(value = "catMode", required = false) String catMode,
@RequestParam(value = "transition", required = false) ImportControllerTransitions transition) {
logger.debug(String.format("controller import. Etat entrée : %s, transition demandée : %s, chosen SP : %s, catmode : %s",
model.asMap().get("importState"), transition, bookToImportName, catMode));
logger.debug(String.format("Modele Entree Import Controller:"));
for (String attribute : model.asMap().keySet())
logger.debug(String.format("%s : %s", attribute, model.asMap().get(attribute)));
if (!model.containsAttribute("importState"))
model.addAttribute("importState", ImportControllerState.INITIAL);
switch ((ImportControllerState) model.asMap().get("importState")) {
case INITIAL:
if (transition == ImportControllerTransitions.CONNECTORCHOICE) {
model.addAttribute("importState", ImportControllerState.CONNECTOR);
if (bookToImportName != null)
model.addAttribute("chosenSP", DynAddrBookTypes.valueOf(bookToImportName));
}
break;
default:
break;
}
logger.debug(String.format("Modele sortie Import Controller:"));
for (String attribute : model.asMap().keySet())
logger.debug(String.format("%s : %s", attribute, model.asMap().get(attribute)));
return Uris.IMPORTADDRBOOK;
}
JSP 可以正确读取模型属性,但是当我回到控制器时,模型又是空的... 提前致谢,
【问题讨论】:
-
回到控制器是什么意思?
-
在 JSP 中,有几个表单都向同一个 URL 进行 POST,该 URL 是“@requestmapped”到控制器函数,生成对同一个控制器函数的连续调用。
-
你的意思是你需要session attributes的行为吗?
-
根据 Bart 的评论并查看 stackoverflow.com/questions/5834558/… 说 MVC Spring 是无状态的,我想如果我不能将我需要的内容作为会话属性保存在会话中,我的东西就无法工作。 ..
-
巴特,我绝对需要会话属性。感谢您的帮助。
标签: spring-mvc