2017-05-18 8 views
0

次のコードスニペットには、isRowInDueCauseTableメソッドがあります(別のクラスでは正しく動作します)。しかし、それをJSPファイルで使用すると、それに応じて常にisRowInDB変数が変更されるはずです。しかし、それは常に真実なので、isRowExistsメソッドは常にパラメーターとしてtrueを取得します。それは初回のみ実行されますように思えるず、二度とJSPファイルメソッドは、初回実行後に呼び出されないようです。

if (sAction == "newRow") { 
      <% 
      tblMgrHome = (TableManagerHome)pageEnv.get("ejb/TableManager"); 
      tblMgr = tblMgrHome.create(); 
      boolean isRowInDB = tblMgr.isRowInDueCauseTable(
       request.getParameter("REASON"), 
       request.getParameter("TASK"), 
       request.getParameter("RESULT"), 
       request.getParameter("RESULT_CAUSE") 
       ); 
       %> 
      console.log("HERE IS THE BOOLEAN: " + <%=isRowInDB%>); 
      isRowExists(<%=isRowInDB%>); 
      setMenuClick(false); 
     } 

を評価し、アプリケーションの作業の一部ので、私は、それはまた、偽をお返しできることを確信しています。何が問題なの?

+0

どうしたのですか?このコードは、ページが最初に読み込まれたときに評価されるので、最初に呼び出されるだけです。あなたのJavaコードがその値を変更した場合、ページに動的に反映されることはありません – quirimmo

+0

ボタンをクリックするたびに評価されるようにします。このスニペットを含むjavascriptメソッドが呼び出されます。 – dmbdnr

+0

JSPを使用しませんが、私のメモリからJSPが実行されると、ページが読み込まれ、それ以上は実行されません。より簡単な例を実行して、そのメソッド内でJavaによってインクリメントされたカウンタを1つだけ入れてみてください。次に、その値をコンソールログに記録します。カウンターの進行状況を確認できますか?あなたはいつも始値を見ていますか? – quirimmo

答えて

0

これはjspコードです。これは、ブラウザに表示されるHTMLを作成する際に一度だけ評価されます。このisRowInDueCauseTableのapiを作成し、ajaxを使用してブラウザから何度も確認してください。

関連する問題