<!-- 獲取值棧頂層對象屬性 --> <s:property value="userName"/> <!-- 獲取 List/Map 索引 --> <s:property value="[1].userName"/> <!-- List 索引 1 --> <s:property value="#session.user.name"/> <!-- Session 域 --> <s:property value="#request.attrKey"/> <!-- Request 域 --> <s:property value="#attr.key"/> <-- 搜索 page/request/session/application --> <!-- 屬性 --> <s:property value="expr" default="默認值" escape="true|false"/>
<s:url action="userAction" method="list">
<s:param name="page" value="1"/>
</s:url>
<!-- 輸出:/context/userAction_list.action?page=1 -->
<s:set name="varName" value="%{expression}" scope="page|request|session|application"/>
<!-- 後續使用:${varName} 或 %{#varName} -->
<s:push value="user">
<s:property value="name"/> <!-- 直接訪問 user.name -->
</s:push>
<s:if test="%{user.age > 18}">成年</s:if>
<s:elseif test="%{user.age > 12}">青少年</s:elseif>
<s:else>兒童</s:else>
<s:iterator value="userList" status="stat">
<s:property value="#stat.index"/> : <s:property value="name"/>
</s:iterator>
<!-- status 提供 index、count、first、last、even、odd -->
<s:sort source="userList" comparator="myComparator" />
<s:date name="user.birthday" format="yyyy-MM-dd" />
<s:a action="userAction" method="detail">
<s:param name="id" value="%{id}"/>
查看詳情
</s:a>
<s:action name="headerAction" executeResult="true" />
<s:bean name="com.example.User" var="user">
<s:param name="name" value="'張三'"/>
</s:bean>
<s:include value="/common/header.jsp" />
<s:append>:合併多個集合迭代<s:merge>:交替合併迭代<s:generator>:生成序列迭代<s:subset>:截取集合子集| 標簽 | HTML 對應 | 關鍵屬性 |
|---|---|---|
| <s:form> | <form> | action、method、theme、namespace |
| <s:textfield> | <input type="text"> | name、label、value、readonly |
| <s:password> | <input type="password"> | name、label、showPassword |
| <s:textarea> | <textarea> | name、label、rows、cols |
| <s:select> | <select> | list、listKey、listValue、headerKey、headerValue |
| <s:radio> | <input type="radio"> | name、list、listKey、listValue |
| <s:checkbox> | <input type="checkbox"> | name、fieldValue、value |
| <s:checkboxlist> | 多個 checkbox | list、listKey、listValue |
| <s:submit> | <input type="submit"> | value、action、method |
| <s:reset> | <input type="reset"> | value |
| <s:file> | <input type="file"> | name、accept |
| <s:hidden> | <input type="hidden"> | name、value |
| <s:label> | <label> | value、for |
| <s:updownselect> | 雙選單上下移動 | list、listKey、listValue |
| <s:combobox> | 可編輯下拉框 | list、listKey、listValue |
| <s:doubleselect> | 二級聯動下拉 | list、doubleList、doubleListKey、doubleListValue |
| <s:optiontransferselect> | 雙列表互選 | list、doubleList、listKey、listValue |
全局設置:struts.ui.theme=css_xhtml(struts.properties)
<s:property>、<s:iterator>),減少 JSP 腳本代碼theme="simple" 實現完全可控的前端樣式