Struts配置文件

Struts配置文件

将struts组件结合在一起:struts-config.xml。默认值 \WEB-INF\struts-config.xml。配置文件可以定义:

(1)全局转发
(2)ActionMapping类 帮助控制器将请求映射到操作
(3)ActionForm bean 显示模块数据
(4)JDBC数据源

(1)配置全局转发

全局转发用来在JSP页之间创建逻辑名称映射。转发都可以通过对调用操作映射的实例来获得,例如:

actionMappingInstace.findForward"logicalName";
<global-forwards>
<forward name="bookCreated" path="/BookView.jsp"/>
</global-forwards>

属性描述

Name 全局转发的名字
Path 与目标URL的相对路径

(2)配置ActionMapping

ActionMapping对象帮助进行框架内部的流程控制,它们可将请求URI映射到Action类,并且将Action类与ActionForm bean相关联。ActionServlet在内部使用这些映射,并将控制转移到特定Action类的实例。所有Action类使用perform()方法实现特定应用程序代码,返回一个ActionForward对象,其中包括响应转发的目标资源名称。例如:

<action-mappings>
<action path="/createBook" -- 类的相对路径
type="BookAction" -- 连接到本映射的Action类的全称(可有包名)
name="bookForm" -- 与本操作关联的ActionForm bean的名称
scope="request" -- ActionForm bean的作用域(请求或会话)
input="/CreateBook.jsp">
<forward name=”failure” path=/CreateBook.jsp”/>
<forward name=”cancel” path=/index.jsp”/>
</action>
</action-mappings>

Prefix:用来匹配请求参数与bean属性的前缀
Suffix:用来匹配请求参数与bean属性的后缀
attribute:作用域名称。
className:ActionMapping对象的类的完全限定名默认的类是
input:输入表单的路径,指向bean发生输入错误必须返回的控制
unknown:设为true,操作将被作为所有没有定义的ActionMapping的URI的默认操作
validate:设置为true,则在调用Action对象上的perform()方法前,ActionServlet:将调用ActionForm bean的validate()方法来进行输入检查
:可以定义资源的逻辑名称,该资源是Action类的响应要转发的目标。
ClassName:ActionForward类的完全限定名,默认是org.apache.struts.action.ActionForward
Name:操作类访问ActionForward时所用的逻辑名
Path:响应转发的目标资源的路径
redirect:若设置为true,则ActionServlet使用sendRedirect()方法来转发资源

(3)配置ActionForm Bean

ActionServlet使用ActionForm来保存请求的参数,这些bean的属性名称与HTTP请求参数中的名称相对应,控制器将请求参数传递到ActionForm bean的实例,然后将这个实例传送到Action类。例子:

<form-beans>
<form-bean name="bookForm" type="BookForm"/>
</form-beans>

(4)配置JDBC数据源
用;元素可以定义多个数据源。

ActionServlet类

框架中的控制器组件是有org.apache.struts.action.ActionServlet类实现的,这个类是javax.servlet.http.HttpServlet类的扩展。
Struts controller基本功能是:

1. 截获用户的Http请求
2. 把这个请求映射到相应的Action类,如果这是此类收到的第一个请求,将初始化实例并缓存。
3. 创建或发现一个ActionForm bean实例(看配置文件是否定义),然后将请求过程移植到bean.
4. 调用Action实例的perform()方法并将ActioForm bean,Action Mapping对象,request和response对象传给它。
5.perform返回一个ActionForward对象,此对象连接到相应的jsp页面.

ActionMapping类

将特定请求映射到特定Action的相关信息存储在ActionMapping中,ActionServelt将ActionMapping传送到Action类的perform()方法,Action将使用ActionMapping的findForward()方法,此方法返回一个指定名称的ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null.

Action类

Action类真正实现应用程序的事务逻辑,它们负责处理请求。在收到请求后,ActionServlet会:
为这个请求选择适当的Action
如果需要,创建Action的一个实例
调用Action的perform()方法
如果ActionServlet不能找到有效的映射,它会调用默认的Action类(在配置文件中定义)。如果找到了ActionServlet将适当的ActionMapping类转发给Action,这个Action使用ActionMapping找到本地转发,然后获得并设置ActionMapping属性。根据servlet的环境和被覆盖的perform()方法的签名,ActionServlet也会传送ServletRequest对象或HttpServletRequest对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值