初识 struts2 标签

代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Struts2 标签介绍</title>
</head>
<body>
<s:set name="tag" value="#{
    '框架':{'struts','hibernate','spring'},
    '模板':{'bootstrap','angular','velocity'},
    '设计模式':{'创建型设计模式','结构型设计模式','行为型设计模式'}
    }"/>
<h2>UI标签</h2>
<p>1.表单标签</p>
<s:form labelposition="top" action="formTag">
    <s:checkboxlist name="ckl" list="{'struts2','hibernate','spring'}" label="复选框"></s:checkboxlist>
    <s:radio name="rd" list="{'struts2','hibernate','spring'}" label="单选框"></s:radio>
    <s:select name="sl" list="{'struts2','hibernate','spring'}" label="下拉框"></s:select>
    <s:textfield name="tf" label="文本框"></s:textfield>
    <s:password name="pw" label="密码框"></s:password>
    <s:file name="file" label="文件"></s:file>
    <s:updownselect name="us" list="{'struts2','hibernate','spring'}" label="可上下移动的下拉框" selectAllLabel="全选" moveDownLabel="下移" moveUpLabel="上移"></s:updownselect>
    <s:doubleselect name="first" label="级联下拉框" list="#tag.keySet()" doubleList="#tag[top]" doubleName="second"></s:doubleselect>
    <s:optiontransferselect name="otf"  label="可上下左右移动的下拉列表框" leftTitle="框架" rightTitle="模板" list="{'struts2','hibernate','spring'}" doubleList="{'bootstrap','angular','velocity'}" doubleName="tem"></s:optiontransferselect>
    <s:token/>
    <s:submit value="提交"></s:submit>
</s:form>
<hr/>
注意:使用s:doubleselect时必须放在form标签中使用且必须为该form指定action属性
提交表单按f5刷新后会重复提交表单 token是用来防止f5重复提交表单问题  
表单标签主要就介绍这么多  当然还有一些其他的
<hr/>
<p>2.非表单标签</p>
s:actionerror:如果action实例的getActionError方法不为null 则该标签负责输出该方法的系列错误<br/>
s:actionMessage:如果action实例的getActionMessage方法不为null 则该标签负责输出该方法的系列消息<br/>
s:component:生成自定义组件<br/>
s:fielderror:如果action实例中存在表单域的类型转换错误、校验u哦呜,该标签负责输出这些错误提示<br/>
<hr/>

<h2>非UI标签</h2>
<p>1.控制标签</p>
<s:set name="grade" value="70"/>
<ul>
<li>s:if/elseIf/else标签:类似大多数语言的ifelse语句</li>
    <s:if test="#grade>90">
        优秀(grade=${grade})
    </s:if>
    <s:elseif test="#grade>80">
        及格(grade=${grade})
    </s:elseif>
    <s:else>
        不及格(grade=${grade})
    </s:else>

<li>s:iterator标签:用于对集合迭代输出,这里的集合包括set,list,map,数组</li>
    <s:iterator value="{'struts2','hibernate','spring'}" id="kj" status="st">
        <p><s:property value="#st.count"/>.<s:property value="kj"/></p>
    </s:iterator>
    
<li>s:append标签:用于将多个集合对象拼接起来组成一个新的集合</li>
    <s:append var="newList">
        <s:param value="{'struts2','hibernate'}"></s:param>
        <s:param value="{'spring','mybatis'}"></s:param>
    </s:append>
    <s:iterator value="#newList" id="kj" status="st">
        <p><s:property value="#st.count"/>.<s:property value="kj"/></p>
    </s:iterator>

<li>s:generator标签:将指定字符串按给定分隔符分成几个子串</li>
    <s:generator separator="," val="'struts2,hibernate,spring'">
        <s:iterator status="st">
            <s:property/>
        </s:iterator>
    </s:generator>

<li>s:merge标签:同append一样将多个集合对象拼接起来组成一个新的集合,只是产生的顺序有所不同 具体不同看个例子就明白了<br/>两个集合分别是{'struts2','hibernate'},{'spring','mybatis'},append方法如上,merge如下</li>
    <s:merge var="newList">
        <s:param value="{'struts2','hibernate'}"></s:param>
        <s:param value="{'spring','mybatis'}"></s:param>
    </s:merge>
    <s:iterator value="#newList" id="kj" status="st">
        <p><s:property value="#st.count"/>.<s:property value="kj"/></p>
    </s:iterator>
    
<li>s:subset标签:用于取得集合的子集,start下标从0开始</li>
    <s:subset source="{'struts2','hibernate','spring','mybatis','freemarker'}" start="1" count="3">
        <s:iterator status="st">
            <s:property/>
        </s:iterator>
    </s:subset>

<li>s:sort标签</li>
    <s:bean var="mycomp" name="org.lwk.util.mycomp"></s:bean>
    <s:sort source="{'struts2','hibernate','spring','mybatis','freemarker'}" comparator="#mycomp" var="comp"></s:sort>
        <s:iterator status="st" value="#attr.comp">
                <s:property/>
        </s:iterator>
    
</ul>
<hr/>
注意:有些标签生成的集合位于valuestack,因此可以通过s:property取得。标签结束后移出valuestack,如generator和subset等
attr是struts2添加到值栈的上下文取的一个Map(org.apache.struts2.util.AttributeMap)
这个attr包含4个作用域:   Page scope,Request scope,Session scope,Application scope
sort中的var属性将排序后的新集合放入到pagecontext中因此可以通过attr取到值
<hr/>
<p>2.数据标签</p>
<hr/>
<h2>ajax标签</h2>
</body>
</html>


访问http://localhost:8888/ONGL/后:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值