1

ユーザーの入力データを登録フォーム(プレビューページなど)に表示して、入力データの正確性を確認し、受け入れた場合、そのデータはデータベースに移動する必要があります。

ここに私のコントローラコードがあります:

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

プレビューページにデータが表示されていますが、データの確認をクリックした後(プレビューページのハイパーリンク)、作成メソッドにnull値を送信します(2番目の方法)nullを送信する理由とこれを解決する方法を教えてください

ありがとう。

4

1 に答える 1

0

プレビュー ページでは、テキストのみを表示します。プレビュー ページでもデータを非表示にする必要があります (または、多くのエントリがある場合はセッションに保存するなどの他の方法で)。確認後に送信すると、すべてのパラメータを読み取ることができます。

于 2013-07-25T08:14:26.507 に答える