`
阅读更多
 

最近做毕业设计用到Struts2 的标签库,遇到一些比较复杂的数据显示,个人还是比较喜欢用tag显示的,Struts2 tags内容丰富,但是所提供的文档不是很详细(个人认为)在showcase下的例子如:<s:select /> <s:doubleselect /> <s:updownselect /> <s:optiontransferselect />等都是一些简单的值显示,在实际的开发中并没有那么简单,如果我们要迭代显示ListMapSet里的值,我们该怎样做呢?

   
看看html里的例子,

<select name="sex">

    <option value="man"></option>

    <option value="women"></option>

</select>

Sex表示提交的nameman/women是对应页面显示提交后所代表的值,男/女则为页面最终看到的值

   
而如果我们要显示一个List集合里的数据该怎么做呢?
   
看下面的Jsp页面:

<select name="department">

    <%

       Department department = null;

       List list = (List) request.getAttribute("list");

       Iterator iter = list.iterator();

       while (iter.hasNext()) {

           department = (Department) iter.next();

    %>

    <option value="<%=department.getDep_name() %>"><%=department.getDep_name()%>&nbsp;&nbsp;&nbsp;</option>

    <%

    }

    %>

</select>

迭代的是Department的属性dep_name,这样显示显得很麻烦,如果Iterator输出可能会好点,采用JSTL输出:

<c:forEach var="department" items="" varStatus="status">

    <tr>

       <td>${status.dep_name }</td>

       <td>${status.dep_id }</td>

       <td>......</td>

    </tr>

</c:forEach>


现在看看Struts2的例子:这是Strust2 showcase例子

<%@ page contentType="text/html; charset=UTF-8"%>

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

<html>

<head>

<title>Test</title>

</head>

<body>

<center><br>

<br>

<br>

<hr>

<br>

<br>

<s:form action="test_showPost" method="post" theme="simple">

    <table>

       <tr>

           <td><s:select

              list="{'Windows','Linux','Java','.net','Pertl','PHP'}"

              name="program" tooltip="select your program" /></td>

       </tr>

        <tr>

           <td><s:select list="posts" name="post.post_name"

              listKey="post_name" listValue="post_name" headerKey="0"

              headerValue="请选择你的职位" required="true"></s:select></td>

       </tr>

       <tr>

           <td><s:checkboxlist name="skills1" label="Skills 1"

              tooltip="bulktree" list="{'Java', '.Net', 'RoR', 'PHP' }"

              value="{'Java', '.Net' }" /></td>

       </tr>

       <tr>

           <td><s:checkboxlist name="skills2" label="Skills 2"

              tooltip="bulktree" list="#{1:'Java', 2:'.Net', 3:'RoR', 4:'PHP' }"

              listKey="key" listValue="value" value="{1, 2, 3 }" /></td>

       </tr>

       <tr>

           <td><s:doubleselect label="doubleselect test1" name="menu"

              list="{'fruit','other'}" doubleName="dishes"

              doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />

           </td>

       </tr>

       <tr>

           <td><s:updownselect label="Favourite Countries"

              list="#{'england':'England', 'america':'America', 'germany':'Germany'}"

              name="prioritisedFavouriteCountries" headerKey="-1"

              headerValue="--- Please Order Them Accordingly ---"

              emptyOption="true" /></td>

       </tr>

       <tr>

           <td><s:optiontransferselect

              tooltip="Select Your Favourite Cartoon Characters"

              label="Favourite Cartoons Characters"

              name="leftSideCartoonCharacters" leftTitle="Left Title"

              rightTitle="Right Title" list="{'Popeye', 'He-Man', 'Spiderman'}"

              multiple="true" headerKey="headerKey"

              headerValue="--- Please Select ---" emptyOption="true"

              doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"

              doubleName="rightSideCartoonCharacters"

              doubleHeaderKey="doubleHeaderKey"

              doubleHeaderValue="--- Please Select ---" doubleEmptyOption="true"

              doubleMultiple="true" /></td>

       </tr>

       <tr>

           <td><s:submit></s:submit></td>

       </tr>

    </table>

</s:form></center>

</body>

</html>

注意:上面的代码不需要用table布局,Struts2内置了表格功能,run显示如下:

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <img height="415" alt="" src="http://www.blogjava.net/images/blogjava_net/bulktree/clip_image002.jpg" width="553" border="0"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype>


   
上面的代码都是一些简单的值显示,实际的开发所出现的数据都不是现成的。大家可能注意了这段代码:
   

<tr>

           <td><s:select list="posts" name="post.post_name"

              listKey="post_name" listValue="post_name" headerKey="0"

              headerValue="请选择你的职位" required="true"></s:select></td>

       </tr>


下来就来说说Struts2 tag怎么显示List/Map/Set里的值:
采用POJO方式访问 VO是一些最基本的getter/setter省略不写。
    action
代码:

package com.bulktree.AutoOffice.action;

import java.util.List;

import java.util.Map;

import com.bulktree.AutoOffice.factory.DAOFactory;

import com.bulktree.AutoOffice.vo.Client;

import com.bulktree.AutoOffice.vo.ClientUser;

import com.bulktree.AutoOffice.vo.User;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

public<span styl

分享到:
评论

相关推荐

    j2ee-struts2-Select_DoubleSelect.rar_struts2 doubleselect

    在Struts2中,我们有许多内置的标签来帮助开发者更方便地处理表单元素,例如`&lt;s:select&gt;`和`&lt;s:doubleselect&gt;`就是其中两个用于创建下拉列表的标签。下面我们将详细探讨这两个标签以及如何在J2EE项目中使用它们。 1...

    Struts2级联doubleselect

    在Struts2中,级联(Cascading)功能主要用于处理关联数据,例如一个国家对应多个城市,一个城市对应多个区,这种层级关系的数据在用户界面中通常通过级联选择框(dropdown list)来呈现。Doubleselect是Struts2提供...

    Struts2-Double-Select-Example

    "Struts2-Double-Select-Example"这个项目是Struts2框架的一个实例,用于演示如何在Web表单中实现双层选择框功能,这在处理复杂数据关联和用户选择时非常有用。 首先,我们需要了解Struts2框架的核心组件和工作原理...

    Struts2标签列表及说明

    Struts2 标签列表及说明 Struts2 是一个基于 Java 语言的 Web 应用程序 Framework,它提供了许多标签来帮助开发者快速构建 Web 应用程序...这些标签都是 Struts2 框架中提供的,用于帮助开发者快速构建 Web 应用程序。

    struts2 标签库 帮助文档

    Struts 2 标签库(文档手册) Tags-API-CLSW-JSP &lt;%@ taglib prefix="s" uri="/struts-tags" %&gt; 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. &lt;s:a href=""&gt;&lt;/s:a&gt;-...

    struts2标签介绍

    在Struts2中,所有的标签都统一在`&lt;s&gt;`前缀下,通过引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`就可以在页面上使用这些标签。 **A组标签:** 1. `&lt;s:a&gt;` - 用于创建超链接,与HTML的`&lt;a&gt;`标签类似,可以...

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

    本文将详细介绍Struts2中的常用标签及其用法,并通过具体的实例来帮助理解。 #### 二、Struts2标签库详解 ##### 1. `&lt;s:a&gt;` 超链接标签 - **用途**:创建一个超链接。 - **示例代码**: ```xml 链接文字&lt;/s:a&gt; ...

    Struts_2_标签库(文档手册)_Tags-API-CLSW-JSP

    标题和描述中提到的知识点是关于Struts 2框架中的标签库使用,特别是与JSP相关的部分。Struts 2框架是一种基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,用于构建动态、可扩展的Web应用。其标签...

    Struts2+API+标签全解+网页说明

    doubleselect标签:生成一个相互关联的列表框,该标签由两个下拉选择框组成。 datetimepicker标签:生成一个日期、时间下拉列表框。 head标签:生成HTML页面的HEAD部分。 file标签:在页面上生成一个上传文件元素...

    struts2标签学习

    在Struts1中,标签库被划分为HTML、Tiles、Logic和Bean等部分,但在Struts2中,这些功能被更好地整合在一起。 UI标签主要分为表单UI和非表单UI两部分。表单UI是对HTML表单元素的封装,如文本框(textfield)、日期...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_5_标签 共113页.pptx

    例如,下面的代码展示了如何在Struts2中使用OGNL设置变量和生成URL: ```jsp &lt;constant name="struts.ognl.allowStaticMethodAccess" value="true" /&gt; (@java.lang.System@currentTimeMillis())"/&gt; ...

    struts2标签整理

    Struts2提供了丰富的标签库(Tag Library),使得开发人员能够更方便地在JSP页面上进行动态内容展示和数据绑定等操作。 #### 二、标签库介绍 Struts2的标签库主要包括表单标签、条件判断标签、循环标签、国际化标签...

    struts2标签大全

    在Struts2中,标签库(Tag Library)扮演着非常重要的角色,它们为开发者提供了丰富的功能,帮助快速构建动态网页。下面将详细介绍Struts2标签库中的各种标签及其用法。 #### 1. `&lt;s:a&gt;` - 链接标签 该标签用于...

    struts2标签大全详解

    Struts2是一个强大的MVC框架,它提供了丰富的标签库,使得开发者可以更加...这些标签极大地简化了Struts2应用中的视图层开发,提高了代码的可读性和维护性。通过熟练掌握这些标签,开发者能更高效地构建动态Web应用。

    Struts2常用标签

    本文将详细介绍Struts2中的一些常用标签及其用法。 #### 二、Struts2标签库概览 Struts2标签库主要包括以下几个方面: - **HTML标签**:用于创建HTML表单元素。 - **控制结构标签**:用于实现条件逻辑和循环。 - ...

    struts2.0 标签清单

    这三个标签构成了Struts2中的条件语句,可以基于表达式的真假来控制内容的显示。 ```xml Welcome back! &lt;/s:if&gt; Please login. &lt;/s:else&gt; ``` ### 14. `&lt;s:fielderror&gt;` 标签 `&lt;s:fielderror&gt;` 标签用于显示...

    struts2常用标签

    以下是对Struts2中一些常用标签的详细说明: 1. `&lt;s:a&gt;`:这是一个超链接标签,用于创建HTML的`&lt;a&gt;`标签。通过指定`href`属性,可以链接到指定的URL。与HTML的`&lt;a&gt;`标签不同,它还可以结合Struts2的Action映射,...

    struts 2标签库介绍

    ### Struts 2 标签库介绍 Struts 2 是一个基于 Java 的开源 Web 应用框架,它继承了 Struts 1 的优点,并在灵活性、易用性以及功能扩展方面进行了大量的改进。其中一个重要特性是其丰富的标签库,这些标签能够帮助...

Global site tag (gtag.js) - Google Analytics