在spring mvc 3.0中提交多个表单

时间:2013-07-25 07:51:57

标签: spring jsp spring-mvc

我希望在注册表单(如预览页面)中显示用户输入的数据以确认输入数据的正确性,如果他们接受,那么该数据应该进入数据库。

这是我的控制器代码:

@RequestMapping( value="/catalogue/FormPreview.action", method=RequestMethod.POST)
public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,CatalogueBase catalogueBase) throws Exception {

        if(catalogueBase.getTitleNumber()!= null)
        {
            request.setAttribute("titleNo", catalogueBase.getTitleNumber());
            request.setAttribute("title", catalogueBase.getTitle());
            request.setAttribute("name", catalogueBase.getName());
            request.setAttribute("address", catalogueBase.getAddress());
            request.setAttribute("email", catalogueBase.getEmail());

                     .....

            return new ModelAndView("catalogue/catalogueFormPreview","catalogueBase",catalogueBase);
        }
        else
        {
            return create(catalogueBase);
        }
    }

    @RequestMapping( value="/catalogue/create.action", method=RequestMethod.POST)
        public ModelAndView create(@ModelAttribute CatalogueBase catalogueForm) throws Exception {  
            ModelAndView mvc = null;

            try{

                List<CatalogueBase> catalogueBases =  new ArrayList<CatalogueBase>(); //getCatalogueBase(request);
                catalogueBases.add(catalogueForm);
                List<CatalogueBase> catalogueBaseList = catalogueService.create(catalogueBases);
                mvc =   new ModelAndView("catalogue/catalogueList");

            } catch (Exception e) {
                e.printStackTrace();
            }
            return mvc;
        }

我将预览页面显示为使用EL的jsp:

    Title NO : ${titleNo}
    Title : ${title}
    ......
    ......

   <a onclick="doAjaxPost();">Confirm Data<span class="icon icon44"></a>

在jsp的head部分我称之为ajax:

<script>
function doAjaxPost() {
    var name = $('#name').val();
    var education = $('#education').val();
    var str = $("#form").serialize();

    $.ajax({
        type: "POST",
        url: "../catalogue/create.action",
        data: str,
        success: function(response){
         alert("Record Added Successfully");
         },
         error: function(e){
             alert('Error: ' + e);
         }
    });
};

它在预览页面上显示数据,但在点击确认数据后,(预览页面中的超链接) 它将空值发送到create方法(第二种方法)请任何人都可以告诉它为什么发送空值以及我如何解决这个问题

感谢。

1 个答案:

答案 0 :(得分:0)

在预览页面中,您只显示文本,您需要在预览页面中将数据保存为隐藏(或通过任何其他方式,例如,如果存在大量条目,则保存在会话中等)。因此,当您在确认后提交时,您可以阅读所有参数。