Struts2常用的通用(generic)標籤

1、配置struts.xml

<struts>
    <constant name="struts.devMode" value="true"></constant>
    <package name="p1" extends="struts-default">
        <action name="demo1" class="com.itstar.action.Demo1Action"
            method="demo1">
            <result name="success">demo1.jsp</result>
        </action>
        <action name="demo2" class="com.itstar.action.Demo2Action"
            method="demo2">
            <result name="success">demo2.jsp</result>
        </action>
    </package>

</struts>

2、Demo1Action代碼

package com.itstar.action;

import com.opensymphony.xwork2.ActionSupport;

public class Demo1Action extends ActionSupport {
private String username = “小明”;

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String demo1() {

    return SUCCESS;
}

}

2、Demo1Action代碼

package com.itstar.action;

import com.opensymphony.xwork2.ActionSupport;

import freemarker.core.ReturnInstruction.Return;

public class Demo2Action extends ActionSupport{
public String demo2() {
return SUCCESS;
}
}

注:可以jsp頁面加入<s:debug/>方便查看(開發結束記得去除)

示例:

<!-- 引入-->
<%@ taglib uri="/struts-tags" prefix="s"%>
<!-- property:輸出數據到頁面。 -->
    <s:property value="name" />
    <br />
    <!-- value不寫:取棧頂對象 -->
    <s:property />
    <br />
    <s:property value="'<hr/>'" escapeHtml="false" />
    <br />
    <hr />
    <!-- set:放數據 
        scope:application|session|request|page|action

        默認範圍是action:1、放到請求範圍2放到contextMap中
    -->
    <s:set value="'value1'" var="v1" scope="session"></s:set>
    <hr />
    <s:set value="'value2'" var="v2"></s:set>
    contextMap:
    <s:property value="#v2" />
    <br /> requestScope:
    <s:property value="#request.v2" />
    <br />
    <!-- s:debug沒有顯示出來 -->
    <hr />
    <!-- push:把對象壓入棧頂,結束標籤後,彈棧 -->
    <s:push value="'value3'"></s:push>
    <hr />
    <!-- bean:給一個類取一個名字 ,把對象放到contextMap中-->
    <s:bean name="java.util.Date" var="now"></s:bean>
    <s:property value="#now.time" />
    <hr />
    <!-- action:指向一個動作:struts2中的包含 -->
    <s:action name="demo2" executeResult="true"></s:action>

運行結果

這裏寫圖片描述

iterator:forEach使用頻率相當高:

<!-- iterator:forEach使用頻率相當高 -->

    <table border="1">
        <tr>
            <th>key</th>
            <th>value</th>
        </tr>

        <!-- 指定了var:當前遍歷的元素存到contentMap中,key就是var指定的值  vv=Map.Entry -->
        <s:iterator value="#request" var="vv">

            <tr>
                <td><s:property value="#vv.key" /></td>
                <td><s:property value="#vv.value" /></td>
            </tr>

        </s:iterator>
    </table>
    --------------------------------------------------------------

運行結果

這裏寫圖片描述

#

<!-- 不指定var:把當前遍歷的元素存到根棧的棧頂,Map.Entry
        status屬性:指向一個對象,記錄着當前遍歷的元素信息。存放到contextMap中
        該對象有以下方法:isOdd ; isEven ; isLast ; isFirst ; getCount ;getIndex
     -->
    <style type="text/css">
.odd {
    background-color: #c3f3c3;
}

.even {
    background-color: #f3c3f3;
}
</style>
    <table border="1">
        <tr>
            <th>key</th>
            <th>value</th>
            <th>序號</th>
        </tr>
        <s:iterator value="#request" status="s">
            <tr class="<s:property value='#s.odd?"odd":"even"'/>">
                <td><s:property value="key" /></td>
                <td><s:property value="value" /></td>
                <td><s:property value="#s.count" /></td>
            </tr>
        </s:iterator>

    </table>

運行結果

這裏寫圖片描述

#

<s:radio name="gender" label="'性別'" list="{'male','female'}"></s:radio>
    <hr>
    <s:set value="'java'" var="hobby1"></s:set>
    <s:checkboxlist name="hobby1"
        list="#{'sleep':'睡覺','read':'看書','java':'學java'}"></s:checkboxlist>

    <hr>
    <!-- if else if 類似:jstl when otherwise -->
    <s:set value="A" var="grade" />
    <s:if test="#grade==A">優秀
<s:elseif test="#grade==B">良好
<s:else>不及格</s:else>
        </s:elseif>
    </s:if>

運行結果

這裏寫圖片描述

    <!-- url:和jstl中的url一樣的。URL地址重寫;結合參數使用:參數進行url編碼;/代表當前應用 -->
    <s:url action="demo2" var="u1">

    <s:param name="hello" value="'你好'"></s:param>

    </s:url>
    <a href="${u1 }">猛搓</a>

運行結果

這裏寫圖片描述
這裏寫圖片描述

發佈了10 篇原創文章 · 獲贊 11 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章