Spring MVC预览实现

时间:2013-11-27 13:33:21

标签: java spring jsp spring-mvc

我有以下任务:使用Spring MVC实现“预览”功能。 了解实施它的最佳方法将是很好的:

这是一项直截了当的任务 1.填充新表单并将此表单保存在DB中: 为了在jsp页面上执行此操作,我们有一个弹簧形式,我们将其传递给控制器​​并保存。 2.编辑一些表单数据: 因此,为了做到这一点,我们将对象id传递给控制器​​,控制器从DB读取必要的数据 - >用户可以编辑它并再次保存在数据库中。

但看起来没有直接的机制来实现“预览”功能。

例如:我们有一个表单,用户可以在表单中添加必要的值,然后我们应该在单独的屏幕上显示这些数据(用户添加的)的样子(我们执行一些数据操作和diplaying如何这些数据看起来与不同的工具相似。)

在代码中我们有以下情况:

  1. 在控制器中为了渲染预览,我们传递了我们的模型:

    @RequestMapping(value =“/ preview”,method = RequestMethod.POST)     public String preview(@ModelAttribute(“form”)SomeForm form){         返回“预览”;     }


  2. 在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页面。

2 个答案:

答案 0 :(得分:1)

添加其他方法来设置预览

...
@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; - )

答案 1 :(得分:0)

在w预览页面中显示提交的值,添加表单并在hidden inputs中添加所有表单属性。预览页面上的submit应采用save方法而不是preview来保存到数据库。