Struts1.3 action配置

struts1.3 配置文件之action

action元素的全部配置会被映射到ActionMapping对象中。

下面是action元素的每一个属性的做用描述:html

attribute

在struts将JSP页面的表单对象封装成一个ActionForm对象后,会将这个ActionForm对象保存在request做用域中或者session做用域中,attribute属性就是做为key被存储到做用域中。java

在JSP页面能够直接使用EL表达式去获取ActionForm对象:apache

${requestScope.对象名.属性}session

或者app

${sessionScope.对象名.属性}jsp

这里的对象名就是attribute属性定义的值。ide

注意:当action元素中定义了name属性后,attribute属性的值将被忽略。this

若是当前action须要用到ActionForm时,name属性是必须的,attribute属性就是非必须的。spa

通常状况下,attribute属性值与name属性值的值相同。orm

cancellable

可 取的值为:true,false,yes,no。在JSP页面的表单中,<html:cancel />标签容许退出当前Action,若是cancellable属性值为真(true,yes),则一切正常。若是cancellable属性为假 (false,no),则点击cancel按钮后发生org.apache.struts.action.InvalidCancelException异常。

默认为false。

catalog

The name of a commons-chain catalog in which to look up a command to be executed as part of servicing this request. Only meaningful if "command" is also specified.

className

某个实现ActionMapping类的子类的全路径名(包括包名)。能够自定义一个ActionMapping的子类。

默认为<action>元素的父节点<action-mappings>的type属性,若是未定义则默认为org.apache.struts.action.ActionMapping

command

The name of a commons-chain command which should be looked up and executed as part of servicing this request.

extends

The path of the ActionConfig that this object should inherit properties from.

forward

某个servlet或者jsp页面或者其余资源的相对路径。若是使用了forward属性,则当前action被触发时,会跳转到forward属性指定的资源,不会继续进行处理,固然也会忽略type属性。

<action path="/login" forward="/form/login.jsp" />

当 用户访问"/login.do"时,会forward到"/form/login.jsp"页面,Struts内部会使用 RequestDispatcher.forward()方法。这是一个很好的隐藏JSP页面的真实路径方法。能够将JSP页面放在WEB-INF目录 下,这样只能经过"*.do"或者被Action调用的形式访问。

include

做用同forward属性,能够包含某个资源,内部是经过RequestDispatcher.include()方法实现。 一样会忽略type属性。

input

当前action的提交页面路径(默认)或者其余资源的相对路径。使用ActionMapping.getInputForward()能够返回input属性指定的资源路径。

当FormBean的验证方法vaildate返回不为null的ActionErrors时,将返回input属性指定的路径,若是没有指定input属性,将抛出异常(java.lang.IllegalArgumentException: The path of an ForwardConfig cannot be null

当在action元素中定义了name属性时,input属性是必须定义的。

name

FormBean的name,应该与<form-bean>元素中的name属性相同,这样才能将FormBean与当前action绑定起来。

若是有了name属性,则必须定义input属性。

attribute属性与name属性相似,可是name是必须的,attribute不是必须的。

Action是经过name属性去寻找本身的FormBean,而不是attribute属性。

parameter

此 属性结合DispatchAction类使用。当parameter属性值为method,则访问连接"/userAction?method=add" 时,在继承了DispatchAction的Action类中会调用自定义的add方法。实现不一样的操做,自动调用不一样的业务处理方法。不用手动去写if else代码了。

具体,请参看《Struts1.X-DispatchAction类-根据请求参数实现业务分派》

path

以"/"开头,不带文件扩展名的路径,Struts根据path属性来选择相应的Action处理用户的请求。好比当某个请求地址为"show.do",则path属性应该为"/show",这样才能找到合适的Action处理用户的请求。

prefix

指 定填充当前 Action 关联 FormBean 时 ,要添加到请求参数名称的前缀,所以,若是请求参数名为 "username" 而且 prefix 属性被设置为 "search" ,则将对 FormBean 调用一个名为 setSearchUsername() 的方法,只有指定了 name 属性,本属性才有效

roles

以逗号分割的一段role角色名,只有这些角色才能访问当前Action,其余用户访问后会抛出【org.apache.struts.chain.commands.UnauthorizedActionException】异常。

scope

FormBean的做用域,可取的值为request和session,默认为session。若是未定义name属性,则这个属性也就么意义了。

suffix

做用同prefix,suffix为后缀,prefixx为前缀。

type

完整的类名,包括包名,此类应该是org.apache.struts.action.Action类的子类。若是定义了forward属性或者include属性,则type属性被忽略。

unknown

可取的值:true,false,yes,no。当为真时(true,yes),当前这个Action将处理全部未找到相应处理Action的请求。只能有一个Action的unknown属性为真。默认为false。

validate

可取的值:true,false,yes,no。当为真时(true,yes),在进入Action处理类前,是否调用ActionForm Bean的validate()方法对表单数据进行验证。默认为true。

相关文章
相关标签/搜索