struts2標籤

首先在jsp頁面中引入以下指令,前提是你已經導入了struts2的jar包。

<%@ taglib uri="/struts-tags" prefix="s" %>

1. struts標籤
  1.1 通用標籤
    1.1.1 數據標籤


          property    用於取值,類似於c標籤中的c:out標籤,(注:struts標籤中的value不是按字符串算,而是按表達式算)

 

a鏈接跳轉到Demo3Action 且傳參數

<a href="${pageContext.request.contextPath}/sy/demo3Action.action?sid=1&sname=張三&stu2.sname=李四&stu2.sid=2">struts2標籤</a>

 後臺Action接收參數,然後跳轉到demo3.jsp頁面

package com.zking.study.three;
 
import com.opensymphony.xwork2.ModelDriven;
 
import ognl.OgnlContext;
 
public class Demo3Action implements ModelDriven<Student>{
 
	private Student student=new Student(); //  實現ModelDriven接口接收參數
	private String sname; //  get/set方法接收參數
	private Student stu2; //  對象導航接收參數
	
	public String execute() {
		System.out.println(student+" , "+name+" , "+stu2);
		return "demo3";
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Student getStu2() {
		return stu2;
	}
	public void setStu2(Student stu2) {
		this.stu2 = stu2;
	}
	
	@Override
	public String toString() {
		return "Demo3Action [student=" + student + ", name=" + name + ", stu2=" + stu2 + "]";
	}
	@Override
	public Student getModel() {
		return student;
	}
}

 demo3.jsp,

<body>
<!-- 取棧頂,取student(model) -->
<s:property/>
<!-- 取根對象最上面的對象的屬性 -->
<s:property value="sid"/>
<!-- 取根對象的stu2對象的sid屬性 -->
<s:property value="stu2.sid"/>
<!-- 取非根對象stu2對象的sid屬性 -->
<s:property value="#request.stu2.sid"/>
 
<!-- value不是按字符串算,而是按表達式算,所以‘123456’不會顯示出來 -->
<s:property value="123456"/>
</body>

  set

<body>
<!-- 通過var去設值的都是放在非根對象裏的 -->
<s:set var="test" value="stu2.sid"></s:set>
 
<s:property value="#test"/>
</body>

action


<body>
    <!-- 通常用於請求後臺,獲取初始化數據的 -->
    <s:action name="demo3Action" namespace="/sy" var="test2">
<!-- 帶參數則在action標籤內加入param標籤,param標籤數量依實際情況調整 -->
        <!-- param有兩種賦值方式, 一種爲ognl表達式,一種爲字符串 -->
        <s:param name="a" value="#sname"></s:param>   <!-- ognl表達式 -->
        <s:param name="a">123</s:param>    <!-- 字符串 -->
    </s:action>
</body>

url

<body>
    <!-- url標籤是爲了生成地址所用,不會訪問後臺 -->
    <s:url namespace="/sy" action="demo3Action" var="test3">
        <!-- 帶參數則在action標籤內加入param標籤,param標籤數量依實際情況調整 -->
        <!-- param有兩種賦值方式, 一種爲ognl表達式,一種爲字符串 -->
        <s:param name="a" value="#sname"></s:param>   <!-- ognl表達式 -->
        <s:param name="a">123</s:param>    <!-- 字符串 -->
    </s:url>
    
    <a href='<s:property value="#test3"/>'>xxx</a>
<!-- a標籤的href屬性是按字符串算的,所以要在字符串外包裹一層%{ },強制轉換成OGNL表達式計算 -->
    <s:a href="%{#test3}">xxx</s:a>
</body>

debug

   標籤用於調試值棧,查看其中的值。

<body>
    <s:debug/>
</body>

date

<body>
    <%
	request.setAttribute("datecurrent", new Date());
    %>
    <s:date name="#request.datecurrent"/>
</body>

  1.1.2 控制標籤
         

if


<body>
    <%
	request.setAttribute("result", 75);
    %>
    <s:if test="#request.result>90">A</s:if>
    <s:elseif test="#request.result>70">B</s:elseif>
    <s:elseif test="#request.result>60">C</s:elseif>
    <s:else>D</s:else>
</body>

iterator


<body>
    <%
	request.setAttribute("result", new String[]{'1','2','3'});
    %>
    <s:iterator var="v" value="#request.result">
	<li>
		<s:property value="#v"/>
	</li>
    </s:iterator>    
</body>

 1.2 UI標籤
    1.2.1 表單標籤


<body>
    <s:form action="demo3Action" namespace="/sy">
    <s:textfield label="姓名" name="uname"></s:textfield>
 
	<s:radio list="#{1:'男',2:'女'}" label="性別" name="sex" value="2"></s:radio>
	<s:select label="時間選擇" name="deptName" list="#{1:'昨天',2:'今天',3:'明天'}"></s:select>
	<!-- 單選複選框,往後臺傳值是布爾類型的 -->
	<s:checkbox label="是否已婚" name="married" ></s:checkbox>
	<s:checkboxlist label="愛好" list="#{1:'籃球',2:'足球',3:'跑步'}" name="hoppy"></s:checkboxlist>
		<s:textarea label="備註" name="remark"></s:textarea>
		<s:hidden name="xxx" value=""></s:hidden>
    </s:form>
</body>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章