将Struts 2属性传递给javascript

将Struts 2属性传递给javascript,javascript,jakarta-ee,struts2,Javascript,Jakarta Ee,Struts2,我在simulate.jsp中编写以下代码,以从服务器接收一些字符串“simulationfos”: <s:property id="simulationInfos" value="simulationInfos" /><br/> 当simulate.jsp被返回时,我可以看到字符串simulationfos已经存在 我的问题是:如何将SimulationInfos传递给java脚本 我尝试了以下方法: <script type="text/javascrip

我在simulate.jsp中编写以下代码,以从服务器接收一些字符串“simulationfos”:

<s:property id="simulationInfos" value="simulationInfos" /><br/>

当simulate.jsp被返回时,我可以看到字符串simulationfos已经存在

我的问题是:如何将SimulationInfos传递给java脚本

我尝试了以下方法:

<script type="text/javascript">
var data=document.getElementById("simulationInfos").value;
console.log("data is: ", data);

And with jQuery:
var data=$("#simulationInfos").val();
</script>

var数据=document.getElementById(“SimulationFos”).value;
日志(“数据为:”,数据);
对于jQuery:
var数据=$(“#SimulationFos”).val();
我在Firebug中得到以下错误:uncaughtTypeError:无法读取null的属性“value”


如何将struts 2变量传递给javascript?

看起来您的id是SimulationFos,但您正在js代码中查找SimulationInfo。由于getElementById没有返回任何内容,因此(null)返回类型上没有值


另外,在console.log中,使用+连接字符串,而不是逗号。

首先,您应该查看JSP生成的HTML代码。它可以解释为什么无法检索该值。然后,也许你会发现你需要一些额外的HTML代码。例如:

<span id="simulationInfos"><s:property value="simulationInfos" /></span>
如果查看属性标记,可以看到没有任何“id”参数


Edition:JS更正。

如果不想显示属性值,请使用s:hidden标记,如下所示:

<s:hidden id="simulationInfos" value="%{simulationInfos}" name="simulationInfos"/>

<script type="text/javascript">
var data=$("simulationInfos").value;
console.log("data is: ", data);
</script>

var数据=$(“SimulationFos”).值;
日志(“数据为:”,数据);

什么生成为HTML?这是最重要的部分。是的,这个属性在firebug控制台的主体中,当您键入document.getElementById(“SimulationFos”)时会得到什么?我为console.log(document.getElementById(“SimulationFos”)获取null它与控制台无关,我试图拆分它,但我发现了一个错误:uncaughttypeerror:无法调用null的方法'split':var data='';控制台日志(数据);感谢大家的参与关键是属性标记没有生成您所期望的html。事实上,我打赌属性标记根本不会生成html,因此您需要更改方法;-)我会说:var数据=”;如果字符串中有引号,那么属性标记的属性也可以对这些引号进行编码。
<s:hidden id="simulationInfos" value="%{simulationInfos}" name="simulationInfos"/>

<script type="text/javascript">
var data=$("simulationInfos").value;
console.log("data is: ", data);
</script>