三大標籤:html
1.JSP:腳本,爲了替代servlet,已過期java
2.JSTL:標準標籤庫(core、format、sql、xml),還未淘汰的只有core庫sql
3.Struts2標籤庫:由Struts2開發團隊開發,功能更增強大session
struts2標籤分爲:普通標籤、UI標籤ui
普通標籤分:控制標籤,數據標籤this
UI標籤分:表單標籤,非表單標籤spa
準備一些數據:code
List<String> list = new ArrayList<>(); list.add("tom"); list.add("jerry"); list.add("jack"); list.add("rose"); ActionContext.getContext().put("list", list);
普通標籤示例:orm
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- 遍歷標籤 iterator --> <!-- ------------------------------------- --> <s:iterator value="#list" > <s:property /><br> </s:iterator> <!-- ------------------------------------- --><hr> <s:iterator value="#list" var="name" > <s:property value="#name" /><br> </s:iterator> <!-- ------------------------------------- --><hr> <s:iterator begin="1" end="100" step="1" > <s:property />| </s:iterator> <!-- ------------------if else elseif標籤------------------- --><hr> <s:if test="#list.size()==4"> list長度爲4! </s:if> <s:elseif test="#list.size()==3"> list長度爲3! </s:elseif> <s:else> list長度不爲3也不爲4! </s:else> <!-- ------------------property 配合ognl表達式頁面取值 ------------------- --><hr> <s:property value="#list.size()" /> <s:property value="#session.user.name" /> </body> </html>
表單標籤(不經常使用):xml
<!-- struts2表單標籤 --> <!-- 好處1: 內置了一套樣式. --> <!-- 好處2: 自動回顯,根據棧中的屬性 --> <!-- theme:指定表單的主題 xhtml:默認 simple:沒有主題 --> <s:form action="Demo3Action" namespace="/" theme="xhtml" > <s:textfield name="name" label="用戶名" ></s:textfield> <s:password name="password" label="密碼" ></s:password> <s:radio list="{'男','女'}" name="gender" label="性別" ></s:radio> <s:radio list="#{1:'男',0:'女'}" name="gender" label="性別" ></s:radio> <s:checkboxlist list="#{2:'抽菸',1:'喝酒',0:'打遊戲'}" name="habits" label="愛好" ></s:checkboxlist> <s:select list="#{2:'大專',1:'本科',0:'碩士'}" headerKey="" headerValue="---請選擇---" name="edu" label="學歷" > </s:select> <s:file name="photo" label="近照" ></s:file> <s:textarea name="desc" label="我的簡介" ></s:textarea> <s:submit value="提交" ></s:submit> </s:form> <s:actionerror/>
Action:
package tag; import com.opensymphony.xwork2.ActionSupport; public class Demo3Action extends ActionSupport { private String name; public String execute() throws Exception { System.out.println(name); this.addActionError("錯誤"); return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } }