(JimStoneAjax交流羣:366984517) java
在使用JimStoneAjax時,一些特殊場合下若是是經過參數名稱的方式訪問服務器命令,可能會失敗。 ajax
若是是使用 Spring MVC 的朋友,可能遇到過這樣的問題,線上環境中若是你的 Controller 方法中參數使用了 @RequestParam,有些參數咱們不須要這個參數因此不加 @RequestParam 那麼可能線上環境沒法編譯或者沒法訪問到這個請求。實際上和這個是同一個狀況,就是 spring 沒法獲取到參數名稱,致使注入失敗。 spring
主要緣由是服務器編譯class文件時沒有生成參數名稱信息,因此沒法動態獲取到,JimStoneAjax會自動經過參數位置設置參數名爲 arg0,arg1....argN。咱們從 Eclipse 中常常看到一些類提示信息參數名稱就是這種名稱的,通常都是由於編譯時沒有代入參數名稱信息因此沒法獲取到真實名稱。 服務器
你們在使用 JimStoneAjax 過程主要用到的標籤其實就一個,就是 <ajax:script>。 eclipse
這個編譯問題主要會影響到 <ajax:load> 方法,咱們知道,ajax:load 方法是經過參數名稱傳遞參數值的。 ui
解決辦法主要兩種: spa
建議使用第二種方法。
debug
第一種是參數名稱按照順序,直接使用 arg0, arg1 等。可是這種方法有個問題,就是須要調節 eclipse 中的項目配置。咱們的 eclipse 在項目屬性中的 Java compiler 編譯選項下的 Add variable attributes to generated class files 選項默認是選中的,因此開發環境一般是正常的,線上環境和開發環境的參數名稱可能不一致。 code
第二種方法是修改編譯參數,這種方法最爲可靠。 xml
使用 javac 指令編譯的話能夠加入 -d 參數。
使用 Ant 編譯項目時能夠給 javac 編譯選項加入debug="true" debuglevel="lines,vars,source" 兩個參數便可。
<javac srcdir="${src.java.dir}" destdir="${build.dir}" encoding="UTF-8" debug="true" debuglevel="lines,vars,source"> <classpath refid="lib.path"></classpath> </javac>