Struts 2.0 常用标签

(1)
在介绍常用标志前,我想先从总体上,对Struts 1.x与Struts 2.0的标志库(Tag Library)作比较:
1)
分类:
Struts 1.x:
将标志库按功能分成HTML、Tiles、Logic和Bean等几部分
Struts 2.0:
严格上来说,没有分类,所有标志都在URI为“/struts-tags”命名空间下,不过,我们可以从功能上将其分为两大类:非UI标志和UI标志
2)
表达式语言(expression languages)
Struts 1.x:    不支持嵌入语言(EL)
Struts 2.0:     OGNL、JSTL、Groovy和Velcity
(2)
要在JSP中使用Struts 2.0标志,先要指明标志的引入。通过在JSP的代码的顶部加入以下代码可以做到这点。
< %@taglib prefix="s" uri="/struts-tags" %>
(3)
非UI标志:
1)
if、elseif和else,如:
 <s:set name="name" value="<%= "'" + request.getParameter("name") + "'" %>" />
        <s:if test="#name == 'Max'">
            Max's file here
        </s:if>
        <s:elseif test="#name == 'Scott'">
            Scott's file here
        </s:elseif>
        <s:else>
            Other's file here
        </s:else>
set标签,赋予变量一个特定范围内的值。变量作用域,可以为application, session, request, page, 或action.默认存储在page中.
参数:
name:变量名字
scope:变量作用域,可以为application, session, request, page, 或action.
value:变量值.   

2)
iterator
用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator).
<%
    List list = new ArrayList();
    list.add("Max");
    list.add("Scott");
    list.add("Jeffry");
    list.add("Joe");
    list.add("Kelvin");
    request.setAttribute("names", list);
%>
<html>
    <head>
        <title>Iterator</title>
    </head>
    <body>
        <h3>Names: </h3>
        <!--
1、此处的空property元素用于获得当前iterator的值
2、status被设成stuts,在iterator的里面就可以通过#stuts取得IteratorStatus的对象。IteratorStatus 类包含当前序号信息,如是否第一个或最后一个,是否为奇数序号。这些信息在我们做格式化的时候,显得非常有用。
        -->
        <ol>
            <s:iterator value="#request.names" status="stuts">               
                <s:if test="#stuts.odd == true">
                    <li>White <s:property /></li>
                </s:if>
                <s:else>
                    <li style="background-color:gray"><s:property /></li>
                </s:else>
            </s:iterator>
        </ol>
3)
i18n
描述:
加载资源包到值堆栈。
<h3>
            <s:i18n name="ApplicationMessages">
                <s:text name="HelloWorld" />
            </s:i18n>
</h3>
text标签
描述:
支持国际化信息的标签。国际化信息必须放在一个和当前 action同名的resource bundle中.
name,指明资源属性的名字
4)
include
描述:
包含一个servlet的输出(servlet或jsp的页面)。
        <s:include value="/condition.jsp">
            <s:param name="name">Max</s:param>
        </s:include>
        <h3>i18n</h3>
        <s:include value="/i18n.jsp" />
5)
url
描述:
该标签用于创建url,可以通过"param"标签提供request参数。
        <a href='<s:url value="/i18n.jsp" />'>i18n</a><br />
        <s:url id="url" value="/condition.jsp">
            <s:param name="name">Max</s:param>
        </s:url>       
        <s:a href="%{url}">if\elseif\else</s:a>
6)
property
描述:
得到'value'的属性,如果value没提供,默认为堆栈顶端的元素。
(4)
UI标志
UI 标志又可以分为表单UI和非表单UI两部分。表单UI部分基本与Struts 1.x相同,都是对HTML表单元素的包装。不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepicker、doubleselect、timepicker、 optiontransferselect等。因为这些标志很多都经常用到,而且参数也很多.
如下:
<body>
<s:actionerror/>
<s:actionmessage/>
<s:fielderror />
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data" tooltipConfig="#{'jsTooltipEnabled':'true'}">
    <s:textfield
            label="Name"
            name="name"
            tooltip="Enter your Name here" />
    <s:datepicker
            tooltip="Select Your Birthday"
            label="Birthday"
            name="birthday" />
    <s:textarea
            tooltip="Enter your Biography"
            label="Biograph"
            name="bio"
            cols="20"
            rows="3"/>
    <s:select
            tooltip="Choose Your Favourite Color"
            label="Favorite Color"
            list="{'Red', 'Blue', 'Green'}"
            name="favoriteColor"
            emptyOption="true"
            headerKey="None"
            headerValue="None"/>
    <s:select
            tooltip="Choose Your Favourite Language"
            label="Favourite Language"
            list="favouriteLanguages"
            name="favouriteLanguage"
            listKey="key"
            listValue="description"
            emptyOption="true"
            headerKey="None"
            headerValue="None"/>
    <s:checkboxlist
            tooltip="Choose your Friends"
            label="Friends"
            list="{'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}"
            name="friends"/>
    <s:checkbox
            tooltip="Confirmed that your are Over 18"
            label="Age 18+"
            name="legalAge"/>
    <s:doubleselect
            tooltip="Choose Your State"
            label="State"
            name="region" list="{'North', 'South'}"
            value="'South'"
            doubleValue="'Florida'"
            doubleList="top == 'North' ? {'Oregon', 'Washington'} : {'Texas', 'Florida'}"
            doubleName="state"
            headerKey="-1"
            headerValue="---------- Please Select ----------"
            emptyOption="true" />
    <s:doubleselect
            tooltip="Choose your Vehical"
            label="Favourite Vehical"
            name="favouriteVehicalType"
            list="vehicalTypeList"
            listKey="key"
            listValue="description"
            value="'MotorcycleKey'"
            doubleValue="'YamahaKey'"
            doubleList="vehicalSpecificList"
            doubleListKey="key"
            doubleListValue="description"
            doubleName="favouriteVehicalSpecific" headerKey="-1"
            headerValue="---------- Please Select ----------"
            emptyOption="true" />
    <s:file
            tooltip="Upload Your Picture"
            label="Picture"
            name="picture" />
           
    <s:optiontransferselect
            tooltip="Select Your Favourite Cartoon Characters"
            label="Favourite Cartoons Characters"
            name="leftSideCartoonCharacters"
            leftTitle="Left Title"
            rightTitle="Right Title"
            list="{'Popeye', 'He-Man', 'Spiderman'}"
            multiple="true"
            headerKey="headerKey"
            headerValue="--- Please Select ---"
            emptyOption="true"
            doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
            doubleName="rightSideCartoonCharacters"
            doubleHeaderKey="doubleHeaderKey"
            doubleHeaderValue="--- Please Select ---"
            doubleEmptyOption="true"
            doubleMultiple="true" />
   
    <s:textarea
            label="Your Thougths"
            name="thoughts"
            tooltip="Enter your thoughts here" />
           
    <s:submit />
    <s:reset />
</s:form>
</body>
 
struts2.0常用标签说明:
(1)
s:url的用法:
URL地址标签,<s:url>用于生成一个URL地址,可以通过URL标签指定的<s:param>子元素向URL地址
发送请求参数.
1.
普通的链接,用value属性:
<a href="<s:url value="Login_input.jsp"/>">Sign On</a>
2.
链接到action:
<a href="<s:url action="Register"/>">Register</a>
3.
分开写,有id来指定名称:
<s:url action="input" id="regurl" namespace="/reg"></s:url>
<a href="${regurl}"><s:text name="reg.title"/></a>
4.
带参数,用<s:param name>:
<s:url id="url" action="HelloWorld">
   <s:param name="request_locale">es</s:param>
</s:url>
(2)
2.1
往对象中传值<s:textfield> 用于从页面往action中的对象内传值:
<s:text name="user. userName " id="username"/>
该标签可以在页面中向action中的实体对象内直接传值。(注:在action中要存在user对象,并有
SET/GET方法。)

<input name="userName" type="text" class="input6" size="15">
2.2
对象(action)中获取页面传来的值(如上实例):
1. userName属性需要在访问的action中提供相应的属性,并有SET/GET方法。

2. 可以不在访问的action中提供相应的属性,用request.getParameter(“userName”);
(3)
在页面显示action的返回值: 标签 property 用于输出指定值:
<s:property value=" userName "/> 当action返回到指定页面是,可以通过该标签显示action中的
属性信息。(注 userName必须在action中存在,并有GET方法)。
(4)
判断<s:if> </s:if> 用于在页面中判断指定数据
<s:if test="userName == admin">…. </s:if>
<s:else>…. </s:else>
该标签用于对指定的数据进行判断,但指定的数据必须在action中存在。
(5)
迭代<s:iterator>用于将List、Map、ArrayList等集合进行循环遍历
<s:iterator value="userList" id="user" status="u">
<s:property value="userName"/></a>
</s:iterator>
该标签用于将userList集合中的元素进行循环,用过property进行显示集合中的指定元素值。
(6)
set标签,用于将某个值放入指定的范围内。例如application,session等。
<s:set name="user" value="userName" scope=”request”/>
将user值放入request范围内。

你可能感兴趣的:(职场,休闲)