JSP 支柱2:标签:标签和值的位置颠倒

flvlnr44  于 2022-12-07  发布在  其他
关注(0)|答案(3)|浏览(126)

在我的Struts2 JSP中,我想显示一个id,所以我写了:

<s:label value="Id:">A${id}B</s:label>

(此处AB用于调试)
我希望它显示为Id:A7B
但在HTML中会生成以下内容:A7BId:
为什么标签放在值之后而不是之前?
如果我写入<s:label value="id" name="id" />,则只生成以下内容:id

q1qsirdb

q1qsirdb1#

我不是Struts2Maven,而且STruts2文档也很糟糕。但HTML标签就是这样:标签。它只有一个“值”:标签文本:

<label>some text</label>

因此,要么使用value属性,要么使用标记体。如果你同时使用这两个属性来设置一个值,我不希望有特定的顺序。我只会这样做:

<s:label>Id:A${id}B</s:label>
bis0qfac

bis0qfac2#

这主要是由于Struts2处理<s:label>标记的方式。

<#if parameters.nameValue??>
<@s.property value="parameters.nameValue"/><#t/>
</#if>

因此,您将值作为其标记参数传递,并提取该值以生成最终输出。在您的情况下,value="Id:"首先显示,并拒绝标记主体,因此输出与您指定的输出相同。
在第二种情况下,它的工作原理与上面描述的相同。因此,解决方案是要么作为标签的值属性使用,要么将其作为标签主体的一部分,选择权完全在您!!!

ee7vknir

ee7vknir3#

对我来说,

<s:label value="Id:%{testBean[#status.index].id}"/>

提供您想要的。您可以根据您的要求进行修改。

<s:label value="Id:A%{id}B"/> will give you what you need.

相关问题