我在simulate.jsp中编写以下代码,从服务器接收一些字符串“simulationInfos”:
<s:property id="simulationInfos" value="simulationInfos" /><br/>
当返回simulate.jsp时,我可以看到,String simulationInfos已存在。
我的问题是:如何将simulationsInfos传递给java脚本?
我尝试了以下内容:
<script type="text/javascript">
var data=document.getElementById("simulationInfos").value;
console.log("data is: ", data);
And with jQuery:
var data=$("#simulationInfos").val();
</script>
我在Firebug中遇到以下错误:未捕获的TypeError:无法读取null的属性'value'
如何将一些struts 2变量传递给javascript?
答案 0 :(得分:2)
首先,您应该看一下JSP生成的HTML代码。它可以解释为什么您无法检索该值。然后,也许你会发现你需要一些额外的HTML代码。例如:
<span id="simulationInfos"><s:property value="simulationInfos" /></span>
在你的剧本中:
alert("data is: " + simulationInfos.innerHTML);
如果您查看属性标记doc,可以看到没有任何“id”参数。
版:JS修正。
答案 1 :(得分:1)
看起来您的id是simulationInfos,但您正在寻找js代码中的simulateInfos。由于getElementById没有返回任何内容,因此(null)返回类型没有值。
此外,在console.log中,使用+来连接字符串,而不是逗号。
答案 2 :(得分:0)
如果您不想显示属性值,请使用s:hidden标签,如下所示:
<s:hidden id="simulationInfos" value="%{simulationInfos}" name="simulationInfos"/>
<script type="text/javascript">
var data=$("simulationInfos").value;
console.log("data is: ", data);
</script>