(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>