我是 Struts2 的新手,但现在已经为一个问题苦苦挣扎了 2 天。
基本上,我想设置一个 <s:param>
<s:url>
内的标签包含页面其他地方的 div 标记的内容。
<div id="div1">My value</div>
<s:url action="myAction" var="url">
<s:param name="param1">...content of div1...</s:param>
</s:url>
当我试图在 <s:param>
中嵌入一些 javascript 调用时标记,不会评估 javascript 调用。
我的问题是:有没有办法将 javascript 调用绑定(bind)到 <s:param>
每当评估时标记?
非常感谢
最佳答案
不幸的是,<s:param>
是不可能的标记,因为此标记是在页面提供给用户之前呈现的(即,它必须在链接到达 Javascript 可以接管的浏览器之前填充链接)。
不过,使用负载处理程序可以实现您正在尝试做的事情。下面是一个如何完成它的 jQuery 示例:
$(document).ready(function(){
var theDivContents = $('#div-id').text();
var newLinkHref= $('#link-id').attr('href') + "&divContents=" + theDivContents;
$('#link-id').attr('href', newLinkHref);
});
如果您使用 Struts 来填充 <div>
的另一种选择你想用作链接参数是在呈现链接之前将其捕获在变量中,然后直接在 <s:param>
中使用它标签:
<div id="div1">${yourValue}</div>
<s:url action="myAction" var="url">
<s:param name="param1">${yourValue}</s:param>
</s:url>
关于java - 带有javascript的Struts2参数标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3406175/