struts2标签库

struts2标签库不依赖于具体的表现层技术,换个说法就是可以和jsp、freemaker等不同的表现层技术结合使用,这就增加了struts2的使用性。

struts2虽然不严格分类,但是为了更好的理解,我们仍然可以将它分为:

UI标签:主要用于生成html元素的标签;

非UI标签:主要用于数据访问和逻辑控制;

ajax标签:用于ajax支持。

UI标签也可以分类:

表单标签:用于生成form元素和其他普通表单元素;

非表单标签:用于生成树、tab页等标签。

非UI标签:

流程控制标签:分之、循环等;

数据访问标签:输出页面valuestack的值、完成国际化等功能struts2标签库_第1张图片

使用标签库也很简单,此处以jsp为例,只需要在页面中加入:<%@ taglib prefix="s" uri="/strut-tags"%>,然后以<s:tagname />方式使用即可。其中,s为标签前缀,类似于jsp的jsp前缀,tagname为标签名,如文本标签text。

非UI标签分为控制标签和数据访问标签,控制标签分为如下9类:

  1. if/else/elseif->类似于java中的if/else/elseif

  2. append/merge-> 用于将多个集合进行拼接

  3. generator-> 用于将字符串解析成集合

  4. iterator->用于将list、map等迭代输出

  5. subset->用于截取集合的部分元素即子集

  6. sort->用于对集合排序

用法举例:

iterator:<s:iterator value="集合" id="id" status="st"></s:iterator>

输出List

<s:iterator value="{'java','c','rust'}" id="id" status="st">
<s:property/>
</s:iterator>

上面的代码将会输出java c rust

输出Map

<s:iterator value="#{'java':'企业级开发','c':'底层开发','rust':'新的系统开发语言'}" id="pro" status="st">
    <s:property value="key"/>
    <s:property value="value"/>
    </s:iterator>

输出:java 企业级开发 c 底层开发 rust 新的系统开发语言

append:

<s:append var="newList">
    <s:param value="#{'java':'企业级开发','c':'底层开发','rust':'新的系统开发语言'}"></s:param>
    <s:param value="#{'苹果','桃子','橘子' }"></s:param>
    </s:append>
    <s:iterator value="newList" id="pro" status="st">
    <s:property value="key"/>
    <s:property value="value"/>
    </s:iterator>

上面是把List和Map拼接,输出结果为:java 企业级开发 c 底层开发 rust 新的系统开发语言 苹果 桃子 橘子,显然List和List、Map和Map也能拼接。

merge标签也是把集合拼接,区别是上面的结果将会变为:java 企业级开发 苹果 c 底层开发 桃子 rust 新的系统开发语言 橘子

generator:用于将指定字符串分成多个字串

<s:generator val="{'苹果','桃子','橘子' }" separator="," var="newList" count="3">
    </s:generator>
    <s:iterator value="#newList">
    <s:property/>
    </s:iterator>

结果为:[苹果 桃子 橘子],其中count表示分隔前三个,separator指定分隔符,指定了var,意味着分隔结果接入了Stack Context,需用“#”前缀访问

未完待续


你可能感兴趣的:(java,struts2,javaee,ssh,javassh)