首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

DWR 調用帶參數 Java 方法失敗:JS 調用缺少括號 onclick="callTest()"

     編輯:程式設計綜合問答

問題代碼

<input type="button" value="提交" onclick="javascript:callTest">

點擊按鈕無反應,Java 方法未被調用。

原因

onclick="javascript:callTest" 中 callTest 是**函數引用**,而非**函數調用**。瀏覽器不會執行函數體,只會評估表達式並丟棄結果。

修正

<input type="button" value="提交" onclick="callTest()">

<input type="button" value="提交" onclick="javascript:callTest()">

**必須加括號 () 觸發調用**。

補充:DWR 配置檢查清單

項目正確示例常見錯誤
dwr.xml <create>javascript="TestUtil" (JS 對象名)類名/方法名拼寫錯、<include method="*"> 未包含目標方法
Java 類public class TestUtil { public String test(String p) { return p; } }方法非 public、參數類型不匹配、拋出未檢查異常
JS 調用TestUtil.test("abc", callback);回調函數簽名錯誤 function callback(data)
web.xml<servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class></servlet>映射路徑 /dwr/* 與 JS 引入 /dwr/engine.js 不一致

調試技巧

  1. 瀏覽器訪問 https://host:port/app/dwr/index.html 查看 DWR 自動生成的 JS 接口文檔,確認方法暴露正常。
  2. F12 Network 面板觀察 /dwr/call/plaincall/TestUtil.test.dwr 請求/響應。
  3. Java 端加斷點確認方法進入。

一個括號之差,導致整條調用鏈斷裂。**JS 事件屬性中調用函數必須加 ()**,這是前端入門必記語法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved