Spring MVC预览实现
我有以下任务:使用Spring MVC实现“预览”功能。 知道实现它的最佳方式将是一件好事:
这是直接的任务1.填充新的表单并将该表单保存在数据库中:为了在jsp页面上做到这一点,我们有一个弹簧形式,我们将其从控制器传递并保存。 2.编辑一些表单数据:所以,为了做到这一点,我们将对象ID传递给控制器,控制器从DB读取所需数据 - >用户有可能编辑该数据并再次保存在数据库中。
但它看起来没有实现“预览”功能的直接机制。
例如:我们有一个表单,用户可以向表单添加必要的值,然后我们应该显示这个数据(该用户添加的)在单独的屏幕上的样子(我们执行一些数据操作,并显示这些数据的方式看起来像不同的工具)。
在代码中我们有以下情况:
在控制器中,为了渲染预览,我们传递了我们的模型:
@RequestMapping(value =“/ preview”,method = RequestMethod.POST)public String preview(@ModelAttribute(“form”)SomeForm form){return“preview”; }
并在preview.jsp上我们有可能以适当的方式呈现它:
<div class="preview">
<div id="1">${form.field1}</div>
<div id="2">${form.field2}</div>
</div>
在这个jsp页面上,我们没有表单。 为了回到编辑页面,我们需要传递一个表单对象,因为我们的控制器需要它:
@RequestMapping(value = "/admin/save", method = RequestMethod.POST)
public String save(@ModelAttribute("form") SomeForm form ){
主要问题将此表单传回原始jsp页面。
添加其他方法来设置预览
...
@RequestMapping(value = "/admin/preview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("form") SomeForm form ){
model = new ModelAndView();
model.addObject("form", form);
model.setViewName("jspPath")
return model;
}
@RequestMapping(value = "/admin/save", method = RequestMethod.POST)
public String save(@ModelAttribute("form") SomeForm form ){
...
}
在jsp中,您必须使用新参数重新填写表单,或者使用javascript ;-)
在显示提交值的预览页面中,添加一个表单并在hidden inputs
添加所有表单属性。 预览页面上的submit
应该采取save
方法而不是preview
来保存到数据库。