js中调用模板取值

<div class="col-sm-4">

<select id="form_bkxx1" class="form-control" name="bkxx1" onchange="dh()">

#for(x:dm)

<option value="#(x.xxdm)">#(x.xxmc)</option>

#end

</select>

</div>

<div >学校咨询电话:<span id="zxdh">

<!-- 这里单独调用没有问题-->

#(dm.get(1).phone)

</span></div>

var myselect=document.getElementById("form_bkxx1");

var index=myselect.selectedIndex ; // selectedIndex代表的是你所选中项的index

function dh(){

index=myselect.selectedIndex ; // selectedIndex代表的是你所选中项的index

alert(#(dm.get(index).phone));

}

我想后台生成select中option,前台咨询电话根据选择的option,相应变化,但是change事件中调用#(dm.get(index).phone)

eclipse控制台报错

com.jfinal.template.TemplateException: public method not found: java.util.ArrayList.get(null)




评论区

JFinal

2020-06-14 20:01

异常提示:
public method not found: java.util.ArrayList.get(null)

get 方法中的参数值为 null,确保这个值不为 null,多试试

SuperEric

2020-06-15 09:36

@JFinal 他这个是明显的把前端Js和后端代码混淆了,两边的运行位置和阶段都不一样,代码中想把js动态取到的index赋值给后端的list去获取,概念不清;这种情况要解决,最简单的办法就是后台把list输出封装成js对象,前端js再获取,就解决了。

要输就输给追求

2020-06-15 10:54

enjoy是在服务器端执行的。js脚本是浏览器执行的。两个东西都不在一个维度。当页面展示出来的那一刻起,就已经和enjoy没关系了。

面具的惊奇

2020-06-15 11:38

@SuperEric @要输就输给追求 我也意识到了,我把list从后台输出成json前台对象接收,数组中的顺序一样,就能用了。

热门反馈

扫码入社