0

プレーンな HTML に多くの送信ボタンがあります。機能していないものは以下のとおりです:-他のものは以下と同じです

< form:submit cssClass="action-button" name="excelBTNX" value="Excel" id="excelBTNX" />

コントローラーの上記のボタンの機能は、Excel シートを作成してセッションに入れ (Cookie からダウンロードできます)、戻ることです。

Controller での対応するメソッドの定義は、正常に動作している他のボタンと同じです。

これの問題は、偶数ヒットでのみ機能することです。初めてクリックすると、ページが更新されます。もう一度クリックすると、コントロールがコントローラーに渡され、Excel が Cookie として表示されます。

javaScriptコードを使用して、送信が機能しているかどうかを追跡しようとしました

     $('フォーム').submit(関数(){
     alert("発生するイベント");
});

両方のケースでアラートを出します。

コントローラーからの検証部分を(手動で)行ったので、ローカルの組み込みバリデーターは使用されません。ですから、そうではないと思います。

どうすれば修正できますか?

コントローラーコード:-

 @RequestMapping(value = "execute.action", method = RequestMethod.POST, params = "excelBTNX")
public String excelOut(HttpServletRequest request, HttpServletResponse response,
        @ModelAttribute("mymodel") myModel model, BindingResult bindingResult, ModelMap modelmap) {

    scr14(request).initializeSomeCalculation(model);// some innercalss called to manupulate model
    HttpSession session = request.getSession(false);

    if(1=1){//CRUD condition here true in READ mode.
        model= new myModel ();
    }


    byte[] excel = createExcelS14(model,request);
    String fileName = getExcelName() + ".xls";
    String filepath = myFrameWorkUtils.createTempFile(excel, fileName);
    if (session != null) {
        session.setAttribute(fileDownload, filepath);
    }
  scr14(request).initializeSomeCalculation(model);
    model.setDate(somedate);
    return "myPanel";}

4

1 に答える 1

0

以下にいくつかの手順を示します。

  • この問題が Excel の処理に関連しているかどうか、または Controller に問題があるかどうかを確認してください。私はあなたが次のようなものを持っていると仮定します
@RequestMapping(..., params = "excelBTNX")
public ModelAndView next(...) 
{ <EXCEL FUNCTIONALITY> }

Controller の をコメントアウトして、毎回メソッドが呼び出されることを確認します。これをテストして、これが機能しているかどうかをお知らせください

  • コントローラーが 2 回目のクリックでのみ呼び出されると思わせる原因は何ですか? おそらく、あなたが見ている兆候は、コントローラーが 2 回目のクリックごとにしか呼び出されないということを実際には意味していません。説明してください

  • コードを修正しif (1=1)ます。=Java では は代入演算子、==は比較演算子です。私はあなたが比較をしたいと思います。コードのこの部分を単純化したようにも見えますが、実際には問題である可能性があります。実際のコードをここに投稿してください

  • ここでは、Cookie については何も表示されません。一時的な Excel ファイルを作成し、セッションでファイルの名前を設定しているように見えます。

session.setAttribute(fileDownload, filepath)セッション属性マップのキーが文字列型であるため、機能しません。それはおそらくあるはずsession.setAttribute("fileDownload", filepath)です。

  • クリックするたびに新しい一時 Excel ファイルが生成されるかどうかわかりますか? タイムスタンプでわかるはずです。

これはまだ問題を指摘していないかもしれませんが、確実に近づくでしょう。

于 2013-01-03T04:28:12.517 に答える