我是Struts框架的新手。我正在努力了解动作映射是如何准确工作的。假设我有一个发送AJAX请求的JavaScript文件:
$("button").click(function(){
$.ajax({url: "myTestUrl.do", success: function(result){
//do something with result
});
});
我的struts-config.xml
文件如下所示:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="testForm" type="com.test.TestForm"/>
</form-beans>
<!-- Global Forwards -->
<global-forwards>
</global-forwards>
<!-- Action Mappings -->
<action-mappings>
<action path="/myTestUrl"
type="com.test.TestAction"
name="testForm"
scope="request" />
</action-mappings>
<controller locale="true"/>
</struts-config>
我不明白action
和form-bean
之间的关系。TestAction
会处理我的请求吗?如果是,那么表单bean type
属性的用途是什么?
更新:
对于任何需要对struts MCV框架进行全面了解的人,请查看这个、这个和这个。
该关系由操作配置中的name
属性构成。因此,如果使用name="testForm"
,那么名称为testForm
的表单bean将被注入到操作的execute方法中。
如果相对url与action config中的路径值匹配,并且您已经在servlet映射模式中将action servlet映射到*.do
,则可能会处理您的请求。
<form-bean>
的type
属性用于输入可能扩展ActionForm
的bean类的FQCN。Struts需要能够在需要时实例化bean。