在我的Spring MVC应用程序中,我有2页 我有一个包含10个变量的对象。 在第一页中,我设置了上述对象的9个变量(第一页有9个字段)。 我在session中设置了这个对象以及控制器中的model属性。 我还需要将同一个对象传递给下一页。 在第二页中,我需要在同一个对象中设置第10个变量(第二个页面只有一个字段的第10个字段)。 (为什么我需要第二页来设置第10个变量是 - 在第二页中,我根据第一页中的条目填充下拉列表)
当我在第二页中提交表单时 - 我需要使用10个变量提交相同的对象。 (由于我的公司政策,我无法粘贴代码) 任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
请注意,两种方法都在同一个控制器中。你需要做这样的事情:
@Controller
@SessionAttributes("myObject")
public class SessionAttributesController {
// Save session attribute in model.
@RequestMapping(value = "/page1.html", method = RequestMethod.GET)
public String page1( @ModelAttribute MyClass myObject, ModelMap model ) {
model.addtAttribute("myObject", myObject);
return "page1.html";
}
// Now you model is having myObject, so it has to be used in jsp. You can add ModelMap parameter to this method and check what contains model in debug mode.
@RequestMapping(value = "/page2.html", method = RequestMethod.GET)
public String page(ModelMap model) {
model.get("myObject").setAttr10(value);
return "page2.html";
}
}
答案 1 :(得分:0)
这可以通过这种方式完成:
@Controller
public class PageController {
@RequestMapping("/page1")
public String showPage1(Model model) {
Obj obj = new Obj();
model.addAttribute("obj", obj);
return "test/page1";
}
@RequestMapping("/page2")
public String showPage2(@ModelAttribute Obj obj, Model model) {
model.addAttribute("obj", obj);
return "test/page2";
}
@RequestMapping("/page3")
public String showPage3(@ModelAttribute Obj obj, Model model) {
model.addAttribute("obj", obj);
return "test/page3";
}
}
第1页(仅限相关部分):
<sf:form modelAttribute="obj" action="page2">
<sf:input path="field1"/><br/>
<sf:input path="field2"/><br/>
<sf:input path="field3"/><br/>
<input type="submit" value="To page 2">
</sf:form>
第2页:
<sf:form modelAttribute="obj" action="page3">
<sf:hidden path="field1"/>
<sf:hidden path="field2"/>
<sf:hidden path="field3"/>
<sf:input path="field4"/><br/>
<sf:input path="field5"/><br/>
<input type="submit" value="To page 3">
</sf:form>
第3页仅用于显示在前2页上输入的所有对象字段。
答案 2 :(得分:0)
如果您认为自己拥有这些向导类型屏幕,则应考虑使用spring-webflow。 Spring-Webflow的DSL将帮助您管理更复杂的场景。
您可以从here获得有关Spring-Webflow的基本介绍。
答案 3 :(得分:0)
如果您考虑过所有其他选项(我的意思是模型属性等), 我建议使用Spring-Web-Flow来执行此操作(如果您正在讨论的两个页面相关),这样您就可以确保将数据从一个页面传输到另一个页面。
价: http://docs.spring.io/spring-webflow/docs/1.0.3/reference/practical.html
希望这有效。
此致 Ashok Gudise