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

Struts的标签--实例

2015-10-28 10:34 423 查看
Struts的标签--实例对于一些标签中实例应用

代码下载链接:点击打开链接

参考文档下载链接:点击打开链接

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

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

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>zhangvalue的标签</title>

<meta http-equiv="Content-Type" content="html/text;charset=UTF-8">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

</head>

<body>
<form >
<h1>zhangvalue的checkboxlist标签</h1>
<h3>checkboxlist(多选框)标签:用到list可以是指定的"</h3>
<s:checkboxlist name="b" label="选择你最喜欢的课程:"
labelposition ="top" list ="#{'java':'java','c++':'c++','javaee':'javaee','
database':'数据库' }"
listKey="key"
listValue="value"/></br>
<h3>checkboxlist标签:用到list可以不是指定的"</h3>
<s:checkboxlist name="c"
label="选一个你最喜欢的老师:" list ="sts"
listKey="sno" listValue="sname"/></br>
<h1>zhangvalue的select标签</h1>
<h3>select标签:指定list的,也可不指定"</h3>
<s:select
mutiple ="true"
list="sts" listkey="sno" listValue="sname"/>
sno:<s:textfield name="sno" />
<s:hidden name="sname" /></br>

<h1>zhangvalue的radio标签</h1>
<h3>radio(单选框)标签:指定list"</h3>
<s:radio name="c" list="sts" listkey="sno" listValue="sname"/></br>

<h1>zhangvalue的set标签</h1>
<h3>set标签:指定value的值"</h3>
<s:set var="c" value="33"/>
c:<s:property value="%{#c+1})"/>
c:<s:property value="#c+1"/></br>

<h1>zhangvalue的Date标签</h1>
<h3>Date标签:指定format="yyyy年MM月dd日"</h3>

<s:date name="d" format="YYYY-MM-dd"/>

</form>

<%-- <s:datetimepicker name="d" label ="选择时间"/> --%>
<h1>zhangvalue的bean标签</h1>

<h3>没有指定id属性,bean标签创建的Student对象被放到值栈的顶部</h3>
<s:bean name="org.soft.model.student">
<s:param name="sname" value="'zhangvalue'"/>
<s:param name="sno" value="'201322450805'"/>
用户名:<s:property value="sname"/><br> <!-- 可以正常输出sname属性 -->
邮箱:<s:property value="sno"/> <!-- 可以正常输出sno属性 -->
</s:bean>
<p>
用户名:<s:property value="sname"/><br> <!-- student对象已从栈顶删除,输出为空-->
学号:<s:property value="sno"/> <!-- student对象已从栈顶删除,输出为空-->

<h3>指定了id属性,bean标签创建的Student对象被放到值栈的顶部和OgnlContext中</h3>
<s:bean name="org.soft.model.Student" id="student">
<s:param name="sname" value="'zhangvalue'"/>
<s:param name="sno" value="'201322450805'"/>
用户名:<s:property value="sname"/><br> <!-- 可以正常输出sname属性 -->
学号:<s:property value="sno"/> <!-- 可以正常输出sno属性 -->
</s:bean></br>
<p>
<!-- 访问保存到OgnlContext中的student对象 -->
用户名:<s:property value="#student.sname"/><br> <!-- 可以正常输出student对象的sname属性 -->
学号:<s:property value="#student.sno"/></p> </br> <!-- 可以正常输出student对象sno属性 -->
<h1>zhangvalue的combobox标签</h1>
<s:combobox label="请选择你喜欢的老师" list="{'apple','oranger','pear','banana'}" name="fruit"/></br>

<h1>zhangvalue的iterator标签</h1>
<h3>zhangvalue的iterator标签</h3>

<table border ="1" width="200">
<s:iterator value="{'apple','orange','pear','banan'}" id="fruit" status="st">
<tr<s:if test="#st.even">style="background=color.silver"</s:if>>
<td><s:property value="fruit"/></td>
</tr>
</s:iterator>
</table>
<h1>zhangvalue的append标签</h1>
<s:append id="zhang">
<s:param value="{'apple','orange','pear','banana'}"/>
<s:param value="{'chinese','english','french'}"/>
</s:append>
<table border="1" width="400">
<s:iterator value="#zhang" id="fruit" status="st">
<tr <s:if test="#st.even">style="background-corlor:silver"</s:if>>
<td><s:property value="fruit"/></td>
</tr>
</s:iterator>
</table>
<h1>zhangvalue的merge标签</h1>
<s:set var="list1" value="{'one','two','three'}"></s:set>
<s:set var="list2" value="{'red','blue','black'}"></s:set>
<h3>用merge将多个列表组合在一起迭代</h3>
<s:merge var="alllist2">
<s:param value="#list1"></s:param>
<s:param value="#list2"></s:param>
</s:merge>
<s:iterator value="%{#alllist2}">
<s:property/>
</s:iterator>
<h1>zhangvalue的action标签</h1>
<h3>不执行结果,调用ZhangAction的doDefault()方法,获取请求对象中的greeting属性</h3>
<s:action name="zhangvalue!default" executeResult="false" namespace="/"/>
<!-- 获取请求对象中的greeting属性 -->
<s:property value="#attr.greeting"/>
<h1>zhangvalue的if-else if-else标签</h1>
<form action="hello">
<label for="name">请选择一个老师</label><br/>
<select name="name">
<option name="Mike">Mike</option>
<option name="Jason">Jason</option>
<option name="Mark">Mark</option>
</select>
<input type="submit" value="Say Hello"/>
<s:if test="name=='Mike'">
You have selected '白老师'.
</s:if>
<s:elseif test="name=='Jason'">
You have selected '曹老师'
</s:elseif>
<s:elseif test="name=='Mark'">
You have selected '王老师'
</s:elseif>
<s:else>
You have not selected '"王老师"' or '曹老师'or'白老师'.
</s:else>
</form>
<h1>zhangvalue的generator标签</h1>
<h3>利用generator拆分字符串,在外部用iterator迭代输出</h3>
<s:generator val="%{'red','blue','green','black'}" separator="," count="3" var="gen">
<s:iterator value="#gen">
<s:property/><br>
</s:iterator>
</s:generator>
<h3>自定义拆分字符串</h3>
<s:generator val="%{'red','blue','green','black'}" separator="," converter="%{myConverter}">
<s:iterator>
<s:property/><br>
</s:iterator>
</s:generator>
<h1>zhangvalue的url-a标签</h1>
<h4>使用标签a引用url标签生成URL</h4>
<s:a href="http://blog.csdn.net/zhangvalue">
zhangvalue的博客:请点击
</s:a>
<h1>zhangvalue的subset标签</h1>
<s:bean var="myDecider" name="example.Decider.OddDecider"></s:bean>
<s:set var="myList" value="{'1','2','3','4'}"></s:set>
<h3>利用subset从列表中截取子集,起始索引为2,截取3个元素</h3>
<s:subset source="#myList" start="2" count="3">
<s:iterator>
<s:property/>
</s:iterator>
</s:subset>
</body>
</html>
如果还需要看这个doc版本如下:

数据标签
一. <s:property>标签

  property标签用于输出指定值:

(1)default:可选属性,如果要输出的属性值为null,则显示该属性指定值。

(2)escape:可选属性,指定是否格式化HTML代码。

(3)value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值。

(4)id:可选属性,指定该元素的标识。

例:<s:set name=”name” value=”baihuiru”/>

<s:set property value=”#name”/>

二.<s:set>标签

set标签用于将某个值放入指定范围内。例如application,session范围等。

(1)name:必选,重新生成新变量的名字。

(2)scope:可选,指定新变量的存放范围,该属性的取值一般为application,session,request,page或action。如果没有指定该属性,则默认放置在值栈中。

(3)value:可选,指定赋给新变量的值。如果没有指定该属性,则将值栈栈顶的值赋给新变量。

(4)id:可选,指定该元素的引用id。

<!-- 使用bean标签定义一个javaBean实例--!>

<s:bean name="lee.Person" id="p">

<s:param name="name" value="zhangsan"/>

<s:param name="age" value="29"/>

</s:bean>

将p放入默认范围内

<s:set value="#p" name="test"/>

<s:property value="#test.name"/> <br>

<s:property value="#test.age"/> <br>

三.<s:param>标签

param主要用于为其他标签提供参数。

(1)name:可选,指定需要设置参数的参数名。

(2)value:可选,指定需要设置参数的参数值。

(3)id:可选,指定该元素的引用id。

例如,若想在value属性中输入直接量,则可以这样写:

 <s:param name="some">user</s:param>。

四.<s:bean>标签

    bean标签主要用于创建一个JavaBean的实例。创建JavaBean实例时,可以在该标签内使用param标签为该JavaBean实例实例传入属性。如果需要使用param标签为该JavaBean实例传入属性值,则应该为该JavaBean类提供对应的setter方法。如果还希望访问该属性值,则必须为该属性提供getter方法。

(1)name:该属性是必选的,用来指定要实例化的JavaBean的实现类。

(2)id:该属性是可选的,如果指定了该属性,则该JavaBean实例会被放入Stack Context中,从而允许直接通过id属性来访问该JavaBean实例。

例子:

有一个Student类,该类中有name属性,并有其getter和setter方法:

public class Student {

       privateString name;

       publicString getName() {

              returnname;

       }

       publicvoid setName(String name) {

              this.name=name;

       }

}

然后在JSP文件的body体中加入下面的代码:

<s:bean name="Student">

       <s:paramname="name" value="'baihuiru'"/>

   <s:property value="name"/>

</s:bean>

五.<s:action>标签

使用action标签可以允许在JSP页面中直接调用Action。该标签有以下几个属性:

(1)id:该属性是可选的,该属性将会作为该Action的引用标志id。

(2)name:该属性是必选的,指定该标签调用哪个Action。

(3)namespace:该属性是可选的,指定该标签调用的Action所在的namespace。

(4)executeResult:该属性是可选的,指定是否要将Action的处理结果页面包含到本页面。如果值为true,就是包含,false就是不包含,默认为false。

(5)ignoreContextParam:该属性是可选的,指定该页面中的请求参数是否需要传入调用的Action。如果值为false,将本页面的请求参数传入被调用的Action。如为true,不将本页面的请求参数传入到被调用的Action。

例:

<s:action name=”actinName”executeResult=”true”namespace=”/”>

<s:param name=”currentPage”value=”传递的值”></s:param>

</s:action>

六.<s:date>标签

 

date标签主要用于格式化输出一个日期。该标签有如下属性:

(1)format:该属性是可选的,如果指定了该属性,将根据该属性指定的格式来格式化日期。

(2)nice:该属性是可选的,该属性的取值只能是true或false,用于指定是否输出指定日期和当前时刻之间的时差。默认为false,即不输出时差。

(3)name:属性是必选的,指定要格式化的日期值。

(4)id:属性是可选的,指定引用该元素的id值。

(5)nice属性为true时,一般不指定format属性。因为nice为true时,会输出当前时刻与指定日期的时差,不会输出指定日期。当没有指定format,也没有指定nice="true"时,系统会采用默认格式输出。其用法为:

<s:date name="指定日期取值" format="日期格式"/><!-- 按指定日期格式输出 -->

<s:date name="指定日期取值" nice="true"/><!-- 输出时间差 -->

<s:date name="指定日期取值"/><!—默认格式输出-->

例子:

<s:datename="person.birthday" format="dd/MM/yyyy" />

<s:datename="person.birthday" format="%{getText('some.i18n.key')}" />

<s:datename="person.birthday" nice="true" />

<s:date name="person.birthday" />

七.<s:include>标签

include标签用于将一个JSP页面或一个Servlet包含到本页面中。该标签有如下属性:

(1)value:该属性是必选的,指定需要被包含的JSP页面或Servlet。

(2)id:该属性是可选的,指定该标签的id引用。

用法如下:

<s:include value="JSP或Servlet文件" id="自定义名称"/>

例:

<h2>使用s:clude标签来包含目标页面</h2>

<s:include value=”include-file.jsp”/>

<!-使用s:include标签来包含其他页面,并且传入参数-->

<s:include value=”include-file.jsp”/>

  <s:param name=”author” value=”yeeku”/>

</s:include>

八.<s:url>标签

 1,用于生成一个URL地址,

    寻找url标签库<%@taglib url="/struts-tags" prefix="s"%>

  2,例:<s:urlaction=”helloworld_add” namespace=”/test”><s:param name=”personid”value=”22”/></s:url>

      生成类似路径:/struts/test/helloworld_add.action?personid=22

  3,  url标签有个特点:value=”#myurl”输出的是字符串,value=”%{#myurl}”输出的才是ognl表达式。

      例:<s:set name=”myurl” value=”http:/www.shop.net”/>

          <s:url value=”#myurl” /><br>

          <s:urlvalue=”%{#myurl}” />

          输出结果:

          #myurl

          http:/www.shop.ne

控制标签
    九.<s:if>/<s:elseif>/<s:else>标签
这3个标签可以组合使用,但只有if标签可以单独使用,而elseif和else标签必须与if标签结合使用。if标签可以与多个elseif标签结合使用,但只能与一个else标签使用。其用法格式如下:
<s:set name="month" value="1" />
< s:if test="#month>0 &&month<=3">
 第一季度
</s:if>
< s:elseif test="#month>3 &&month<=6">
 第二季度
 </s:elseif>
< s:elseif test="#month>6 &&month<=9">
 第三季度
</s:elseif>
< s:elseif test="#month>9 &&month<=12">
 第四季度
</s:elseif>
< s:else> 输入错误 </s:else>
十.<s:iterator>标签

Iterator标签用于对集合进行迭代,这里的集合包含List,Set和数组

例:<s:setname=”list” value=”{‘aa’,’bb’,’cc’}”/>

        <s:iteratorvalue=”#list” status=”st”>

            <fontcolor=<s: if test=”#st.odd”>green</s:else>blue</s:else>>

            <s:property /></font><br>

        </s:iterator>

(1)value: 可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。

(2)id:可选属性,指定集合里元素的id(已被标注为过时)。

(3)status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:

    int getCount(),返回当前迭代了几个元素。

    int getIndex(),返回当前迭代元素的索引。

    bolean isEven(),返回当前被迭代元素的索引是否为偶数

    boolean isOdd(),返回当前被迭代元素的索引是否为奇数

    boolean isFirst(),返回当前被迭代元素是否为第一个元素

    boolean isLast(),返回当前被迭代元素是否为最后一个元素

         </s:else>

十一,<s:append>标签

用于将多个集合对象拼接在一起,必需指定一个id属性,以确定拼接生成的新属性的名称

例:<%@ page language="java"pageEncoding="utf-8"%>

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

<html>

<head>

    <title>控制标签</title>

</head>

<body>

<s:appendid="newList">

             <s:paramvalue="{'apple','orange','pear','banana'}"/>

             <s:param value="{'chinese','english','french'}"/>

           </s:append>

           <table border="1"width="200">

                  <s:iteratorvalue="#newList" id="fruit" status="st">

                         <tr <s:iftest="#st.even">style="background-color:silver"</s:if>>

                          <td><s:propertyvalue="fruit"/></td>

                   </tr>

            </s:iterator>

     </table>

</body>

</html>

十二.<s:merge>标签

与<s:append>标签用法相似,只是采用的拼接方式不同。假设有2个集合,第一个集合包含3个元素,第二个集合包含2个元素,分别用append标签和merge标签方式进行拼接,它们产生新集合的方式有所区别。

大部分的表单标签和HTML表单元素是一一对应的关系,如下面的代码片段:

<s:form action="login.action" method="post"/>

对应着:

<form action="login.action"method="post"/>

 <s:textfield name="username" label="用户名" />

对应着:

用户名:<input type="text" name="username">

 <s:password name="password" label="密码"/>

对应着:

密码:<input type="password" name="pwd">

还有下面这种情况,如果有这样一个JavaBean类,类名为“User”,该类中有两个属性:一个是username;另一个是password,并分别生成它们的getter和setter方法,在JSP页面的表单中可以这样为表单元素命名:

<s:textfield name="user.username" label="用户名" />

<s:password name="user.password" label="密码"/>

表单标签
十三,<s:checkboxlist>复选框

 1.如果集合为list

       <s:checkboxlist name=”list”  list=”{‘a’,’b’,’c’,’d’}”value=”{‘a’,’b’}”/>

       生成如下HTML代码:

       <inputtype=”checkbox” name=”list” value=”a”checked=”checked”/><lable>a<lable>

       <input type=”checkbox” name=”list” value=”b”checked=”checked”/><lable>b<lable>

       <input type=”checkbox” name=”list”value=”c” /><lable>c<lable>

        <input type=”checkbox”name=”list” value=”d” /><lable>a<lable>

 2,如果集合为MAP

        <s:chckboxlist name=”map”list=”#{1:’aa’,2:’bb’,3:’cc’}” listKey=”key” listValue=”value” value=”{1,2}”/>

       生成如下HTML代码:

      <input type=”checkbox”name=”map” value=”1” checked=”checked”/><lable>aa<lable>

      <input type=”checkbox”name=”map” value=”2” checked=”checked”/><lable>bb<lable>

       <input type=”checkbox”name=”map” value=”3” /><lable>cc<lable>

       listKey=“key”获得的是1,2,3值,并把其作为复选框中value的值,listValue=”value” 作为<lable>里面的值。value=”{1,2}”为选定的选项

 3,如果集合里存放的是javabean

        <%

         Personperson1=new Person(1,”第一个”);

         Personperson2=new Person(2,”第二个”);

        List<Person>list=new ArrayList<Person>();

         list.add(person1);

         list.add(person2);

        request.setAttribute(“persons”,list);

%>

<s:checkboxlist name=”beans” list=”#request.person”listKey=”personid”  lisyValue=”name”/>

Person和name为Person的属性,生成如下HTML代码:

<inputtype=”checkbox” name=”beans” value=”1”/><lable>第一个</lable>

<inputtype=”checkbox” name=”beans” value=”2”/><lable>第二个</lable>

4.<s:checkboxlist label="请选择你喜欢的水果" list="{'apple','oranger','pear','banana'}"name="fruit">

</s:checkboxlist>

或者为:

<s:checkboxlistlabel="请选择你喜欢的水果" list="#{1:'apple',2:'oranger',3:'pear',4:'banana'}"name="fruit">

</s:checkboxlist>

   这两种方式的区别:前一种根据name取值时取的是选中字符串的值;后一种在页面上显示的是value的值,而根据name取值时取的却是对应的key,这里就是1、2、3或4。

十四.<s:combobox>标签

    combobox标签生成一个单行文本框和下拉列表框的组合。两个表单元素只能对应一个请求参数,只有单行文本框里的值才包含请求参数,下拉列表框只是用于辅助输入,并没有name属性,故不会产生请求参数。用法举例:

<s:combobox label="请选择你喜欢的水果" list="{'apple','oranger','pear','banana'}"name="fruit">

</s:combobox>

十五.<s:datetimepicker>标签

    datetimepicker标签用于生成一个日期、时间下拉列表框。当使用该日期、时间列表框选择某个日期、时间时,系统会自动将选中日期、时间输出指定文本框中。用法举例:

<s:form action=""method="">

       <s:datetimepickername="date" label="请选择日期"></s:datetimepicker>

</s:form>

十六.<s:select>,下拉选择框

   select标签用于生成一个下拉列表框,通过为该元素指定list属性的值,来生成下拉列表框的选项。用法举例:

<s:select list="{'apple','oranger','pear','banana'}"

label="请选择你喜欢的水果"></s:select>

或者为:

<s:select list="fruit"list="#{1:'apple',2:'oranger',3:'pear',4:'banana'}"

listKey="key" listValue="value"></s:select>

十七.<s:radio>标签

    radio标签的用法与checkboxlist用法很相似,唯一的区别就是checkboxlist生成的是复选框,而radio生成的是单选框。用法举例:

<s:radio label="性别" list="{'男','女'}"name="sex"></s:radio>

或者为:

<s:radio label="性别" list="#{1:'男',0:'女'}"name="sex">

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