<s:if test="%{condition1}">...</s:if>
<s:elseif test="%{condition2}">...</s:elseif>
<s:else>...</s:else>
單獨使用或組合使用,邏輯同 Java if-else if-else。
public class HelloWorldAction {
private String name;
public String execute() { return "success"; }
// getter/setter
}
<form action="hello">
<select name="name">
<option>Mike</option>
<option>Jason</option>
<option>Mark</option>
</select>
<input type="submit" value="Say Hello"/>
</form>
<s:if test="name=='Mike'">
You have selected 'Mike'.
</s:if>
<s:elseif test="name=='Jason'">
You have selected 'Jason'
</s:elseif>
<s:else>
You have not selected 'Mike' or 'Jason'.
</s:else>
<action name="hello" class="com.yiibai.struts2.HelloWorldAction" method="execute">
<result name="success">/HelloWorld.jsp</result>
</action>
test 可用 OGNL 表達式:user.age > 18、list.size() > 0。<s:iterator>、<s:property> 等)。if/elseif/else 標籤將條件邏輯移至視圖層,保持 Action 純粹,是 Struts2 表現層邏輯控制的核心工具。