您的位置:首页 > 编程语言 > Java开发

初识 struts2 标签

2015-04-17 20:05 232 查看
代码如下:

<%@ 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/后:







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2 标签 ongl