Struts2总结 – 常用的标志(Tag)总结

要在JSP中使用Struts 2.0志,先要指明志的引入。通JSP的代部加入以下代可以做到点。

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

 

严格上来说,没有分类,所有标志都在URI“/struts-tags”命名空间下,不过,我们可以从功能上将其分为两大类:非UI标志和UI标志。

 

[UI标志]

 

1. ifelseifelse

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

   <body>
        <h3>Condition Flow</h3>            
        <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 her </s:elseif>
        <s:else> Other's file here </s:else>        
    </body>

 

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>
    <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>
    </body>
</html> 

 

3. i18n (加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包)

    <body>
        <h3>
            <s:i18n name="ApplicationMessages">
                <s:text name="HelloWorld" />
            </s:i18n>
        </h3>
    </body>

 

4. include (包含一个servlet的输出(servletjsp的页面))

    <body>
        <h3>Interator Page</h3>
        <s:include value="/condition.jsp">
            <s:param name="name">Max</s:param>
        </s:include>
        <h3>i18n</h3>
        <s:include value="/i18n.jsp" />
    </body>    

 

5. param (为其他标签提供参数,比如include标签和bean标签. 参数的name属性是可选的,如果提供,会调用Component的方法addParameter(String, Object), 如果不提供,则外层嵌套标签必须实现UnnamedParametric接口(TextTag))

value的提供有两种方式,通value性或者标签text,不同之看一下例
<param name=”color”>blue</param> <!—(A) -->
<param name=”color” value=”blue”></param> <!—(B) -->
(A)
参数值会以String的格式放入statck.

(B)参数值会以java.lang.Object的格式放入statck.

 

6. set (set标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。其在两种情况下非常有用: 复杂的表达式很耗时 (性能提升) 或者很难理解 (代码可读性提高))  (参考例子一)

7. text (支持国际化信息的标签。国际化信息必须放在一个和当前action同名的resource bundle,如果没有找到相应message,tag body将被当作默认message,如果没有tag body,messagename会被作为默认message)  (参考例子三)

 

8. url (该标签用于创建url,可以通过"param"标签提供request参数includeParams的值时'all'或者'get', param标签中定参数将,也就是覆盖其他同参数)

 <body>
        <h3>URL</h3>            
        <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>
    </body>

 

9. property (得到'value'的属性,如果value没提供,默认为堆栈顶端的元素)  (参考例子二)

 

[UI标志]

UI标志又可以分为表单UI和非表单UI两部分。表单UI部分基本与Struts 1.x相同,都是对HTML表单元素的包装。不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepickerdoubleselecttimepickeroptiontransferselect等。因为这些标志很多都经常用到,而且参数也很多,要在一篇文章详细说明并非易事

要深入了解志,可以到以下看以下址:
http://wiki.javascud.org/display/ww2cndoc/Tags WebWork2文
中文化计划(中文)
http://cwiki.apache.org/WW/tag-reference.html Tag Developers Guide(英文)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值