如何访问支柱标签的嵌套标签?

How to access the nested tag of a struts tag?

提问人:MicSar 提问时间:11/17/2022 最后编辑:Roman CMicSar 更新时间:11/20/2022 访问量:125

问:

我正在使用以下 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>

set 标签 var 由 Struts if 标签使用。

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

当 SPAN 标记位于 SET 标记之外时,SPAN 标记的值将正确设置为“alert”。 但是,当在支柱内设置标签时。找不到 span 标记。

如何成功设置 set 标签的值?使用 span 标签或直接设置 set 标签的值。 或者我可以以某种方式直接在if标签中注入“alert”值吗?

我使用谷歌和 youtube 来寻找答案。 我尝试将 span 标签直接放在 if 标签中。 我尝试使用 document.querySelector(),但我无法让它与支柱标签一起使用。

javascript jsp struts2 struts struts-tags

评论

0赞 epascarello 11/17/2022
生成的输出实际上是什么样子的?你检查过元素吗?
0赞 MicSar 11/17/2022
未捕获的 TypeError:无法设置 null 属性(设置“innerHTML”)
0赞 epascarello 11/17/2022
什么是生成 HTML?检查元素,查看 id。什么是id?我猜它没有您插入的随机 [ 和 ]。
0赞 MicSar 11/17/2022
Id 匹配。就像我说的,当你把跨度放在设置的标签之外时,它会打印“alert”
1赞 Roman C 11/20/2022
@MicSar span 标签不可用,因为您将其放在 set 标签的正文中。

答:

1赞 Roman C 11/20/2022 #1

如果您在 JavaScript 代码中使用,则带有 的元素应该在 DOM 中可用。但它不可用,因为你把它放在 Struts <s:set> 标签中。它不是 UI 标记,也不会呈现任何 HTML 元素。document.getElementById()id

您可以在属性中设置变量的值。它允许在那里应用 OGNL 表达式。alertvalue

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

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

然后,如果使用 tag,则应在上下文中找到变量的值。<s:if>alert

评论

0赞 Roman C 11/26/2022
如果这个答案对你有帮助,那么你应该把它标记为接受,如果可能的话,你应该投票。复选框和投票控件位于答案的左侧。