最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Struts2学习之二--Struts2标签介绍

IT圈 admin 56浏览 0评论

2024年7月22日发(作者:葛妙柏)

Struts2学习之二--Struts2标签介绍

12已有 14625 次阅读 2009-07-12 18:53

[顶]3G移动--Android开发工程师全能班

(转) Struts2学习之二--Struts2标签介绍

在上一篇文章《为Struts 2.0做好准备》中,我过于详细地介绍了Struts 2.0

开发环境和运行环境的配置,所以,本文很少涉及的以上两方面的细节。如果,

您看完《为Struts 2.0做好准备》后,还有什么不明白,或者没法运行文中例

子,请联系我。我的E-MAIL:@。

在介绍常用标志前,我想先从总体上,对Struts 1.x与Struts 2.0的标志库(Tag

Library)作比较。

Struts 1.x Struts 2.0

分类

表达式语言

(expression

languages)

将标志库按功能严格上来说,没有分类,所有标志都在URI

分成HTML、Tiles、为“/struts-tags”命名空间下,不过,

Logic和Bean等我们可以从功能上将其分为两大类:非UI

几部分 标志和UI标志

不支持嵌入语言

(EL)

OGNL、JSTL、Groovy和Velcity

以上表格,纯属个人总结,如有所不足或错误,请不吝指正

好了,我要开始介绍“常用”(这里所谓的“常用”,是指在已往工作中使用

Struts里经常用到的)的标志了。

要在JSP中使用Struts 2.0标志,先要指明标志的引入。通过在JSP的代码

的顶部加入以下代码可以做到这点。

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

1. 非UI标志

o

if、elseif和else

描述:

执行基本的条件流转。

参数:

名称

必默

类型

需 认

描述

决定标志里内容是否

显示的表达式

备注

else标志

没有这个

参数

test 是 Boolean

id

用来标识元素的id。在

否 Object/String UI和表单中为HTML的

id属性

例子:

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

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

Condition Flow

Condition Flow

me") + "'" %>" />

Max's file here

Scott's file here

Other's file here

例1

o

iterator

描述:

用于遍历集合(tion)或枚举值(or)。

参数:

名称

必默

类型

需 认

描述

如果设置此参数,一个

IteratorStatus的实例将会压入

每个遍历的堆栈

status 否 String

要遍历的可枚举的(iteratable)

value 否 Object/String 数据源,或者将放入新列表(List)

的对象

id 否 Object/String

用来标识元素的id。在UI和表单

中为HTML的id属性

例子:

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

<%@ page import="" %>

<%@ page import="ist" %>

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

<%

List list = new ArrayList();

("Max");

("Scott");

("Jeffry");

("Joe");

("Kelvin");

ribute("names", list);

%>

Iterator

Names:

    ">

  1. White

例2

o

i18n

描述:

加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action

相关联的资源包。

参数:

名称

必默

类型

需 认

描述

value 是 Object/String

id 否 Object/String

资源包的类路径(如

用来标识元素的id。在UI和表单中

为HTML的id属性

例子:

HelloWorld=Hello Wrold!

例3 classes ties

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

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

Internationization

例3

o

include

描述:

包含一个servlet的输出(servlet或jsp的页面)。

参数:

名称

必默

类型

需 认

String

描述

要包含的jsp或servlet value 是

id 否 Object/String 用来标识元素的id。在UI和表单

中为HTML的id属性

例子:

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

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

Iterator

Interator Page

Max

i18n

例4

o

param

描述:

为其他标签提供参数,比如include标签和bean标签. 参数的name属性是可选的,如果

提供,会调用Component的方法addParameter(String, Object), 如果不提供,则外层

嵌套标签必须实现UnnamedParametric接口(如TextTag)。

value的提供有两种方式,通过value属性或者标签中间的text,

不同之处我们看一下例子:

blue

(A)参数值会以String的格式放入statck.

(B)该值会以的格式放入statck.

参数:

名称

必默

类型

需 认

String

String

Object/String

描述

参数名

value表达式

用来标识元素的id。在UI和表单

中为HTML的id属性

name 否

value 否

id 否

例子:

请参考例4。

o

set

描述:

set标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访

问该变量而不是复杂的表达式时用到。其在两种情况下非常有用: 复杂的表达式很耗时

(性能提升) 或者很难理解 (代码可读性提高)。

参数:

名称

必默

类型

需 认

描述

变量名字

变量作用域,可以为application,

session, request, page, 或

action.

name 是 String

scope 否 String

value 否 Object/String 将会赋给变量的值

id 否 Object/String

用来标识元素的id。在UI和表单

中为HTML的id属性

例子:

请参考例1。

o

text

描述:

支持国际化信息的标签。国际化信息必须放在一个和当前action同名的resource bundle

中,如果没有找到相应message,tag body将被当作默认message,如果没有tag

body,message的name会被作为默认message。

参数:

必默

类型

需 认

String

Object/String

描述

资源属性的名字

用来标识元素的id。在UI和表单

中为HTML的id属性

name 是

id 否

例子:

请参考例3。

o

url

描述:

该标签用于创建url,可以通过"param"标签提供request参数。

当includeParams的值时'all'或者'get', param标签中定义的参数

将有优先权,也就是说其会覆盖其他同名参数的值。

参数: 略

例子:

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

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

URL

URL

i18n

Max

ifelseifelse

例5

o

property

描述:

得到'value'的属性,如果value没提供,默认为堆栈顶端的元素。

参数:

名称

必默

需 认

类型

String

描述

如果属性是null则显示的

default值

是否escape HTML

要显示的值

用来标识元素的id。在UI和

表单中为HTML的id属性

default 否

escape 否 true Booelean

value

id

否 栈顶 Object

否 Object/String

例子:

请参考例2。

2. UI标志

UI标志又可以分为表单UI和非表单UI两部分。表单UI部分基本与Struts 1.x相同,都是对HTML表单元素的包装。

不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepicker、doubleselect、timepicker、

optiontransferselect等。因为这些标志很多都经常用到,而且参数也很多,要在一篇文章详细说明并非易事。

需要深入了解这些标志的朋友,可以到以下查看以下网址:

/display/ww2cndoc/Tags WebWork2文档中文

化计划(中文)

/WW/ Tag Developers Guide

(英文)

本文有相当的内容也来自这两处。

在此,我虽然不能够详细讲述这些标志,但是可以与大家分享一个来Struts 2.0 Show Case一个例子。

/**//*

* $Id: 420385 2006-07-10 00:57:05Z mrdon $

*

* Copyright 2006 The Apache Software Foundation.

*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* /licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or impl

ied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

package se;

import tActionContext;

import Support;

import teable;

import lueStack;

import ist;

import tions;

import ;

import p;

import ;

import ;

import ;

/** *//**

*/

public class UITagExample extends ActionSupport implements Validateabl

e {

private static final long serialVersionUID = -94047

L;

String name;

Date birthday;

String bio;

String favoriteColor;

List friends;

boolean legalAge;

String state;

String region;

File picture;

String pictureContentType;

String pictureFileName;

String favouriteLanguage;

String favouriteVehicalType = "MotorcycleKey";

String favouriteVehicalSpecific = "YamahaKey";

List leftSideCartoonCharacters;

List rightSideCartoonCharacters;

List favouriteLanguages = new ArrayList();

List vehicalTypeList = new ArrayList();

Map vehicalSpecificMap = new HashMap();

String thoughts;

public UITagExample() {

(new Language("EnglishKey", "English Lang

uage"));

(new Language("FrenchKey", "French Langua

ge"));

(new Language("SpanishKey", "Spanish Lang

uage"));

VehicalType car = new VehicalType("CarKey", "Car");

VehicalType motorcycle = new VehicalType("MotorcycleKey", "Moto

rcycle");

(car);

(motorcycle);

List cars = new ArrayList();

(new VehicalSpecific("MercedesKey", "Mercedes"));

(new VehicalSpecific("HondaKey", "Honda"));

(new VehicalSpecific("FordKey", "Ford"));

List motorcycles = new ArrayList();

(new VehicalSpecific("SuzukiKey", "Suzuki"));

(new VehicalSpecific("YamahaKey", "Yamaha"));

(car, cars);

(motorcycle, motorcycles);

}

public List getLeftSideCartoonCharacters()

return leftSideCartoonCharacters;

}

public void setLeftSideCartoonCharacters(List leftSideCartoonCharac

ters) {

{

deCartoonCharacters = leftSideCartoonCharacters;

}

public List getRightSideCartoonCharacters()

return rightSideCartoonCharacters;

}

public void setRightSideCartoonCharacters(List rightSideCartoonChar

acters) {

{

ideCartoonCharacters = rightSideCartoonCharacters;

}

public String getFavouriteVehicalType()

return favouriteVehicalType;

{

}

public void setFavouriteVehicalType(String favouriteVehicalTyp

e) {

iteVehicalType = favouriteVehicalType;

}

public String getFavouriteVehicalSpecific()

return favouriteVehicalSpecific;

}

public void setFavouriteVehicalSpecific(String favouriteVehicalSpec

ific) {

{

iteVehicalSpecific = favouriteVehicalSpecific;

}

public List getVehicalTypeList()

return vehicalTypeList;

}

public List getVehicalSpecificList() {

{

OgnlValueStack stack = ueStack(Servl

uest());

Object vehicalType = lue("top");

if (vehicalType != null && vehicalType instanceof VehicalTyp

e) {

List l = (List) (vehicalType);

return l;

}

return _LIST;

}

public List getFavouriteLanguages()

return favouriteLanguages;

}

public String execute() throws Exception

return SUCCESS;

}

/**//*

public String doSubmit()

return SUCCESS;

{

Getters and Setters */

{

{

}

// === inner class

public static class Language

String description;

String key;

public Language(String key, String description)

= key;

ption = description;

}

public String getKey()

return key;

}

public String getDescription()

return description;

}

}

public static class VehicalType {

{

{

{

{

String key;

String description;

public VehicalType(String key, String description)

= key;

ption = description;

}

public String getKey() { return ; }

{ return ptio

{

public String getDescription()

n; }

public boolean equals(Object obj) {

{ if (! (obj instanceof VehicalType))

return false;

}

else {

return (((VehicalType)obj).getKey());

}

}

public int hashCode()

return de();

{

}

}

public static class VehicalSpecific

String key;

String description;

public VehicalSpecific(String key, String description)

= key;

ption = description;

}

public String getKey() { return ; }

{ return ptio

{

{

public String getDescription()

n; }

public boolean equals(Object obj) {

{ if (! (obj instanceof VehicalSpecific))

return false;

}

else {

return (((VehicalSpecific)obj).getKey());

}

}

public int hashCode()

return de();

}

}

}

例6

{

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

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

UI Tags Example

" tooltipConfig="#{'jsTooltipEnabled':'true'}">

label="Name"

name="name"

tooltip="Enter your Name here" />

tooltip="Select Your Birthday"

label="Birthday"

name="birthday" />

tooltip="Enter your Biography"

label="Biograph"

name="bio"

cols="20"

rows="3"/>

tooltip="Choose Your Favourite Color"

label="Favorite Color"

list="{'Red', 'Blue', 'Green'}"

name="favoriteColor"

emptyOption="true"

headerKey="None"

headerValue="None"/>

tooltip="Choose Your Favourite Language"

label="Favourite Language"

list="favouriteLanguages"

name="favouriteLanguage"

listKey="key"

listValue="description"

emptyOption="true"

headerKey="None"

headerValue="None"/>

tooltip="Choose your Friends"

label="Friends"

list="{'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}"

name="friends"/>

tooltip="Confirmed that your are Over 18"

label="Age 18+"

name="legalAge"/>

tooltip="Choose Your State"

label="State"

name="region" list="{'North', 'South'}"

value="'South'"

doubleValue="'Florida'"

doubleList="top == 'North' ? {'Oregon', 'Washington'} : {'Texas

', 'Florida'}"

doubleName="state"

headerKey="-1"

headerValue="---------- Please Select ----------"

emptyOption="true" />

tooltip="Choose your Vehical"

label="Favourite Vehical"

name="favouriteVehicalType"

list="vehicalTypeList"

listKey="key"

listValue="description"

value="'MotorcycleKey'"

doubleValue="'YamahaKey'"

doubleList="vehicalSpecificList"

doubleListKey="key"

doubleListValue="description"

doubleName="favouriteVehicalSpecific" headerKey="-1"

headerValue="---------- Please Select ----------"

emptyOption="true" />

tooltip="Upload Your Picture"

label="Picture"

name="picture" />

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" />

label="Your Thougths"

name="thoughts"

tooltip="Enter your thoughts here" />

例6

例6 代码片段

2024年7月22日发(作者:葛妙柏)

Struts2学习之二--Struts2标签介绍

12已有 14625 次阅读 2009-07-12 18:53

[顶]3G移动--Android开发工程师全能班

(转) Struts2学习之二--Struts2标签介绍

在上一篇文章《为Struts 2.0做好准备》中,我过于详细地介绍了Struts 2.0

开发环境和运行环境的配置,所以,本文很少涉及的以上两方面的细节。如果,

您看完《为Struts 2.0做好准备》后,还有什么不明白,或者没法运行文中例

子,请联系我。我的E-MAIL:@。

在介绍常用标志前,我想先从总体上,对Struts 1.x与Struts 2.0的标志库(Tag

Library)作比较。

Struts 1.x Struts 2.0

分类

表达式语言

(expression

languages)

将标志库按功能严格上来说,没有分类,所有标志都在URI

分成HTML、Tiles、为“/struts-tags”命名空间下,不过,

Logic和Bean等我们可以从功能上将其分为两大类:非UI

几部分 标志和UI标志

不支持嵌入语言

(EL)

OGNL、JSTL、Groovy和Velcity

以上表格,纯属个人总结,如有所不足或错误,请不吝指正

好了,我要开始介绍“常用”(这里所谓的“常用”,是指在已往工作中使用

Struts里经常用到的)的标志了。

要在JSP中使用Struts 2.0标志,先要指明标志的引入。通过在JSP的代码

的顶部加入以下代码可以做到这点。

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

1. 非UI标志

o

if、elseif和else

描述:

执行基本的条件流转。

参数:

名称

必默

类型

需 认

描述

决定标志里内容是否

显示的表达式

备注

else标志

没有这个

参数

test 是 Boolean

id

用来标识元素的id。在

否 Object/String UI和表单中为HTML的

id属性

例子:

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

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

Condition Flow

Condition Flow

me") + "'" %>" />

Max's file here

Scott's file here

Other's file here

例1

o

iterator

描述:

用于遍历集合(tion)或枚举值(or)。

参数:

名称

必默

类型

需 认

描述

如果设置此参数,一个

IteratorStatus的实例将会压入

每个遍历的堆栈

status 否 String

要遍历的可枚举的(iteratable)

value 否 Object/String 数据源,或者将放入新列表(List)

的对象

id 否 Object/String

用来标识元素的id。在UI和表单

中为HTML的id属性

例子:

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

<%@ page import="" %>

<%@ page import="ist" %>

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

<%

List list = new ArrayList();

("Max");

("Scott");

("Jeffry");

("Joe");

("Kelvin");

ribute("names", list);

%>

Iterator

Names:

    ">

  1. White

例2

o

i18n

描述:

加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action

相关联的资源包。

参数:

名称

必默

类型

需 认

描述

value 是 Object/String

id 否 Object/String

资源包的类路径(如

用来标识元素的id。在UI和表单中

为HTML的id属性

例子:

HelloWorld=Hello Wrold!

例3 classes ties

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

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

Internationization

例3

o

include

描述:

包含一个servlet的输出(servlet或jsp的页面)。

参数:

名称

必默

类型

需 认

String

描述

要包含的jsp或servlet value 是

id 否 Object/String 用来标识元素的id。在UI和表单

中为HTML的id属性

例子:

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

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

Iterator

Interator Page

Max

i18n

例4

o

param

描述:

为其他标签提供参数,比如include标签和bean标签. 参数的name属性是可选的,如果

提供,会调用Component的方法addParameter(String, Object), 如果不提供,则外层

嵌套标签必须实现UnnamedParametric接口(如TextTag)。

value的提供有两种方式,通过value属性或者标签中间的text,

不同之处我们看一下例子:

blue

(A)参数值会以String的格式放入statck.

(B)该值会以的格式放入statck.

参数:

名称

必默

类型

需 认

String

String

Object/String

描述

参数名

value表达式

用来标识元素的id。在UI和表单

中为HTML的id属性

name 否

value 否

id 否

例子:

请参考例4。

o

set

描述:

set标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访

问该变量而不是复杂的表达式时用到。其在两种情况下非常有用: 复杂的表达式很耗时

(性能提升) 或者很难理解 (代码可读性提高)。

参数:

名称

必默

类型

需 认

描述

变量名字

变量作用域,可以为application,

session, request, page, 或

action.

name 是 String

scope 否 String

value 否 Object/String 将会赋给变量的值

id 否 Object/String

用来标识元素的id。在UI和表单

中为HTML的id属性

例子:

请参考例1。

o

text

描述:

支持国际化信息的标签。国际化信息必须放在一个和当前action同名的resource bundle

中,如果没有找到相应message,tag body将被当作默认message,如果没有tag

body,message的name会被作为默认message。

参数:

必默

类型

需 认

String

Object/String

描述

资源属性的名字

用来标识元素的id。在UI和表单

中为HTML的id属性

name 是

id 否

例子:

请参考例3。

o

url

描述:

该标签用于创建url,可以通过"param"标签提供request参数。

当includeParams的值时'all'或者'get', param标签中定义的参数

将有优先权,也就是说其会覆盖其他同名参数的值。

参数: 略

例子:

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

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

URL

URL

i18n

Max

ifelseifelse

例5

o

property

描述:

得到'value'的属性,如果value没提供,默认为堆栈顶端的元素。

参数:

名称

必默

需 认

类型

String

描述

如果属性是null则显示的

default值

是否escape HTML

要显示的值

用来标识元素的id。在UI和

表单中为HTML的id属性

default 否

escape 否 true Booelean

value

id

否 栈顶 Object

否 Object/String

例子:

请参考例2。

2. UI标志

UI标志又可以分为表单UI和非表单UI两部分。表单UI部分基本与Struts 1.x相同,都是对HTML表单元素的包装。

不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepicker、doubleselect、timepicker、

optiontransferselect等。因为这些标志很多都经常用到,而且参数也很多,要在一篇文章详细说明并非易事。

需要深入了解这些标志的朋友,可以到以下查看以下网址:

/display/ww2cndoc/Tags WebWork2文档中文

化计划(中文)

/WW/ Tag Developers Guide

(英文)

本文有相当的内容也来自这两处。

在此,我虽然不能够详细讲述这些标志,但是可以与大家分享一个来Struts 2.0 Show Case一个例子。

/**//*

* $Id: 420385 2006-07-10 00:57:05Z mrdon $

*

* Copyright 2006 The Apache Software Foundation.

*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

* /licenses/LICENSE-2.0

*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or impl

ied.

* See the License for the specific language governing permissions and

* limitations under the License.

*/

package se;

import tActionContext;

import Support;

import teable;

import lueStack;

import ist;

import tions;

import ;

import p;

import ;

import ;

import ;

/** *//**

*/

public class UITagExample extends ActionSupport implements Validateabl

e {

private static final long serialVersionUID = -94047

L;

String name;

Date birthday;

String bio;

String favoriteColor;

List friends;

boolean legalAge;

String state;

String region;

File picture;

String pictureContentType;

String pictureFileName;

String favouriteLanguage;

String favouriteVehicalType = "MotorcycleKey";

String favouriteVehicalSpecific = "YamahaKey";

List leftSideCartoonCharacters;

List rightSideCartoonCharacters;

List favouriteLanguages = new ArrayList();

List vehicalTypeList = new ArrayList();

Map vehicalSpecificMap = new HashMap();

String thoughts;

public UITagExample() {

(new Language("EnglishKey", "English Lang

uage"));

(new Language("FrenchKey", "French Langua

ge"));

(new Language("SpanishKey", "Spanish Lang

uage"));

VehicalType car = new VehicalType("CarKey", "Car");

VehicalType motorcycle = new VehicalType("MotorcycleKey", "Moto

rcycle");

(car);

(motorcycle);

List cars = new ArrayList();

(new VehicalSpecific("MercedesKey", "Mercedes"));

(new VehicalSpecific("HondaKey", "Honda"));

(new VehicalSpecific("FordKey", "Ford"));

List motorcycles = new ArrayList();

(new VehicalSpecific("SuzukiKey", "Suzuki"));

(new VehicalSpecific("YamahaKey", "Yamaha"));

(car, cars);

(motorcycle, motorcycles);

}

public List getLeftSideCartoonCharacters()

return leftSideCartoonCharacters;

}

public void setLeftSideCartoonCharacters(List leftSideCartoonCharac

ters) {

{

deCartoonCharacters = leftSideCartoonCharacters;

}

public List getRightSideCartoonCharacters()

return rightSideCartoonCharacters;

}

public void setRightSideCartoonCharacters(List rightSideCartoonChar

acters) {

{

ideCartoonCharacters = rightSideCartoonCharacters;

}

public String getFavouriteVehicalType()

return favouriteVehicalType;

{

}

public void setFavouriteVehicalType(String favouriteVehicalTyp

e) {

iteVehicalType = favouriteVehicalType;

}

public String getFavouriteVehicalSpecific()

return favouriteVehicalSpecific;

}

public void setFavouriteVehicalSpecific(String favouriteVehicalSpec

ific) {

{

iteVehicalSpecific = favouriteVehicalSpecific;

}

public List getVehicalTypeList()

return vehicalTypeList;

}

public List getVehicalSpecificList() {

{

OgnlValueStack stack = ueStack(Servl

uest());

Object vehicalType = lue("top");

if (vehicalType != null && vehicalType instanceof VehicalTyp

e) {

List l = (List) (vehicalType);

return l;

}

return _LIST;

}

public List getFavouriteLanguages()

return favouriteLanguages;

}

public String execute() throws Exception

return SUCCESS;

}

/**//*

public String doSubmit()

return SUCCESS;

{

Getters and Setters */

{

{

}

// === inner class

public static class Language

String description;

String key;

public Language(String key, String description)

= key;

ption = description;

}

public String getKey()

return key;

}

public String getDescription()

return description;

}

}

public static class VehicalType {

{

{

{

{

String key;

String description;

public VehicalType(String key, String description)

= key;

ption = description;

}

public String getKey() { return ; }

{ return ptio

{

public String getDescription()

n; }

public boolean equals(Object obj) {

{ if (! (obj instanceof VehicalType))

return false;

}

else {

return (((VehicalType)obj).getKey());

}

}

public int hashCode()

return de();

{

}

}

public static class VehicalSpecific

String key;

String description;

public VehicalSpecific(String key, String description)

= key;

ption = description;

}

public String getKey() { return ; }

{ return ptio

{

{

public String getDescription()

n; }

public boolean equals(Object obj) {

{ if (! (obj instanceof VehicalSpecific))

return false;

}

else {

return (((VehicalSpecific)obj).getKey());

}

}

public int hashCode()

return de();

}

}

}

例6

{

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

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

UI Tags Example

" tooltipConfig="#{'jsTooltipEnabled':'true'}">

label="Name"

name="name"

tooltip="Enter your Name here" />

tooltip="Select Your Birthday"

label="Birthday"

name="birthday" />

tooltip="Enter your Biography"

label="Biograph"

name="bio"

cols="20"

rows="3"/>

tooltip="Choose Your Favourite Color"

label="Favorite Color"

list="{'Red', 'Blue', 'Green'}"

name="favoriteColor"

emptyOption="true"

headerKey="None"

headerValue="None"/>

tooltip="Choose Your Favourite Language"

label="Favourite Language"

list="favouriteLanguages"

name="favouriteLanguage"

listKey="key"

listValue="description"

emptyOption="true"

headerKey="None"

headerValue="None"/>

tooltip="Choose your Friends"

label="Friends"

list="{'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}"

name="friends"/>

tooltip="Confirmed that your are Over 18"

label="Age 18+"

name="legalAge"/>

tooltip="Choose Your State"

label="State"

name="region" list="{'North', 'South'}"

value="'South'"

doubleValue="'Florida'"

doubleList="top == 'North' ? {'Oregon', 'Washington'} : {'Texas

', 'Florida'}"

doubleName="state"

headerKey="-1"

headerValue="---------- Please Select ----------"

emptyOption="true" />

tooltip="Choose your Vehical"

label="Favourite Vehical"

name="favouriteVehicalType"

list="vehicalTypeList"

listKey="key"

listValue="description"

value="'MotorcycleKey'"

doubleValue="'YamahaKey'"

doubleList="vehicalSpecificList"

doubleListKey="key"

doubleListValue="description"

doubleName="favouriteVehicalSpecific" headerKey="-1"

headerValue="---------- Please Select ----------"

emptyOption="true" />

tooltip="Upload Your Picture"

label="Picture"

name="picture" />

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" />

label="Your Thougths"

name="thoughts"

tooltip="Enter your thoughts here" />

例6

例6 代码片段

发布评论

评论列表 (0)

  1. 暂无评论