我想在jsp页面中用js获取s:property中的value要怎么办

JavaScript025

我想在jsp页面中用js获取s:property中的value要怎么办,第1张

很简单啊!s:property的value是从action中获取的值,既然这样,你可以在js这样获取:

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') %>

这样就可以了,但是表单已经提交过一次了,一次转发携带的数据将会丢失!