2017-01-14 6 views
0

このコードは、submitForm(){}という意味で、ユーザーが保存ボタンをクリックするたびにこの部分をトリガーします。コードがエラーを示していないが、ページのロード時に、それはこのエラーを与える:JSP Javaコード内のajax jqueryプロンプトnullpointer例外

PrintDebug.println("Final SeqNo: "+finalSeqno); %> <%ResultSet rsVal = aDBManager.retrieveRec(sqlgetSeq);%>

<%if(rsVal.next()){ %>

[スタックトレース:]と根本的な原因 java.lang.NullPointerException

私はこのコード部分を削除しようとしましたが、すべてが期待どおりに機能します。select文の結果セットのようにエラーが発生しました。これは実際に私がなぜストアドプロシージャがOKですが、ajax jQueryのselectステートメントではないのですか?これを行うことができない場合、selectステートメントから入力ラベルに値を渡す別の方法がありますか?これは本当に古典的です

callback: function (result) { 
    if(result){ 
     var forTempValue = ""; 
     var forFieldValue = ""; 
     var forMandatory = ""; 
     var forDataImageNoApp = ""; 
     var loopInt = 0; 
     $('input[type=textbox][name^=tmpField],select[name^=tmpField],input[type=text][name^=tmpField]').each(
       function(index){ 
        var input = $(this); 
        forTempValue+=("'" + input.prop('value').replace(/&/g,"") + "' Col" + loopInt + ","); 
        forFieldValue+=("'" + input.prop('value').replace(/&/g,"") + "'" + "±"); 
        loopInt++; 
       } 
     ); 
     $('input[type=hidden][name^=MandatoryName]').each(
       function(index){ 
        var input = $(this); 
        forMandatory+=(input.val() + ","); 
       } 
     ); 
     $('input[type=hidden][name^=tempNoAppLoop]').each(
       function(index){ 
        var input = $(this); 
        forDataImageNoApp+=(input.val() + ","); 
       } 
     ); 
     $.ajax({ 
      type: "POST", 
     url: "../ESSCheckerMakerOperation", 
     data: "sTabID=<%=sTabID%>&sFieldNameApp=<%=sFieldNameApp%>", 
     success: function(msg){ 
      <% 
      String getSeqNo = "SELECT MAX(fldSeqno) FROM "+MappingID+""; 
      String finalSeqno=""; 
      ResultSet rs = aDbManager.retrieveRec(getSeqNo); 
      if(rs.next()){ 
       finalSeqno=rs.getString(1); 
      }rs.close(); 
      String cmd="EXEC sp_RelationshipValidation '"+MappingID+"'," + finalSeqno; 
      aDbManager.SQLTransaction(cmd); 
      String sqlgetSeq= "Select fldCommonErrorFlag " + 
         " From tblGeneralError" + 
         " Where fdSeqNo '" +finalSeqno + "' "+ 
         " And fldTableName = '" +MappingID + "' "; 


     PrintDebug.println("Final SeqNo: "+finalSeqno); 
     %> 
     <%ResultSet rsVal = aDBManager.retrieveRec(sqlgetSeq);%> 

     <%if(rsVal.next()){ %> 

      document.getElementById('lblError').style.visibility = 'visible'; 
      document.getElementById('lblError').innerHTML = <%=finalSeqno%>; 
      Ko 
      <%}else{%> 

      bootbox.alert({ 
       title:"Record is successfully ", 
       message:"There is a problem with the validation for" + <%=finalSeqno%> , 
      }); 
      <% 
      }%> 
     //} 
     }, 
     error: function(msg){ 
      bootbox.alert({ 
       title:"Error", 
       message: "Failed to save the record.", 
      }); 
     } 
     }); 
    }; 
} 
}); 

答えて

0

事前に

感謝..:キーを実現することで、をコードが実行される - サーバー上のJSPは、ページが要求されますの応答がブラウザに送信される前に)とブラウザのJavaScriptがの後にの場合、ブラウザはすでに生成された応答を受信します。

あなたの主な間違いは、AJAX呼び出しのsuccessハンドラでJSPスクリプトレットを使用することです - スクリプトレットは、サーバー側で実行され、をページが生成されたとき、すなわち前にAJAX要求はさらに焼成することができますブラウザによって。したがって、呼び出しによって埋められると予想される変数はnullです。

関連する問題