`

Struts2标签示例

阅读更多

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="com.rao.bean.Sex"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Struts2标签示例</title>
<s:head theme="xhtml"/>
<sx:head parseContent="true"/>
</head>

<body>
    Struts 2.1 Tags
    <br/>
    <br/>
    一、控制标签<br/><hr size="3" color="red">
   
     #、if /elseif/ else @用于逻辑判断<br/>
     <s:set name="bir" value="-12"></s:set>
     <s:if test="#bir>=180 || #bir<0">
     你是何方妖怪?
     </s:if>
     <s:elseif test="#bir<=18 && #bir>=0">
     未成年人不能进入!
     </s:elseif>
     <s:elseif test="#bir<=60 && #bir>=18">
     您已经成年!
     </s:elseif>
     <s:else>
     您已经老了!
     </s:else>
     <br/>--------------------------------------------------------------<br/>
#、append @用于将多个集合合并<br/>
<s:set name="appList1" value="{'111','222','333','444'}"></s:set>
<s:set name="appList2" value="{'aaa','bbb','ccc','ddd'}"></s:set>
<s:append var="newAppList">
<s:param value="appList1"></s:param>
<s:param value="appList2"></s:param>
</s:append>
<s:iterator value="#newAppList">
<s:property/> |
</s:iterator>
   <br/>--------------------------------------------------------------<br/>
#、generator <br/>
generator标签,该标签可以将指定字符串按指定分隔符分割成多个字串。生成的多个字串可以用iterator标签进行迭代输出。可以这么理 解:generator标签将一个字符串转换成一个List集合。在该标签体内,整个临时生成的集合将为Valuestack的顶端,但一旦该标签结束, 生成的集合将被移除Valuestack。generator标签有如下几个属性:
<br/>
1、count属性:指定生成集合中元素的总数。可选属性。<br/>

2、val属性:必填属性,指定被解析的字符串。<br/>

3、separator属性:这是一个必填属性,指定用于分割字符串的分隔符。<br/>

4、converter属性:可选属性,指定一个转换器,转换器负责将生成的集合中的每个字符串转换成对象,通过这个转换器可以将一个含有分隔符的字符串 解析成对象的集合。转换器必须一个继承org.apache.struts2.util.IteratorGenerator.Converter的对 象。
<br/>
5、var属性,可选属性。如果指定了该属性,则将生成的集合保存在Stack Context中。如果不指定该属性,则将生成的集合放入ValueStack的顶端,该标签一结束,生成的集合就被移除。该属性也可替换成id。
<br/>
<s:generator val="'aaa,bbb,ccc,ddd'" separator="," count="2">
<s:iterator>
   <s:property/>
</s:iterator>
</s:generator><br/>

   <br/>--------------------------------------------------------------<br/>
#、iterator 用于迭代数据<br/>
<s:set name="iterList" value="{'aaa','bbb','ccc','ddd'}"></s:set>
<table border="1">
<tr>  
                <td>   索引   </td>  
                <td>   值   </td>  
                <td>   奇?   </td>  
                <td>   偶?    </td>  
                <td>   首?    </td>  
                <td>   尾?    </td>  
                <td> 当前迭代数量    </td>  
            </tr>  

   <s:iterator value="{'aaa','bbb','ccc','ddd','eee','fff'}" begin="1" status="s">
    <tr bgcolor="<s:if test="#s.odd">pink</s:if>">
     <td><s:property value="#s.index"/></td>
     <td><s:property/></td>
     <td><s:property value="#s.even"/></td>
     <td><s:property value="#s.odd"/></td>
     <td><s:property value="#s.first"/></td>
     <td><s:property value="#s.last"/></td>
     <td><s:property value="#s.count"/></td>
    </tr>
   </s:iterator>
</table>


   <br/>--------------------------------------------------------------<br/>
#、merge @和类似:用于将多个集合合并<br/>
<s:set name="merList1" value="{'111','222','333','444'}"></s:set>
<s:set name="merList2" value="{'aaa','bbb','ccc','ddd'}"></s:set>
<s:append var="newMerList">
<s:param value="merList1"></s:param>
<s:param value="merList2"></s:param>
</s:append>
<s:iterator value="#newMerList">
<s:property/> |
</s:iterator>
   <br/>--------------------------------------------------------------<br/>
#、sort @用于排序<br/>
<s:bean var="myComparator" name="com.rao.comparator.MyComparator"></s:bean>
<s:sort comparator="#myComparator" source="{1,45,56,0,345,3}">
<s:iterator>
   <s:property/>,
</s:iterator>
</s:sort>
   <br/>--------------------------------------------------------------<br/>
#、subset @用户截取集合中的子集;   注:decider:可选属性,指定由开发者自己决定是否选中该元素.
<br/>
<s:set name="subList" value="{'@@@','***','&&&','###'}"></s:set >
<s:subset source="#subList" start="1" count="2">
<s:iterator>
   <s:property/>,
</s:iterator>
</s:subset>
   <br/>--------------------------------------------------------------<br/>
       二、数据标签<br/>
      <hr size="3" color="red">
#、action @用于导入一个Action<br/>
使用action标签,可以允许在jsp页面中直接调用Action,在调用Action时候,可以指定需要被调用的Action的name和 namespace.如果指定了executeResult参数的属性值为true,该标签会把Action的处理结果(视图资源)包含到本页面中. 使用action标签指定属性有:
<br/>
id: 可选属性,作为该Action的引用ID   <br/>
  
name:必选属性,指定调用Action    <br/>
   
namespace:可选属性,指定该标签调用Action所属namespace    <br/>
   
executeResult:可选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含.    <br/>
   
ignoreContextParam:可选参数,指定该页面的请求参数是否需要传入调用的Action中,默认值是false,即传入参数.<br/>

s:param是以request方式的值的,而不是以参数传值,所以request.getParameter("")会获取不到值,通过request.getAttribute("")方式可以获取<br/>

<s:action name="tagsAction1" ignoreContextParams="true" executeResult="true" namespace="/com/rao">
   <s:param name="userName" value="'三毛'"></s:param>
</s:action>

   <br/>--------------------------------------------------------------<br/>
#、bean @用于导入一个javaBean,相当于:jsp:useBean 标签<br/>
<s:bean name="com.rao.bean.UserBean" var="user">
   <s:param name="userId" value="1001"></s:param>
   <s:param name="userName" value="'张三'"></s:param>
</s:bean>
userId:<s:property value="#user.userId"/><br>
userName:<s:property value="#user.userName"/>
   <br/>--------------------------------------------------------------<br/>
#、date @用于格式化日期<br/>
<s:set name="dt" value="new java.util.Date()"></s:set>
当期系统时间是:<s:date name="dt" format="yyyy-MM-dd HH:ss:mm"/>
   <br/>--------------------------------------------------------------<br/>
#、debug @用于调试程序,让开发人员一目了然的知道当前请求、值栈、栈中的各项参数<br/>
<s:debug/>
   <br/>--------------------------------------------------------------<br/>
#、i18n @用于访问国际化资源文件的内容<br/>
     1.默认访问全局范围内的资源文件;
     <br>
     <s:text name="welcome">
      <s:param>三毛</s:param>
      <s:param>学习</s:param>
     </s:text>
  
     <hr>
     2.访问包范围内的资源文件;
     <br>
     <s:i18n name="com/rao/action/package">
      <s:text name="welcome">
       <s:param>三毛</s:param>
       <s:param>学习</s:param>
      </s:text>
     </s:i18n>
     <hr>
     3.访问Action范围内的资源文件;
     <br>
     <s:i18n name="com/rao/action/GlobalNativeAction">
      <s:text name="welcome">
       <s:param>三毛</s:param>
       <s:param>学习</s:param>
      </s:text>
     </s:i18n>
   <br/>--------------------------------------------------------------<br/>
#、include @用于导入一个jsp文件,等同于:jsp:include标签<br/>
<s:include value="success.jsp"></s:include>
   <br/>--------------------------------------------------------------<br/>
#、param @用于给指定参数设置值<br/>
<s:bean name="com.rao.bean.UserBean" var="user">
   <s:param name="userId" value="1001"></s:param>
   <s:param name="userName" value="'张三'"></s:param>
</s:bean>
userId:<s:property value="#user.userId"/><br>
userName:<s:property value="#user.userName"/>
   <br/>--------------------------------------------------------------<br/>
#、property @输出结果,很像EL表达式,但是可以依托于OGNL表带是很强大<br/>
同上
   <br/>--------------------------------------------------------------<br/>
#、push @该标签可以把程序员在ActionContext中引用的对像压入valuestack中,为以后访问对象提供了方便<br/>
<s:push value="#request.user"><s:property value="userName"/></s:push>
   <br/>--------------------------------------------------------------<br/>
#、set @用户声明对象或属性<br/>
<s:set name="uName" value="#request.user.userName"></s:set>
<s:property value="#uName"/>,你好啊!
   <br/>--------------------------------------------------------------<br/>
#、text @用户获取国际化资源文件的内容<br/>
请参考 il8n标签
   <br/>--------------------------------------------------------------<br/>
#、url @用于组拼一个请求路径<br/>
<s:url var="url1" action="MyAction" method="add">
   <s:param name="id" value="%{23}"></s:param>
   <s:param name="name" value="%{'tom'}"></s:param>
</s:url>
<s:property value="#url1"/>
<br/>
注意:<br/>  
        <s:set name="myurl" value="'http://www.baidu.com'"></s:set>  
        value以字符处理:   <s:url value="#myurl"></s:url><br>  
        value明确指定以ognl表达式处理:    <s:url value="%{#myurl}"></s:url>  

   <br/>--------------------------------------------------------------<br/>
   
       三、UI标签<br/>
    <hr size="3" color="red">
    <s:form>
    #、checkboxlist @复选框列表<br>
      1> .list 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>  
        name:checkboxlist的名字<br>  
        list:checkboxlist要显示的列表<br>  
        value:checkboxlist默认被选中的选项,checked=checked<br>  
        <s:checkboxlist theme="simple" name="checkbox1" list="{'上网','看书','爬山','游泳','唱歌'}" value="{'上网','看书'}" ></s:checkboxlist>  
        <br>  
      
        2> .Map 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>  
        name:checkboxlist的名字<br>  
        list:checkboxlist要显示的列表<br>  
        listKey:checkbox 的value的值<br>  
        listValue:checkbox 的lablel(显示的值)<br>  
        value:checkboxlist默认被选中的选项,checked=checked<br>  
        <s:checkboxlist theme="simple" name="checkbox2" list="#{1:'上网',2:'看书',3:'爬山',4:'游泳',5:'唱歌'}" listKey="key" listValue="value" value="{1,2,5}" ></s:checkboxlist>  

         <br/>--------------------------------------------------------------<br/>
     #、combobox <br/>
    <s:combobox theme="simple" label="选择你喜欢的颜色" name="colorNames" headerValue="------请选择------" headerKey="1" list="{'红','橙','黄','绿','青','蓝','紫'}" />
<br/>--------------------------------------------------------------<br/>
     #、radio @单选框<br/>
    <%  
            Sex sex1 = new Sex(1,"男");   
            Sex sex2 = new Sex(2,"女");  
            List<Sex> list = new ArrayList<Sex>();   
            list.add(sex1);  
            list.add(sex2);  
            request.setAttribute("sexs",list);   
        %>  
                      这个与checkboxlist差不多;<br>  
        1>.如果集合为javabean:<s:radio theme="simple" name="sex" list="#request.sexs" listKey="id" listValue="name"></s:radio><br>  
        2>.如果集合为list:<s:radio theme="simple" name="sexList" list="{'男','女'}"></s:radio><br>  
        3>.如果集合为map:<s:radio theme="simple" name="sexMap" list="#{1:'男',2:'女'}" listKey="key" listValue="value"></s:radio><br>  
        <hr>  
     <br/>--------------------------------------------------------------<br/>
     #、select @下拉列表框<br/>
     这个与s:checkboxlist差不多;<br>  
        1>.如果集合为javabean:<s:select theme="simple" name="sex" list="#request.sexs" listKey="id" listValue="name"></s:select><br>  
        2>.如果集合为list:<s:select theme="simple" name="sexList" list="{'男','女'}"></s:select><br>  
        3>.如果集合为map:<s:select theme="simple" name="sexMap" list="#{1:'男',2:'女'}" listKey="key" listValue="value"></s:select><br>  
    
     <br/>--------------------------------------------------------------<br/>
     #、doubleselect @级联菜单 <br/>
    <!--   可以用直接指定,当然也可以跟数据库绑定的 -->
     <s:set name="proviList" value="{'江西省','湖北省'}"></s:set>
     <s:set name="jxList" value="{'南昌市','赣州市','九江市','上饶市','鹰潭市'}"></s:set>
     <s:set name="hbList" value="{'武汉市','恩施市','十堰市','荆州市','襄樊市'}"></s:set>
     <s:doubleselect theme="simple" name="provi" doubleList="top=='江西省' ? #jxList : #hbList" list="#proviList" doubleName="city"></s:doubleselect>
     <br/>--------------------------------------------------------------<br/>
     #、optiontransferselect <br/>
     <s:optiontransferselect theme="simple" label="change" name="abc" doubleList="{'111','222','333','444'}" list="{'aaa','bbb','ccc','ddd'}" doubleName="number"></s:optiontransferselect>
     <br/>--------------------------------------------------------------<br/>
     #、updownselect @可上下选择的select <br/>
     <s:updownselect label="selectCity" emptyOption="true" name="selectCity" list="#jxList" headerValue="-Please Select The City-" headerKey="-1"></s:updownselect>
   <br/>--------------------------------------------------------------<br/>
#、sx:datetimepicker @日期选择控件 <br/>
使用步骤:声明:我这里用的是strut 2.1.8.1,在struts2.0的版本中可能有所不同;<br/>
    1.导入struts2-dojo-plugin-2.1.8.1.jar DoJo 插件包;<br/>
    2. 导入标签:<%--@ taglib prefix="sx" uri="/struts-dojo-tags"--%>;<br/>
    3.在需要使用的页面中的head标签之间加上<%-- <sx:head parseContent="true"/> --%>;<br/>
<sx:datetimepicker label="birthday" name="bir" value="#dt"></sx:datetimepicker>
   <br/>--------------------------------------------------------------<br/>
     #、sx:tabbedpanel @选项卡控件 <br/>
    
      <!-- tabbedpanel标签 -->
   <!-- 最简单的选项卡,两个选项卡加载都是本页面 -->
    <hr color="blue">
    <b>最简单的选项卡:</b>
    <br>
          <sx:tabbedpanel id="tab1" beforeSelectTabNotifyTopics="/beforeSelect">
       <sx:div label="Tab 1" >
           Local Tab 1
       </sx:div>
       <sx:div label="Tab 2" >
           Local Tab 2
       </sx:div>
          </sx:tabbedpanel>
  
  
   <!-- 加载其他页面的选项卡 -->
    <hr color="blue">
    <b>加载其他页面的选项卡:</b>
    <br>
    <sx:tabbedpanel id="tab2">
    <sx:div label="Remote Tab 1" href="upload.jsp">
               Remote Tab 1
          </sx:div>
       <sx:div label="Remote Tab 2" href="multipleUpload.jsp" >
               Remote Tab 1
          </sx:div>
    </sx:tabbedpanel>
  
  
   <!-- 设置选项卡底下的内容懒加载,即等需要的时候再加载,使用属性preload="false"-->
    <hr color="blue">
    <b>设置选项卡底下的内容懒加载,即等需要的时候再加载,使用属性preload="false":</b>
    <br>
          <sx:tabbedpanel id="tab3">
       <sx:div label="Remote Tab 1" href="upload.jsp">
           Remote Tab 1
       </sx:div>
       <sx:div label="Remote Tab 2" href="multipleUpload.jsp" preload="false">
           Remote Tab 1
       </sx:div>    
          </sx:tabbedpanel>
  
  
   <!-- 固定大小的选项卡 -->
    <hr color="blue">
    <b>固定大小的选项卡,使用属性cssStyle和doLayout:</b>
    <br>
          <sx:tabbedpanel cssStyle="width: 200px; height: 100px;" doLayout="true" id="tab4">
       <sx:div label="Tab 1" >
           Local Tab 1
       </sx:div>
       <sx:div label="Tab 2" >
           Local Tab 2
       </sx:div>
          </sx:tabbedpanel>
  
  
   <!-- 每次点击选项卡时都重新刷新内容 -->
    <hr color="blue">
    <b>每次点击选项卡时都重新刷新内容,使用属性refreshOnShow:</b>
    <br>
    <sx:tabbedpanel id="tab5">
       <sx:div label="Remote Tab 1" href="upload.jsp" refreshOnShow="true">
           Remote Tab 1
       </sx:div>
       <sx:div label="Remote Tab 2" href="multipleUpload.jsp" refreshOnShow="true">
           Remote Tab 2
       </sx:div>    
    </sx:tabbedpanel>
  
  
  
   <!-- 使得其中一个选项卡失效 -->
    <hr color="blue">
    <b>使得其中一个选项卡失效:</b>
    <br>
           <sx:tabbedpanel id="tab6">
      <sx:div label="Tab 1" >
          Local Tab 1
      </sx:div>
      <sx:div label="Tab 2" disabled="true">
          Local Tab 2
      </sx:div>
          </sx:tabbedpanel>
  
  
   <!-- 设置选项卡在底部显示 (可以是: top, right, bottom, left) -->
    <hr color="blue">
    <b>设置选项卡在底部显示 (可以是: top, right, bottom, left):</b>
    <br>
    <sx:tabbedpanel id="tab7" labelposition="bottom" cssStyle="width:200px;height:100px;" doLayout="true">
       <sx:div label="Tab 1" >
           Local Tab 1
       </sx:div>
       <sx:div label="Tab 2" >
           Local Tab 2
       </sx:div>
    </sx:tabbedpanel>
  
   <!-- 设置选项卡允许关闭,使用属性closeable -->
    <hr color="blue">
    <b>设置选项卡允许关闭,使用属性closeable:</b>
    <br>      
    <sx:tabbedpanel id="tab8">
       <sx:div label="Tab 1" >
           Local Tab 1
       </sx:div>
       <sx:div label="Tab 2" closable="true">
           Local Tab 2
       </sx:div>
    </sx:tabbedpanel>

   <br/>--------------------------------------------------------------<br/>
     #、sx:textarea @textarea控件 <br/>
     <sx:textarea label="简介" value="sx:textareasx:textareasx:<br/>textareasx:textareasx:textareasx:<br/>textareasx:textareasx:<br/>textareasx:textarea"></sx:textarea>
    
     <br/>--------------------------------------------------------------<br/>
     #、sx:tree @树控件 <br/>
     <sx:tree id="tree1" label="根节点">
    <sx:treenode id="tn1" label="财务部" />
    <sx:treenode id="tn2" label="开发部">
        <sx:treenode id="tn3" label="JAVA" />
        <sx:treenode id="tn4" label=".NET" />
    </sx:treenode>
    <sx:treenode id="tn5" label="人事部" />
</sx:tree>
    
</s:form>  
    
</body>
</html>

分享到:
评论

相关推荐

    struts2 标签 示例 完全可运行

    struts2 标签 示例 完全可运行 将该文件放在任何struts2环境下,覆盖index.xml 文件即可运行

    struts常用标签示例

    本示例将深入探讨Struts中常用的标签及其应用。 1. **`&lt;s:form&gt;`** 标签: 这是Struts2中最基本的表单标签,用于创建HTML表单。它可以自动绑定到Action类的属性,提供数据验证等功能。例如: ```jsp 用户名"/&gt;...

    struts2标签使用例子

    在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签的实际示例,可以参考这些示例来理解和学习Struts2标签的用法。通过实践,你会更好地掌握这些标签的功能和用法,从而在开发过程中更加得心应手。

    jsp中struts2.0标签应用示例

    总结来说,"jsp中struts2.0标签应用示例"这个主题主要关注如何在JSP页面中利用Struts2.0提供的标签进行视图层的构建,通过实际例子展示了`&lt;s:form&gt;`、`&lt;s:textfield&gt;`、`&lt;s:password&gt;`、`&lt;s:select&gt;`等常用标签的...

    使用Struts 2标签的注意事项

    如果您想了解更多关于Struts 2标签的用法,可以查看W3School的相关教程,该网站提供了详细的Struts 2标签教程和示例代码。 使用Struts 2标签需要注意配置Struts 2的核心Filter和导入Struts 2标签库。同时,Struts 2...

    Struts2标签使用及API文档

    `struts2.0_zh.chm`是Struts2的中文帮助文档,包含了所有标签的详细解释、属性说明以及使用示例。通过查阅API文档,开发者可以了解每个标签的功能、属性设置以及如何与后台Action进行交互。 4. **标签详解文档** ...

    struts2 标签 tags API 参考文档

    参考文档是开发者理解和使用Struts2标签的关键资源,它详细阐述了每个标签的功能、属性、用法及示例,有助于快速学习和掌握Struts2的视图层开发。 通过深入学习和实践Struts2的标签API,开发者可以有效地提升Web...

    完整struts2文件上传示例

    以下是对"完整Struts2文件上传示例"的详细解释: 1. **配置Struts2框架** 在Struts2中,我们首先需要在`struts.xml`配置文件中添加相关的拦截器(interceptor)来处理文件上传。`struts.multipart.parser`属性应...

    struts2标签教程(中文版)

    Struts2标签是Java Web开发框架Struts2中的一部分,它提供了一种简化JSP页面编写的方式,使得开发者可以通过XML语法来替代繁琐的Java脚本和JSP动作元素。Struts2标签库大大提升了代码的可读性和维护性,使得业务逻辑...

    struts2-tags-API,struts2标签api

    Struts2的标签API文档详细列出了每个标签的用法、属性、示例以及它们如何与Action上下文交互。通过阅读API,开发者可以了解每个标签的完整功能,包括标签的初始化、属性设置、事件处理等。 四、Struts2标签与OGNL ...

    Struts2标签中文文档(html和chm格式)

    这个文档详细列出了所有Struts2标签的用法、属性、事件和示例,对于初学者和经验丰富的开发者都是极其宝贵的资源。 另一方面,`struts2-tags-API.zip`可能是HTML版本的文档源文件,或者是一个包含多个HTML文件的...

    很全的Struts2标签库示例

    本资源“很全的Struts2标签库示例”涵盖了Struts2框架中的各种常用标签,对于初学者或者想要提升技能的开发者来说,是非常有价值的参考资料。 1. **Action标签**:这是用来调用Action的标签,可以指定Action的名字...

    struts2 自定义标签

    在Struts2中,自定义标签是提高代码可读性和可维护性的重要工具。本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。 一、Struts2自定义标签的概念 自定义标签是JSP的一种扩展,允许...

    struts2标签库详解(非常不错)

    Struts2标签库API文档详细列出了每个标签的属性、用法和示例,帮助开发者理解如何有效利用这些标签。通过查阅`struts2-tags-API`文件,你可以找到每个标签的详细信息,包括它们的属性、标签体内容、默认行为等。此外...

    struts2标签下的用户注册

    2. **Struts2标签**:Struts2提供了一系列自定义标签来简化视图层的开发。例如,我们可以使用`&lt;s:textfield&gt;`标签来创建输入框,`&lt;s:password&gt;`标签用于密码输入,`&lt;s:submit&gt;`标签则用于提交表单。 ```jsp ...

    Struts2标签详解及具体实例解析

    ### Struts2标签详解及具体实例解析 #### 一、概述 Struts2是一个基于MVC模式的开源框架,它提供了丰富的标签库来简化Web应用的开发过程。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态网页。...

    struts2标签详解与实例

    Struts2标签详解与实例 在Java Web开发中,Struts2框架因其强大的MVC(模型-视图-控制器)架构而备受青睐。Struts2提供了丰富的标签库,简化了视图层的开发,使开发者可以更加专注于业务逻辑。本文将深入探讨Struts...

    Struts标签库 Struts 标签库

    Struts2标签库是Java开发Web应用程序时常用的一个强大工具,尤其在构建MVC(Model-View-Controller)架构的应用程序中发挥着重要作用。Struts2框架提供了丰富的自定义标签库,极大地简化了视图层的开发,使得开发者...

    struts2标签之列求和

    ### Struts2 标签之列求和 在Struts2框架中,处理表单、迭代数据等功能时,经常需要用到各种内置标签。其中,`&lt;s:iterator&gt;` 标签常用于循环显示列表数据,而结合`&lt;s:set&gt;`标签可以实现对列表中的数值进行求和操作...

Global site tag (gtag.js) - Google Analytics