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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章