var name = ${属性名}当然,用el表达式要引入jstl标签库!不然要报错!
也可以:<div id="name"><s:property value="属性名"></div>
js:var name=document.getElementById('name').innerHTML
jsp页面中用js获取s:property中的value的做法是在js中利用单引号对界定s:property取值。如下:var url = '<s:property value="#urlBack"/>'
1、jsp文件定义如下:
<tr>
<td height="6%"align="center">
<s:submit cssClass="button" key="common.initDelegate.label" align="center" theme="simple"/>
<s:url id="urlBack" action="myAction" includeParams="none" escapeAmp="false">
<s:param name="period.periodId" value="%{period.periodId}"></s:param>
</s:url>
<input type="button" onclick="javascript:cancel()" value="<s:text name="common.button.cancel"/>"/>
</td>
</tr>
2、js函数写法如下:
function cancel() {
if (!isModified || (isModified &&askConfirmCancel())) {
window.location.replace('<s:property value="#urlBack"/>')
}
}
这样就是可以通过'<s:property value="#urlBack"/>'传值给js函数 window.location.replace了。
jsp中是不能引用js变量的,jsp是服务端的,在服务器转发的时候数据已经定死在页面里面了,而js是客户端的,可以不断通过客户端代码来修改js的值,因此js的值不能赋值给jsp的。如果硬要赋值的话可以虚拟一个表单提交,例如:
<form id="testForm" method="post" action="当前页面.jsp">
<input type='hidden' id="test1" name="val1" value="js的值">
</form>
<script>document.getElementById('testForm').submit()</script>
<% String val=request.getParamter('val1') %>
这样就可以了,但是表单已经提交过一次了,一次转发携带的数据将会丢失!