Jsp Struts2 s:标签:标签和值的位置颠倒

Jsp Struts2 s:标签:标签和值的位置颠倒,jsp,struts2,Jsp,Struts2,在我的Struts2 JSP中,我想显示一个id,因此我写道: <s:label value="Id:">A${id}B</s:label> A${id}B (A和B用于调试) 我希望它显示为Id:A7B 但以下内容是在HTML中生成的:A7BId: 为什么标签放在值之后而不是之前 如果我写,那么只会生成以下内容:id我不是Struts2专家,Struts2文档非常糟糕。但是HTML标签就是:一个标签。它只有一个“值”:标签的文本: <label>some

在我的Struts2 JSP中,我想显示一个id,因此我写道:

<s:label value="Id:">A${id}B</s:label>
A${id}B
A
B
用于调试)

我希望它显示为
Id:A7B

但以下内容是在HTML中生成的:
A7BId:

为什么标签放在值之后而不是之前


如果我写
,那么只会生成以下内容:
id

我不是Struts2专家,Struts2文档非常糟糕。但是HTML标签就是:一个标签。它只有一个“值”:标签的文本:

<label>some text</label>

这主要是由于Struts2处理
标记的方式。它在内部使用自由标记模板来处理HTML输出的呈现,下面是它所做的

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

因此,您将值作为其标记参数传递,并将其提取以生成最终输出。在您的情况下,
value=“Id:”
将首先显示并存储标记体,因此输出与您指定的输出一致

在第二种情况下,其工作原理与上述相同。因此,解决方案要么用作标记的值属性,要么将其作为标记正文的一部分,选择权归您

对我来说

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

给你想要的。您可以根据您的要求进行修改

我不知道是什么让你们投票否决我的答案。相信屏幕截图:

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

将为您提供所需。

他们最近改进了很多,但在专业方面我同意:)+1我选择JB的答案,因为它很简单,符合我的需要,但感谢您解释基本机制@尼古拉斯·拉乌尔:终于对你起作用了,这是最好的事情:)
<s:label value="Id:A%{id}B"/> will give you what you need.