这是我的代码:
public ModelAndView login(@ModelAttribute("testVO") TestVO testVO){
//test the VO work theory
//testVO = new TestVO();
testVO.setTestStr("this is my test!");
return "index/index";
}
当我使用new为testVO创建一个对象时。 我无法在jsp页面中获取该值。 如果我使用set方法,它可以工作。
所以,我认为: 对象testVo已由IOC容器创建,因此JSP从容器中获取引用,而不是我自己创建的引用。
我是对的吗? 谢谢你提前。
答案 0 :(得分:5)
你猜对了。以下文字来自春季文档:
An @ModelAttribute on a method argument indicates the argument should be
retrieved from the model. If not present in the model, the argument should be
instantiated first and then added to the model.
如果你想自己创建它,你明确需要将它添加到模型中(如下所示),以便可以在你的jsp中使用
public String login(Model model){
TestVO testVO = new TestVO();
testVO.setTestStr("this is my test!");
model.addAttribute("testVO", testVO);
return "index/index";
}
答案 1 :(得分:1)
Man,这是@ModelAttribute注释的最佳解释:
至少阅读两章。这将为您提供理论知识。
您可以在我的博客上找到问题的实用方面:
http://fruzenshtein.com/spring-mvc-form-handling/
我希望它对你有所帮助