当前位置:文档之家› struts标签

struts标签

struts标签
struts标签

struts2标签库

文本框输入文字

struts2标签是struts2的重点,和action配合使用,就是struts2的重点。第一次使用struts2,就觉得比jsp/servlet这样的方案,容易多了。

在jsp放个input之类的文本框,在servlet中用request.getParameter() 来获取值insert数据库,然后再用request.setAttribute()来给页面返回值。

代码量非常可观。但struts2中就方便多了。一般的写法是这样的。写一个JA V A类继承ActionSupport,然后在JSP页面就可以直接使用了。

例:

言归正传,struts2的标签分为UI标签和非UI标签。下面就struts2与html作个对比.在此推荐一个eclipse html插件

https://www.doczj.com/doc/fa10420276.html,/project/showfiles.php?group_id=68009

文本框:

Struts2:

如果是日期型,可使用

由于struts2支持使用el表达式,所以textfield也可写

HTML:

列表框:

Struts2:

固定值:

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

注:如果采用动态列表,必须用action访问,如果用JSP访问会报错.

list指action中的list、map等集合类,

listKey相当于html中的value

listValue相当于html中select显示的值

emptyOption是否为空

headerKey、headerValue 初始的键、值

对应的Action里你的Map类型的值声明时应该如下写法:private Map Return_TR=new java.util.HashMap

String>();

struts2的select标签中,常用的有以下几个属性:

(1)struts2中的select 标签中,必须设置的属性只有一个,即是list。

(2)select标签的list中必须有值,不然会报错。如果没有值,可以加上headerKey, headerValue,这样就可以通过了。如:

代码

listValue="value" headerKey="0" headerV alue="--请选择子类型--"/>

其中,即使list中有值,我们也通常会加上headerKey, headerValue,即列表中显示的第一个选项。注意,headerKey不可以为空,不可以为-1。

(3)list属性:通常是在action中定义的,必须是一个可以迭代的源,如为一个List, Map, Set等。如果是一个Map,

那么map的key就对应于select标签中的value,map中的value就对应于select标签中的option。而如果是一个List或者是一个Set,

那么可以通过listKey和listValue指定。

(4)listKey和listValue:listKey即对应于select标签中的value,listValue

即对应于select标签中的option。

(5)name属性:即是表单中select的名称

HTML:

URL参数传递:

Struts2:

例: urlTest

HTML:

url?name = testValue

例:192.168.1.1/test.action?name=testValue

日期下拉框:

Struts2:

label="toggleType='wipe'"

value="${orderMain.orderDate}"

toggleType="wipe"

toggleDuration="300"

displayFormat="yyyy-MM-dd"

name="orderMain.orderDate"/>

说明:${orderMain.orderDate}取类的值,这个参数也可不写,用name就可以。

使用该tag时要在前要加入

HTML:

只能用js写了.事实上struts2 的datetimepicker也是js的封装.

隐藏域:

strut2:

HTML:

另外,struts2的tag是默认在enter时自动提交表单,要屏蔽此功能。在onkeydown事件中加入键盘触发代码。

例:if(event.keyCode==13) event.keyCode=9;就是将回车转成tab键. 还有一种方法更为简便方法:

//回车转Tab

function EnterTabGlobal(){

document.onkeydown=function keyDown(){

if(event.keyCode==13)

event.keyCode=9

}

}

//在onLoad执行

一、url标签

简介

url标签用于生成一个URL地址,可以通过url标签指定param子元素,从而向指定URL发送请求参数。

1. jsp代码

使用s:url来生成一个URL地址

s:url来生成一个URL地址

只指定value属性的形式。


指定action属性,且使用param传入参数的形式。


既不指定action属性,也不指定value属性,且使用param传入参数的形式。


同时指定action属性和value属性,且使用param传入参数的形式。

备注:我们用的最多的是以下的方式:

2. 页面效果

s:url来生成一个URL地址

只指定value属性的形式。

editGadget.action

________________________________________

指定action属性,且使用param传入参数的形式。

/portal/test/showBook.action?author=yeeku

________________________________________

既不指定action属性,也不指定value属性,且使用param传入参数的形式。

/portal/test/s-url.jsp?id=22

________________________________________

同时指定action属性和value属性,且使用param传入参数的形式。

xxxx?author=yeeku

二、s:checkboxlist标签

简介

Checkboxlist标签可以一次创建多个复选框,用于一次生成多个HTML标签中的,它根据list属性指定的集合来生成多个复选框。

1. jsp代码

使用s:checkboxlist生成多个复选框

使用s:checkboxlist生成多个复选框

list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , '基于J2EE的Ajax宝典'}"/>

list="#{'Spring2.0宝典':'2006年10月' , '轻量级J2EE企业应用实战':'2007月4月' , '基于J2EE的Ajax宝典':'2007年6月'}"

listKey="key"

listValue="value"/>

备注

list="#bs.books"

listKey="name"

listValue="author"/>

listKey:该属性指定集合元素中某个属性作为复选框的value.

listValue: 该属性指定集合元素中某个属性作为复选框的标签。

2. 页面效果

三、使用s:combobox生成下拉输入框

简介

Combobox标签生成一个单行文本框和下拉列表框的组合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name,也不会产生请求

参数。使用该标签,需要指定一个list属性,该list属性指定的集合将用于生成列表项。

1. Jsp代码

使用s:combobox生成下拉输入框

list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , '基于J2EE的Ajax宝典'}"

size="20" maxlength="20" name="book"/>

1. 页面效果

第一步

第二步

备注:

标签不同的是,对于下面的下拉列表,无需指定listKey 和listValue属性,因为此处的下拉列表,不再用于发送请求参数,而仅仅是用于辅助输入,因此该下拉列表的value没有任何意

义。(注:使用combobox标签时不能指定listKey和listValue属性)四、使用s:datetimepicker生成日期选择框

简介

Datetimepicker标签生成一个日期,时间下拉选择框,当我们使用该日期,时间选择框选择某个日期,时间,系统会自动将选中的日期,时间输入指定文本框。

1. Jsp代码

使用使用s:datetimepicker生成日期选择框

日期选择部件,指定toggleType属性,且指定value="today"


日期选择部件,指定了format属性


日期选择部件,指定了weekStartsOn属性

displayFormat="dddd年MM月dd日" weekStartsOn="2"/>


时间选择部件


2. 页面效果

第一步

第二步

第三步:

第四步:

备注

toggleType:指定日期选择框出现、隐藏的方式,可以选择plain,wipe,explode和fade4个值。

value:指定当前的日期,时间。可使用today来代表今天。

五、使用s:select生成下拉选择框

简介

Select 标签用于生成一个下拉列表框,通过为该元素指定list属性,系统会使用list属性指定的集合来生成下拉列表框的选项。

1. Jsp代码

使用s:select生成下拉选择框

list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , 'JavaScript: The Definitive Guide'}"/>

list="#{'Spring2.0宝典':'2006年10月' , '轻量级J2EE企业应用实战':'2007月4月' , '基于J2EE的Ajax宝典':'2007年6月'}"

listKey="key"

listValue="value"/>

list="#bs.books"

listKey="author"

listValue="name"/>

2. 页面效果

第二步

六、使用s:radio生成多个单选框

简介

s:radio生成多个单选框。

1. Jsp代码

使用s:radio生成多个单选框

list="#{'Spring2.0宝典':'2006年10月' , '轻量级J2EE企业应用实战':'2007月4月' , '基于J2EE的Ajax宝典':'2007年6月'}"

listKey="key"

listValue="value"/>

listKey="author"

listValue="name"/>

2、页面效果

七、使用s:optgroup生成下拉选择框的选项组

简介

Optgroup标签用于生成一个下拉列表框的选项组。

1. Jsp代码

使用s:optgroup生成下拉选择框的选项组

name="book"

list="#{'Spring2.0宝典':'李刚','轻量级J2EE企业应用实战':'李刚','基于J2EE的Ajax宝典':'李刚'}"

listKey="value"

listValue="key">

list="#{'Expert One-on-One J2EE Design and Development':'Johnson'}" listKey="value"

listValue="key"/>

list="#{'JavaScript: The Definitive Guide':'David'}"

listKey="value"

listValue="key"/>

2、页面效果

第二步

八、使用s:optiontransferselect来生成可移动列表项的下拉列表框

简介

使用s:optiontransferselect来生成可移动列表项的下拉列表框。

1. Jsp代码

使用s:optiontransferselect来生成可移动列表项的下拉列表框

label="请选择你喜欢的图书"

name="cnbook"

leftTitle="中文图书:"

rightTitle="外文图书"

list="{'Spring2.0宝典','轻量级J2EE企业应用实战','基于J2EE的Ajax 宝典'}"

multiple="true"

addToLeftLabel="向左移动"

selectAllLabel="全部选择"

addAllToRightLabel="全部右移"

headerKey="cnKey"

headerValue="--- 选择中文图书---"

emptyOption="true"

doubleList="{' J2EE Design and Development', 'The Definitive Guide'}" doubleName="enBook"

doubleHeaderKey="enKey"

doubleHeaderValue="--- 选择外文图书---"

doubleEmptyOption="true"

doubleMultiple="true"

/>

2、页面效果

备注:

如果我们不想用它默认的图标,我们可以添加标签,将它默认的覆盖掉:例如我们添加如下代码:

addToRightLabel="向右移动"

leftDownLabel="下移按钮"

页面效果

九、使用s:updownselect生成可上下移动选项的下拉选择框

简介

Updownselect标签的用法非常类似于select标签的用法,区别是该标签声称的列表框可以支持选项的上下移动。

1. Jsp代码

使用s:updownselect生成可上下移动选项的下拉选择框

moveUpLabel="向上移动"

list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , 'JavaScript: The Definitive Guide'}"/>

Struts2框架工作原理及应用体会

2012年第11卷第6期 产业与科技论坛2012.(11).6 Industrial &Science Tribune Struts2框架工作原理及应用体会 □宋 君 张家爱 【摘要】通过针对特定用户的分析,搭建以Struts2为技术核心的旅行社管理系统。本文简单的介绍了MVC 、 Struts2的工作原理,同时总结了在项目制作过程中所得到的心得。 【关键词】 Struts2;MVC ;FilterDispatcher ;Action 【基金项目】本文为大学生科技创新院级基金项目(编号:2011070)成果 【作者单位】宋君,吉林农业科技学院信息工程学院;张家爱,吉林农业科技学院信息工程学院教师 本着锻炼自我与积极参与到实用性技术的目标,以发掘自身创新意识为前提。利用空闲时间,在老师的指导下,进行了一次大学生创新项目的实践性活动。本着实用原则,以某中小旅行社为客户(根据用户需求,匿名),以Struts2框架为基点,进行了一次旅行社管理系统的开发。在项目结束之余, 特将在项目过程中经历的种种认识进行了简单的总结,希望让阅读本文的朋友们,更多的参与到此类活动中。 一、基础思想— ——MVC 简述作为时下经典框架之一, MVC 具有其独特的价值。MVC 框架简单的说,就是将数据模型与用户视图进行分离。通过控制器进行协调处理的一种结构是框架。同时,也是本文中要讨论的Sturts2框架的基础思想。 M 是指模型层(Model ),V 是指用户视图(View ),C 则是指控制器 (Controller )。这种划分方式是以将模型层与视图层进行代码分离,从而降低两者之间的耦合性,使同一程序可以使用不同形式进行表现。不同层之间的修改不会或尽量少的印象到其他层功能的史前为前提。有效的提高的代码的维护性和设计难度。 图1 二、 Struts2工作原理(一)Struts2框架组成。Struts2框架由三个主要部分组成:核心控制器、业务控制器,以及由用户实现的业务逻辑组件。这里我们将侧重于核心控制器与业务控制器的理解与说明。 (二)核心控制器:FilterDispatcher 。FilterDispatcher 是Struts2框架的核心控制器,在此,我们可以将FilterDispatcher 看作一个类似于过滤网的过滤器。当用户发出请求,并到达Web 硬哟那种时,该过滤器会过滤用户请求。如果用户请求的结尾为action ,则将该请求转入Struts2框架进行处理。当Struts2框架获得了*.actio 请求后,会根据请求前面“*”的那部分内容,决定调用哪个业务逻辑组件作为响应单位。这里需要说明的是Struts2用来处理用户请求的Action 实例并不是业务控制器,而是作为Action 的代理———正因为Struts2的一大特点,与Servlet API 的非耦合性,使得用户实现的业务控制器无法直接处理用户请求。有效的提高了后期调试维护的效率。而Struts2框架再次提供了了一系列的拦截器。这些拦截器负责将HttpServletRequest 请求的参数解析出来,传入Action 中,并毁掉Action 的Execute 方法来处理用户请求。用户实现的Action 类仅作为Struts2的Action 代理的代理目标。用户实现的业务控制器则包含了对用户请求的处理。用户的请求数据包含在HttpServletRequest 对象中,而用户的Action 类无需访问HttpServletRequest 对象。拦截器负责将HttpServletRequest 里的请求数据解析出来,并传给业务逻辑组件Action 实例。 (三)业务控制器。业务控制器就是前文提到的用来实现用户Action 的实力,这里的每个Action 类通常包含有一个execute 方法,当业务控制器处理完用户的请求后,该方法将会针对此次处理返回一个字符串— ——该字符串就是一个逻辑树图名。当程序开发人员开发出系统所需要的业务控制器后,还需要针对性的配置Struts2的Action ,即需要配置Ac- tion 的以下三个部分:(1)Action 所处理的URl 。(2)Action 组件所对应的实现类。(3)Action 里包含的逻辑试图和物理资源之间的对应关系。每个Action 都要处理一个用户请求,而用户请求则总是包含有指定的URL 。当核心控制器过滤用户请求,并调用后,根据请求的URL 和Action 处理URL 之间的对应关系来处理转发。 · 342·

SCME_STRUTS2试卷

--------------------------------------装--------------------------------------订------------------------------线---------------------------------------- **学院课程考试试卷 课程名称:《使用Struts2开发基于MVC设计模式的企业级应用》(A)卷 年级:班级: 姓名:_______________ 学号:_________________ 考试(考查) 闭卷 选择题(每题2分,共计100分) 1.在控制器类中一般需要添加相应属性的( A )和(C )。(选两项) A.setter方法 B.as方法 C.getter方法 D.is方法 2.业务控制器需要在( B )配置文件中进行配置 A.web.xml B.struts.xml C.struts2.xml D.webwork.xml 3.不属于Struts 2表单标签库的是( D )。 A. B. C. D.标签的property属性指定字段的名字,对应ActionForm bean中的一个属性,代码如下: 的对应的userForm bean属性 private String login_Name; public String getLogin_Name() { return login_Name; } public void setLogin_Name(String login_Name) { this.login_Name = login_Name; } 3,:生成HTML标签,使用方法与相同。 启用 停用 4,:生成HTML