【发布时间】:2013-12-13 04:18:38
【问题描述】:
我有以下任务:使用 Spring MVC 实现“预览”功能。 最好知道实现它的最佳方式:
这是一项直截了当的任务 1. 填充新表格并将此表格保存在数据库中: 为了在 jsp 页面上执行此操作,我们有一个 spring 表单,我们将其传递给控制器并从中保存。 2.编辑一些表单数据: 因此,为了做到这一点,我们将对象 id 传递给控制器,控制器从 DB 中读取必要的数据 -> 用户可以对其进行编辑并再次保存在 DB 中。
但似乎没有直接的机制来实现“预览”功能。
例如:我们有一个表单,用户可以向表单添加必要的值,然后我们应该在单独的屏幕上显示这些数据(用户添加)的样子(我们执行一些数据操作并显示如何这个数据看起来像不同的工具)。
在代码中我们有以下情况:
-
在控制器中为了渲染预览,我们传递了我们的模型:
@RequestMapping(value="/preview", method = RequestMethod.POST) public String preview(@ModelAttribute("form") SomeForm form){ 返回“预览”; }
在 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页面。
【问题讨论】:
-
在预览页面的表单的隐藏输入中添加表单属性应该可以工作。
-
但是当表单包含大量字段时,我们在jsp页面中会有很多不必要的数据。
标签: java spring jsp spring-mvc