在我的Struts2 JSP中,我想显示一个id,所以我写了:
<s:label value="Id:">A${id}B</s:label>
(此处A和B用于调试)我希望它显示为Id:A7B但在HTML中会生成以下内容:A7BId:为什么标签放在值之后而不是之前?如果我写入<s:label value="id" name="id" />,则只生成以下内容:id
A
B
Id:A7B
A7BId:
<s:label value="id" name="id" />
id
q1qsirdb1#
我不是Struts2Maven,而且STruts2文档也很糟糕。但HTML标签就是这样:标签。它只有一个“值”:标签文本:
<label>some text</label>
因此,要么使用value属性,要么使用标记体。如果你同时使用这两个属性来设置一个值,我不希望有特定的顺序。我只会这样做:
value
<s:label>Id:A${id}B</s:label>
bis0qfac2#
这主要是由于Struts2处理<s:label>标记的方式。
<s:label>
<#if parameters.nameValue??> <@s.property value="parameters.nameValue"/><#t/> </#if>
因此,您将值作为其标记参数传递,并提取该值以生成最终输出。在您的情况下,value="Id:"首先显示,并拒绝标记主体,因此输出与您指定的输出相同。在第二种情况下,它的工作原理与上面描述的相同。因此,解决方案是要么作为标签的值属性使用,要么将其作为标签主体的一部分,选择权完全在您!!!
value="Id:"
ee7vknir3#
对我来说,
<s:label value="Id:%{testBean[#status.index].id}"/>
提供您想要的。您可以根据您的要求进行修改。
<s:label value="Id:A%{id}B"/> will give you what you need.
3条答案
按热度按时间q1qsirdb1#
我不是Struts2Maven,而且STruts2文档也很糟糕。但HTML标签就是这样:标签。它只有一个“值”:标签文本:
因此,要么使用
value
属性,要么使用标记体。如果你同时使用这两个属性来设置一个值,我不希望有特定的顺序。我只会这样做:bis0qfac2#
这主要是由于Struts2处理
<s:label>
标记的方式。因此,您将值作为其标记参数传递,并提取该值以生成最终输出。在您的情况下,
value="Id:"
首先显示,并拒绝标记主体,因此输出与您指定的输出相同。在第二种情况下,它的工作原理与上面描述的相同。因此,解决方案是要么作为标签的值属性使用,要么将其作为标签主体的一部分,选择权完全在您!!!
ee7vknir3#
对我来说,
提供您想要的。您可以根据您的要求进行修改。