如何访问Struts标签的嵌套标签?

问题描述 投票:0回答:1

我正在使用以下 JavaScript 代码来设置元素的值。

document.getElementById('alert['+i+']').innerHTML = "alert";

该元素嵌套在 Struts set 标签中。 (ID一致,没有故障。)

<s:set var="alert" >
   <span id="<s:property value='"alert"+{#stat.index+4}' />"></span>
</s:set>

<s:set>
标签的
var
由 Struts
<s:if>
标签使用。

<s:if test="%{#alert == 'alert'}">
    //some code         
</s:if>

<span>
标签位于
<s:set>
标签之外时,
<span>
标签的值会正确设置为
"alert"
。 但是,当在 Struts
<s:set>
标签内时,无法找到
<span>
标签。

如何成功设置

<s:set>
标签的值?使用
<span>
标签或直接设置
<s:set>
标签的值。 或者我可以以某种方式直接在
"alert"
标签中注入
<s:if>
值吗?

我使用Google和YouTube来寻找答案。 我尝试将

<span>
标签直接放在
<s:if>
标签中。 我尝试过使用
document.querySelector()
,但我无法让它与 Struts 标签一起使用。

javascript jsp struts2 struts struts-tags
1个回答
1
投票

如果您在 JavaScript 代码中使用

document.getElementById()
,则带有
id
的元素应该在 DOM 中可用。但它不可用,因为你把它放在 Struts
<s:set>
标签中。它不是 UI 标签,也不渲染任何 HTML 元素。

您可以在

alert
属性中设置
value
变量的值。它允许在那里应用 OGNL 表达式。

<s:set var="alert" value="%{'alert'+(#stat.index+4)}"/>

<span id="<s:property value='%{#alert}'/>">
</span>

然后,如果您使用

<s:if>
标签,则应该在上下文中找到变量
alert
的值。

© www.soinside.com 2019 - 2024. All rights reserved.