javascript 无法处理 struts html 标签
javascript not working on struts html tag
我的 Struts2 项目 jsp 页面中有以下代码
<select id="amountSelect">
<s:iterator value="rateCardDetailsList" status="listStatusAmount">
<option value="<s:property value='#listStatusAmount.index'/>"><s:property value="rechargeAmount"/></option>
</s:iterator>
</select>
以及相应的脚本
$(document).ready(function() {
$("#amountSelect").change(function(){
var v= $("#amountSelect").val();
var r= "<s:property value='rateCardDetailsList["+ v +"].mobileRate'/>";
alert(r);
});
});
其中 rateCardDetailsList
是包含变量 mobileRate
的特定 bean(Object
) 的数组。但是我在 r
的位置得到空值,同时发出警报 (alert(r);
)。检查元素如下
$(document).ready(function() {
$("#amountSelect").change(function(){
var v= $("#amountSelect").val();
var r= "";
alert(r);
});
});
而不是变量 v
如果我直接给出索引我得到的值即
var r= "<s:property value='rateCardDetailsList[1].mobileRate'/>";
alert(r);
确实在警报中给出了一个值。
可能是什么原因?
这不是 null
而是一个空字符串 ""
。
这是因为 property
标签没有 return 值。
解析OGNL表达式时抛出异常并在内部捕获。在这种情况下 property
标签 return 什么都没有。
这是疯狂无效JSP + JavaScript:
var r = "<s:property value='rateCardDetailsList["+ v +"].mobileRate'/>";
退后一步,想想所有这些代码在哪里执行。
JSP,例如,自定义标签(此处为 <s:property>
标签)在 服务器 端进行评估,然后再将任何内容发送到浏览器。
JavaScript在客户端端执行,在服务端渲染后发送给客户端。在这里,您试图将服务器端代码(标记)与 JavaScript 代码(字符串连接)混合在一起。甚至不会 关闭 工作。
要让它工作,你需要在 server 端呈现有效的 JavaScript,或者使用 Ajax 并动态获取 JS 值,等等. 渲染JS数据结构很常见(例如JSON),但还有很多其他选择
我的 Struts2 项目 jsp 页面中有以下代码
<select id="amountSelect">
<s:iterator value="rateCardDetailsList" status="listStatusAmount">
<option value="<s:property value='#listStatusAmount.index'/>"><s:property value="rechargeAmount"/></option>
</s:iterator>
</select>
以及相应的脚本
$(document).ready(function() {
$("#amountSelect").change(function(){
var v= $("#amountSelect").val();
var r= "<s:property value='rateCardDetailsList["+ v +"].mobileRate'/>";
alert(r);
});
});
其中 rateCardDetailsList
是包含变量 mobileRate
的特定 bean(Object
) 的数组。但是我在 r
的位置得到空值,同时发出警报 (alert(r);
)。检查元素如下
$(document).ready(function() {
$("#amountSelect").change(function(){
var v= $("#amountSelect").val();
var r= "";
alert(r);
});
});
而不是变量 v
如果我直接给出索引我得到的值即
var r= "<s:property value='rateCardDetailsList[1].mobileRate'/>";
alert(r);
确实在警报中给出了一个值。 可能是什么原因?
这不是 null
而是一个空字符串 ""
。
这是因为 property
标签没有 return 值。
解析OGNL表达式时抛出异常并在内部捕获。在这种情况下 property
标签 return 什么都没有。
这是疯狂无效JSP + JavaScript:
var r = "<s:property value='rateCardDetailsList["+ v +"].mobileRate'/>";
退后一步,想想所有这些代码在哪里执行。
JSP,例如,自定义标签(此处为 <s:property>
标签)在 服务器 端进行评估,然后再将任何内容发送到浏览器。
JavaScript在客户端端执行,在服务端渲染后发送给客户端。在这里,您试图将服务器端代码(标记)与 JavaScript 代码(字符串连接)混合在一起。甚至不会 关闭 工作。
要让它工作,你需要在 server 端呈现有效的 JavaScript,或者使用 Ajax 并动态获取 JS 值,等等. 渲染JS数据结构很常见(例如JSON),但还有很多其他选择