当我尝试使用 Struts2 <s:property>
时,我的 JSP 页面遇到了问题值作为名为 handleChange
的 JavaScript 函数的参数这样我就可以在我的表单中保存该集合的新值:
<form name="monF" method="get">
<display:table name="menaces" pagesize="1" requestURI="loadLesCauses.action" decorator="configuration.MyDecorator" class="table table-striped table-bordered table-hover" id="dataTables-example">
<display:column property="idmenace" title="id menace" />
<display:column property="lienmenace" title="lien de la menace" media="html" />
</display:table>
<s:iterator value="causesmenace" status="rowStatus">
<h3 class="intro-text text-center">
<strong><li><s:property value="libellecause" /></li></strong>
</h3>
<s:hidden id="idcause" value="idcause" />
<h2 class="intro-text">impact sur metier</h2>
<s:select id="impact" name="impact_sur_metier" list="impactsurmetier" value="defaultValue_im" onchange="handleChange_impact(this.value,%{#rowStatus.index});" cssClass="form-control"></s:select>
<br>
<h2 class="intro-text">niveau de probabilité</h2>
<s:select id="probabilite" name="niveau_de_probabilité" list="niveaudeprobabilite" value="defaultValue_np" onchange="handleChange_probabilite('<s:property value=" idcause "/>',this.value,%{#rowStatus.index});" cssClass="form-control"></s:select>
</s:iterator>
<button type="submit" onclick="radarRisk()" title="radarRisk">radarRisk</button>
</form>
这是我的 JS block :
<script type="text/javascript">
var tableName = document.getElementByClassName("menaceList");
function handleChange_probabilite(id, value, nbr) {
JSSauvegarderCause.sauvegarderCauseProbabilite(value, nbr, afficherValidation);
alert(id + value + nbr);
}
}
</script>
错误信息:
févr. 22, 2014 9:27:03 PM org.apache.catalina.core.ApplicationDispatcher invoke
Grave: "Servlet.service()" pour la servlet jsp a lancé une exception
org.apache.jasper.JasperException: /vues/menacesView.jsp(129,70) Symbole égal (equal) attendu
如果我删除 <s:property value="idcause"/>
,代码工作正常在onchange
事件。
最佳答案
Struts2 不允许嵌套标签,如 <s:select ... <s:property .../>/>
.您可以在标记属性中使用 OGNL 表达式。当你使用过
<s:hidden id="idcause" value="idcause" />
评估为OGNL表达式的值属性,您需要为实际值提供getter
public String getIdcause(){return idcause;}
然后使用javascript 函数从隐藏字段中获取值
onchange="handleChange_probabilite(document.getElementById('idcause').value,this.value,%{#rowStatus.index});"
关于java - 将 Action 属性传递给 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21960921/