我正在使用Struts2编写一个网页。
我的需要是只在Action类的布尔属性(即sectionHidden
)设置为false
时才在表中显示一行。为此,我编写了以下代码:
<s:if test="sectionHidden"><tr id="sectionTitle" style="display: none;"></s:if>
<s:else><tr id="sectionTitle"></s:else>
<td>This is the section title</td>
</tr>
我认为这不是最好的方法,还有其他更好的方法吗? (我想避免写两次与tr
相关的html代码)
答案 0 :(得分:2)
根据您的需求,
如果要裁剪它,请使用一个<s:if>
绘制(或不绘制)行,如AleksandrM答案;
如果你想要隐藏它,但是你希望它在页面中(例如稍后用javascript显示它,或者在源中查看它),你可以使用<s:if>
来应用(或不)隐藏的状态:
<tr id="sectionTitle" <s:if test="sectionHidden">style="display: none;"</s:if>>
<td>This is the section title</td>
</tr>
答案 1 :(得分:1)
嗯......如何只使用一个<s:if>
:
<s:if test="!sectionHidden">
<tr id="sectionTitle">
<td>This is the section title</td>
</tr>
</s:if>
答案 2 :(得分:1)
如果tag在下面举例说明,你可以使用struts2测试任何值
<s:if test="anyBooleanValue">
I am returning TRUE.<br/>
</s:if>
<s:else>
I am returning FALSE.<br/>
</s:else>
<!-- For String Value -->
<s:if test="%{myStringValue!=null}">
String is not null<br/>
</s:if>
<s:elseif test="%{myStringValue==null}">
String is null<br/>
</s:elseif>
<s:else>
String is null<br/>
</s:else>
<!-- For Object Value -->
<s:if test="%{checkArrayList.size()==0}">
Object Size is Zero<br/>
</s:if>
<s:else>
Object Size is not a Zero<br/>
</s:else>
在你的情况下,代码将做正确的工作
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>
<body>
<h1>Struts 2 If, Else, ElseIf tag example</h1>
<s:set name="sectionHidden" value="false"/>
<table>
<tr id="sectionTitle" style="display:<s:if test="sectionHidden">none</s:if><s:else>block</s:else>">
<td>This is the section title</td>
</tr>
</table>
</body>
</html>