写出structs-config.xml的常用配置,并说出其作用

<Structs-config>元素
      <structs-config>元素是Structs配置文件的根元素,<structs-cofig>元素有8个子元素。它的DTD定义如下:
<!ELEMENT structs-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)方法,它用于获取数据源对象的引用。
    DataSource   dataSource;
    Connection   connection;
        dataSource =getDataSource(request);
        connection=dataSource.getConnection();
也可以在配置文件中声明多个数据源,此时需要为每一个数据源分配唯一的key值,通过改值来标识特定的数据源。
2<form-beans>元素
    <form-beans>元素用来配置多个ActionForm Bean,<form-beans>包含多个<forom-bean>子元素,,每个<from-bean>包含多个属性,ClassName , name,type
    <form-beans>
         <form-bean name="HelloForm" type="hello.HelloForm"/>
</form-beans>
注意:配置动态ActionForm Bean,还必须配置<form-bean>元素的<form-property>元素。
<form-beans>
         <form-bean name="HelloForm" type="hello.HelloForm"/>
         <form-bean name="userForm" type="org.apache.structs.action.DynaAction">
         <from-property name="firstname" type="java.lang.String"/>
         <form-property name="secondname" type="java.lang.String">
         <form-property name="age" type="java.Integer" initial="18">
     </form-beans>
3<global-exception>元素
<global-exception>用于配置异常处理,<global-exception>元素可以包含零个或者多个<exception>元素。
<exception>元素用来设置java异常和异常处理类org.apache.structs.action,Exception   Hander之间的映射。
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>
        <forward name="forward1" path="/Action1.do"/>
<forward name="forward1" path="/Action2.do"/>
</global-forwards>
如果jsp1.jsp把请求转发给Action1,可以使用以下代码:
<html:link forward=”forward1”>
   或者<logic:forward name=”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>元素用于配置Resource Bundle,Resource Budle用于存放本地化消息文件。
Structs标签
HTML标签
标签名     描述
base     包装HTML的base元素
button     包装HTML的 button类型的input元素
cancel     包装HTML cancel 按钮
checkbox     包装HTML checkbox 类型的输入域
errors     有条件地显示一些error消息,显示ActionErrors信息
file     包装HTML文件上传输入域
form     定义HTML form 元素
frame     包装HTML frame 元素
hidden     包装HTML hidden 输入域
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控件定义一个公共属性。
(Struts 1.0 要求每个属性都要mutator 和accessor 。Struts 1.1 则没有如此严格)
ActionForm还可能要符合一些可选的要求:
如果你要求ActionForm 在传递属性到Action之前校验它们,你就必须实现validate
方法;
如果想在组装前初始化属性,必须实现reset , 它在ActionForm 组装前被调用;
动态ActionForm
ActionForm 作为类型转换器
ActionForm的一个强制点是应该使用String 和boolean属性。实际上,这意味着属性
必须得从一种转换到另一种类型。大部分应用也需要一些属性,比如电话号码或者数量,以
一种格式化的方式出现。核心Java 包提供一些工具来做这种事情,但是要清楚地将他们集
成到应用中仍然是一个挑战。
Struts 开发人员经常在ActionForm中包含helper方法,来进行类型转换。helper 方法
可以有很多种实现方式,这我们在5.6种叙述。
5.2.6 ActionForm 作为防火墙
当请求提交时,ActionServlet 使用一个自动组装机制来从请求参数中设置请求的
ActionForm属性。这让你可以通过控制哪个ActionForm 属性被暴露来控制哪个请求参数
是可接受的。这也意味着如果你的ActionForm 的粗心设计你可能失去控制哪个参数可以接
受的能力。ActionForm 一定不能包含看起来像是一个JavaBean 属性,但不能从HTTP 请
求设置的属性方法。
5.3.4 ActionForm 可以嵌套其它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 属性也可用作这个目的:
public void setDispatch(String dispatch);
public String getDispatch();
Struts 配置提供连个级别嵌套的ActionForward:
   Global (全局) ActionForward对整个应用中的所有Action 对象均有效;
   Local (局部) ActionForward 则在ActionMapping 元素中定义。仅对那些在这个
ActionMapping中调用的Action对象有效。
从Action 对象内部来看,forward 通常像这样来选择:
ActionForward forward = mapping.findForward("continue");

转载于:https://my.oschina.net/zhenguoguan/blog/138739

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值