I am a noob to Struts framework. I am trying to understand how action-mapping works exactly. Suppose I have a JavaScript file that sends an AJAX request:
$("button").click(function(){
$.ajax({url: "myTestUrl.do", success: function(result){
//do something with result
});
});
and my struts-config.xml
file looks like this:
<?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>
I don't understand the relationship between the action
and the form-bean
. Will my request be handled by TestAction
? If so, what is the purpose of the form bean type
attribute?
UPDATE:
For anyone who needs a great overview of struts MCV framework check out this link: http://www.javaranch.com/journal/2002/03/newslettermar2002.jsp#struts
The relationship is made by the
name
attribute in the action config. So if you usename="testForm"
then form bean with the nametestForm
will be injected to the action's execute method.Your request might be handled if the relative url match the path value in action config and you have mapped the action servlet to
*.do
in servlet mapping pattern.The
type
attribute of the<form-bean>
is used to enter FQCN of the bean class that would probably extend theActionForm
. It's needed by Struts to be able to instantiate a bean when required.