将Struts 2属性传递给javascript

时间:2012-03-30 20:41:32

标签: javascript java-ee struts2

我在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?

3 个答案:

答案 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>