`
fanjava
  • 浏览: 235870 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

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");
分享到:
评论

相关推荐

    struts2零配置入门代码

    在“struts2零配置入门代码”这个主题中,我们将深入探讨如何在不编写大量XML配置文件的情况下,启动并运行一个基本的Struts2应用程序。 Struts2的核心在于它的Action类,它是业务逻辑处理的主要组件。在“零配置”...

    struts2初始使用环境配置

    基本的`struts.xml`应如下所示: ```xml &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"&gt; &lt;struts&gt; ...

    struts2+myeclipse 配置入门

    Struts2是一个强大的Java web...以上就是Struts2在MyEclipse中配置的基本步骤。在实际开发中,你可能还需要配置拦截器、结果类型、国际化、数据校验等高级特性。不断学习和实践,你将更深入地掌握Struts2框架的精髓。

    struts练习 初学者入门

    本教程“Struts练习 初学者入门”旨在帮助初学者快速掌握Struts的基本概念和用法,通过一系列的实践练习,让学习者能够快速上手。 首先,理解Struts框架的核心理念至关重要。Struts采用Model-View-Controller(MVC...

    struts1.x入门

    ### Struts1.x 入门知识点详解 #### 一、Struts 概念与起源 Struts 是一款基于 Java 的开源 MVC(Model-View-Controller)框架,最初由 Apache Jakarta 项目开发。其目的是简化 Web 应用程序的开发过程,并提供一...

    Struts2 的入门简单的hello

    - 接着,配置struts2的核心过滤器`struts2-convention-plugin`,在`web.xml`中指定`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`,以确保所有请求都被Struts2拦截和处理。 2. **创建Action类**: - 创建...

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

    ### Struts基本配置入门详解 #### 一、概述 本文档旨在帮助初学者理解并掌握Struts框架的基本配置方法。Struts是一个基于MVC(Model-View-Controller)设计模式的开源Java Web应用框架,主要用于简化Java Web应用...

    struts2开发入门以及webWork开发入门文档

    Struts2和WebWork是两种流行的Java Web框架,它们在构建MVC(Model-View-Controller)架构的应用程序中发挥着重要作用。Struts2实际上是WebWork的后续版本,吸收了WebWork的核心特性并进行了改进。这里我们将深入...

    struts2入门例子

    让我们深入探讨一下`struts.xml`的基本配置: 1. **Action配置**:在`struts.xml`中,你需要定义Action类,这通常是你的业务逻辑处理类。例如: ```xml &lt;result name="success"&gt;/success.jsp ``` 这里,`...

    struts2入门配置手把手教

    本文将深入讲解Struts2的入门配置,帮助初学者快速理解并掌握这个框架的基本用法。 首先,让我们了解Struts2的核心概念: 1. **Action类**:在Struts2中,Action类是业务逻辑的载体,它是处理用户请求的主体。你...

    struts1,struts教程,struts1.x入门

    在"struts1.x入门"的教程中,我们可以学习到以下几个核心知识点: 1. **MVC模式**:理解MVC模式的基本概念,它将应用程序分为模型、视图和控制器三个部分,各自负责数据处理、用户界面展示和用户交互处理。 2. **...

    struts2-struts入门

    在Struts2的基本配置中,有几个重要的配置文件: - default.properties:配置Struts的默认常量,如编码。 - struts-default.xml:提供Struts的默认核心配置,大部分功能都在这里定义。 - struts-plugin.xml:用于...

    struts入门最简单例子

    这个"struts入门最简单例子"旨在帮助初学者快速理解并掌握Struts2的基本用法。Struts2框架提供了丰富的功能,如动作映射、结果类型、拦截器、动态方法调用等,使得开发者能够构建结构清晰、可维护性强的Web应用程序...

Global site tag (gtag.js) - Google Analytics