上面讲到了一个客户请求是如何被控制器转发和处理的,但是,控制器如何知道什么样的信息转发到什么样的Action类呢?这就需要一些与动作和请求信息相对应的映射配置说明。在struts 中,这些配置映射信息是存储在特定的XML文件(比如struts-config.xml)。这些配置信息在系统启动的时候被读入内存,供struts framework在运行期间使用。在内存中,每一个<action>元素都与ActionMapping类的一个实例对应。
下面显示了一个登陆的配置映射。
<action-mappings>
<action path="/logonAction" type="com.test.LogonAction"
name="LogonForm" scope="request" input="logoncheck.jsp"
validate="false">
<forward name="welcome" path="/welcome.jsp" />
<forward name="failure" path="/logon_failure.jsp " />
</action>
</action-mappings>
上面的配置表示:当可以通过/logonAction.do提交请求信息的时候,控制器将信息委托com.test.LogonAction处理。调用LogonAction实例的execute()方法。同时将Mapping实例和所对应的LogonForm Bean信息传入。其中name=LogonForm,使用的form-bean元素所声明的ActionForm Bean。
form-bean的声明如下
<form-beans>
<form-bean name="LoginForm" type="com.test.LoginForm" />
</form-beans>