`

Structs中基本配置入门

 
阅读更多
第一章Structs的基本配置
1.为Structs应用配置Web.xml文件
第一步:配置ActionServlet
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.appache.structs.ActionServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<uri-pattern>*.do</url-pattern>
</servlet-mapping>
注意:不管应用中包含多少个子应用,都只需配置一个ActionServlet,因为ActionServlet支持多线程,目前的Structs框架只允许在应用中配置一个ActionServlet。
第二步:初始化参数对Servlet的运行环境进行初始化配置。
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.appache.structs.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/structs-config.xml</param-value>
</init-param>
</servlet>
表2-1.Struts1.1中用到的初始化参数
参数名含义/默认值
config以相对路径的方式指明Struts应用程序的配置文件位置。如不设置,则默认值为/WEB-INF/struts-config.xml。
config/sub1以相对路径的方式指明子应用程序的配置文件位置,一般来说,很少用到子应用程序,在此不多描述。
debug设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。
detail设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。

第三步:配置欢迎清单
当客户访问Web应用时,如果仅仅给出Web应用的RootURL,没用指定具体的文件名,Web容器会自动调用Web应用的欢迎文件。
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-fiel-list>
说明:<welcome-file-list>可以包含多个<welcome-file>子元素,首先查找第一个<welcome-file>文件。
由于<welcome-file-list>元素中不能配置Servlet映射,因此不能直接把Structs的Action作为欢迎文件,可以采用一种变通的方法来实现在欢迎文件中调用StructsAction。首先,在Structs配置文件中为被调用的Action创建一个全局的转发项,例如:
<global-forwards>
<forwardname=”welcome”path=”HelloWord.do”/>
</global-forwords>
创建一个welcome.jsp的文件
最后在web.xml文件中把welcome.jsp文件配置为欢迎文件,代码如下:
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>
第四步:配置错误处理

<error-page>
<error-code>404</error-code>
<location>/commom/404.jsp</location>
</error-page>
<error-page>
<error-code>505</error-code>
<location>/commom/505.jsp</location>
</error-page>
也可以为Web容器捕获的Java异常配置<error-page>,需要设置<exception-type>子元素,它用于指定Java异常类。Web容器可能捕获如下异常:
RuntimeException或ErrorServletException或它的子类IOException或它的子类
<error-page>
<exception-type>java.io.IOException</exception-type>
<location>/common/system_ioerror.jsp</location>
</error-page>
第五步:配置Structs标签库
使用客户化的标签库,要配置它们
<taglib>
<tag-uri>/WEB-INF/structs-html.tld<tag-uri>
<taglib-location>/WEB-INF/structs-html.tld</taglib-location>
</taglib>
<tag-uri>用于指定标签库的相对或者绝对URI地址,Web应用根据这一URI来访问标签库。
<taglib-location>指定标签描述文件在文件资源系统中的物理位置。
2Structs配置文件
Structs框架在启动时会读入其配置文件,根据它来创建和配置各种Structs组件。
1<Structs-config>元素
<structs-config>元素是Structs配置文件的根元素,<structs-cofig>元素有8个子元素。它的DTD定义如下:
<!ELEMENTstructs-config(data-sources?,formbean?,global-exeception?,global-forward?,action-mapping,controller?,message-resources*,plug-in*)>
在Struts配置中,必须按照以上的DTD指定的先后顺序来配置<Structs-config>元素的各个子元素,如果颠倒了这些元素的配置文件中的位置,在Structs应用启动时会生成错误。
<data-sources>元素



<data-sources>元素包含零个、一个或者多个<data-sources>子元素,<data-sources>用于配置特定的数据源,它可以包含多个<set-property>子元素,用于设置数据源的各种属性。
。。。
配置了数据源后,就可以在Action类中访问数据源,在org.apache.structs.action.Action类中定义了getDataSource(HttpRequrst)方法,它用于获取数据源对象的引用。
DataSourcedataSource;
Connectionconnection;
dataSource=getDataSource(request);
connection=dataSource.getConnection();
也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过改值来标识特定的数据源。
2<form-beans>元素
<form-beans>元素用来配置多个ActionFormBean,<form-beans>包含多个<forom-bean>子元素,,每个<from-bean>包含多个属性,ClassName,name,type
<form-beans>
<form-beanname="HelloForm"type="hello.HelloForm"/>
</form-beans>
注意:配置动态ActionFormBean,还必须配置<form-bean>元素的<form-property>元素。
<form-beans>
<form-beanname="HelloForm"type="hello.HelloForm"/>
<form-beanname="userForm"type="org.apache.structs.action.DynaAction">
<from-propertyname="firstname"type="java.lang.String"/>
<form-propertyname="secondname"type="java.lang.String">
<form-propertyname="age"type="java.Integer"initial="18">
</form-beans>
3<global-exception>元素
<global-exception>用于配置异常处理,<global-exception>元素可以包含零个或者多个<exception>元素。
<exception>元素用来设置java异常和异常处理类org.apache.structs.action,ExceptionHander之间的映射。
4<gloable-forwards>元素
<global-forwards>元素用来声明全局的转发关系,<global-forwards>有零个或多个<forward>元素组成。<forward>元素用于把一个逻辑映射到特定的URL
属性描述
className和<forward>元素对应的配置类,默认为org.apache.structs.action.ActionForWard
name转发路径的逻辑名,此项时必须的
path指定或者重定向的URI。此项时必须的,必须以”/”开头
redirect此项是true,表示是执行重定向的操作,此项是false时,表示请求转发。




<global-forwards>
<forwardname="forward1"path="/Action1.do"/>
<forwardname="forward1"path="/Action2.do"/>
</global-forwards>
如果jsp1.jsp把请求转发给Action1,可以使用以下代码:
<html:linkforward=”forward1”>
或者<logic:forwardname=”forward1”>
如果Action1的execute()方法把请求转发给JSP2.jsp,可以使用一下代码:
return(mapping.findForward(“forward2”))
5<action-mapping>元素
<action-mapping>元素包含零个或者多个<action>元素。<action>元素描述了从特定的请求路径到相应的Action类的映射。
6<controller>元素
<controller>元素用于配置ActionServlet。
7<message-resources>元素
<message-resources>元素用于配置ResourceBundle,ResourceBudle用于存放本地化消息文件。
Structs标签
HTML标签
标签名描述
base包装HTML的base元素
button包装HTML的button类型的input元素
cancel包装HTMLcancel按钮
checkbox包装HTMLcheckbox类型的输入域
errors有条件地显示一些error消息,显示ActionErrors信息
file包装HTML文件上传输入域
form定义HTMLform元素
frame包装HTMLframe元素
hidden包装HTMLhidden输入域
html包装HTML中的html元素
image包装"image"类型的输入域
img包装HTML的img元素
javascript包装根据ValidatorPlugIn提供的校验规则所提供的javascript校验脚本
link包装超链接
messages有条件地显示一些提示信息,显示ActionMessages信息
multibox包装多选输入框
option包装一个选择输入框
options包装一批选择输入框
optionsCollection包装一批选择输入框集
password包装密文输入框
radio包装单选输入框
reset包装“重置”功能的按钮
rewrite包装一个URL
select包装一个选择输入框
submit包装一个提交按钮
text包装一个文本输入框
textarea包装一个备注输入框

ActionForm
ActionForm的要求
创建一个ActionForm并不困难,但是你的类必须符合一些要求:
ActionForm必须扩展自org.apache.struts.ActionForm。基类ActionForm是不能实
例化的。
ActionForm必须为每个应该从请求中收集的HTML控件定义一个公共属性。
(Struts1.0要求每个属性都要mutator和accessor。Struts1.1则没有如此严格)
ActionForm还可能要符合一些可选的要求:
如果你要求ActionForm在传递属性到Action之前校验它们,你就必须实现validate
方法;
如果想在组装前初始化属性,必须实现reset,它在ActionForm组装前被调用;
动态ActionForm
ActionForm作为类型转换器
ActionForm的一个强制点是应该使用String和boolean属性。实际上,这意味着属性
必须得从一种转换到另一种类型。大部分应用也需要一些属性,比如电话号码或者数量,以
一种格式化的方式出现。核心Java包提供一些工具来做这种事情,但是要清楚地将他们集
成到应用中仍然是一个挑战。
Struts开发人员经常在ActionForm中包含helper方法,来进行类型转换。helper方法
可以有很多种实现方式,这我们在5.6种叙述。
5.2.6ActionForm作为防火墙
当请求提交时,ActionServlet使用一个自动组装机制来从请求参数中设置请求的
ActionForm属性。这让你可以通过控制哪个ActionForm属性被暴露来控制哪个请求参数
是可接受的。这也意味着如果你的ActionForm的粗心设计你可能失去控制哪个参数可以接
受的能力。ActionForm一定不能包含看起来像是一个JavaBean属性,但不能从HTTP请
求设置的属性方法。
5.3.4ActionForm可以嵌套其它bean
因为Struts标签扩展和自动组装机制都支持点号语法来从ActionForm访问其它
bean。这是一个方便的方式,可以通过ActionForm来组装存在的bean。在JSP页面,你可
以象这样引用一个嵌套的bean:
<html:text
propety="values.telephoneText"
size="14"
maxlength="14"/>
5.7.2分发(Dispatch)
Struts开发人员通常使用同一个Action处理相关的操作。一个通常做法来选择操作是在
HTML表单中使用隐藏属性。BaseForm的dispatch属性也可用作这个目的:
publicvoidsetDispatch(Stringdispatch);
publicStringgetDispatch();
Struts配置提供连个级别嵌套的ActionForward:
Global(全局)ActionForward对整个应用中的所有Action对象均有效;
Local(局部)ActionForward则在ActionMapping元素中定义。仅对那些在这个
ActionMapping中调用的Action对象有效。
从Action对象内部来看,forward通常像这样来选择:
ActionForwardforward=mapping.findForward("continue");
分享到:
评论

相关推荐

    初学者入门:Structs中基本配置入门

    很不错关于JAVA的Struts中基本配置入门的文档!推荐大家下载哦!

    struts2 基本配置

    这是struts2的基本配置,对struts2刚入门的同学可以参考一下。

    struts2入门例子

    struts2 例子 struts.xml基本配置 页面跳转

    struts快速入门的最好教程

    Struts2框架简介 Struts2历史 Struts2与MVC ...Struts2基本知识点 Struts2标签库简介 Struts2拦截器 默认配置文件struts-default.xml概要说明 Struts2核心配置文件Struts.xml详解 Struts2的简单开发和配置

    Struts2环境配置与基本操作演示

    Struts2入门介绍、环境配置与基本操作演示,包含OGNL,值栈与域概念

    Struts2入门教程(全新完整版)

    十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...

    struts2初涉配置成功例子入门

    成功完成了struts2的配置,项目中包含了需要的包,并通过一个helloWorld将struts基本流程走了一遍,对初学者有一个很好的入门作用

    Struts2_入门篇_基本配置_通配符_参数注入_内置对象获取等。。。

    此文件可直接导入测试使用,供初学struts2的朋友借鉴,包含struts2类中获得内置对象,注入form表单参数,struts2的基本XML配置等等...

    Struts2入门必备讲义

    Struts2入门必备讲义!Struts发展、Struts2基本配置、拦截器、Struts2标签、多种视图技术

    struts-2.5.16升级jar包.zip

    解压后进入lib目录可以找到struts2.5所有jar包,进入“Struts2 入门\struts2基本jar包”目录可以找到基本入门jar包,包含如何配置strut2,如何访问web等

    struts 入门教程

    Struts的基本组件包 6 Struts framework的工作原理和组件 7 Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 ...

    利用MyEclipse开发Struts+Hibernate配置

    关于struts的资料就很多了,这里推荐一个可以下载一些入门教程的网站。  地址:http://www.wnetw.com/jclub/index.jsp  强烈建议入门的朋友先了解一下基本的原理!否则本文可能对你没有任何帮助。

    struts2.5.16-jar包

    解压后进入lib目录可以找到struts2.5所有jar包,进入“Struts2 入门\struts2基本jar包”目录可以找到基本入门jar包,包含如何配置strut2,如何访问web等

    struts框架介绍

    struts入门基础,适合零基础的人员学习,介绍了struts的基本配置,struts中常量的介绍,struts获取请求参数,struts类型转换等等

    structs程序设计从入门到精通word文档

    第1篇Struts 基础入门 6 第1章 Struts概述 8 1.1 JSP Framework - Struts介绍 8 1.2 Struts的体系结构 8 1.3 Struts1.0学习文档 8 1.3 JSP流行模板Struts的安装配置 8 1.4Struts 用户指南 8 1.5 你的第一个struts...

    Struts 2.1 权威指南 part13 pdf

    改为使用Convention插件提供“零配置”,Struts 2.1新增了Portlet支持……为了让众多Struts学习者、工作者快速从Struts 2.0的开发升级到Struts 2.1,笔者升级了《Struts 2权威指南》,第二版改写了第一版中所有程序...

    Struts 2.1 权威指南 part04 pdf

    改为使用Convention插件提供“零配置”,Struts 2.1新增了Portlet支持……为了让众多Struts学习者、工作者快速从Struts 2.0的开发升级到Struts 2.1,笔者升级了《Struts 2权威指南》,第二版改写了第一版中所有程序...

    Struts 2.1 权威指南 part01 pdf

    改为使用Convention插件提供“零配置”,Struts 2.1新增了Portlet支持……为了让众多Struts学习者、工作者快速从Struts 2.0的开发升级到Struts 2.1,笔者升级了《Struts 2权威指南》,第二版改写了第一版中所有程序...

    Struts 2.1 权威指南 part02 pdf

    改为使用Convention插件提供“零配置”,Struts 2.1新增了Portlet支持……为了让众多Struts学习者、工作者快速从Struts 2.0的开发升级到Struts 2.1,笔者升级了《Struts 2权威指南》,第二版改写了第一版中所有程序...

    Struts 2.1 权威指南 part06 pdf

    改为使用Convention插件提供“零配置”,Struts 2.1新增了Portlet支持……为了让众多Struts学习者、工作者快速从Struts 2.0的开发升级到Struts 2.1,笔者升级了《Struts 2权威指南》,第二版改写了第一版中所有程序...

Global site tag (gtag.js) - Google Analytics