例如,如果表单bean用于存储通过action="submitDetailForm"
连接的JSP表单的变量,那么ActionForm
的作用是什么?
我正在开发的应用程序令人困惑的是,它的表单是实际的bean,但有一个bean文件夹可以解析请求结果。
表单映射到操作。它们属于哪个文件夹并不重要。有时表单bean的类与操作bean在同一文件夹中,有时表单bean在单独的文件夹中。您可以在struts-config.xml
中找到使用的文件夹。
如果您阅读Struts-structs-config.xml操作映射的解释,一切都会变得清晰起来:
<form-bean>
的type
属性用于输入可能扩展ActionForm
的bean类的FQCN。Struts需要能够在需要时实例化bean。
您还可以阅读本文,快速了解Struts:框架
struts-config.xml
文件可以有几个部分。我们将看到的第一部分是<action-mappings>
部分。<action>
告诉Struts从ActionServlet
调用哪个类。只有path
和type
是必需的条目。当找到具有path
模型的URL时,type
告诉Struts要调用哪个Action
类。为了在
<action-mappings>
部分中输入一个类并由ActionServlet
调用,它必须扩展类org.apache.struts.action.Action
(请参见清单3(。ActionServlet
将执行Action
对象的perform()
方法。执行方法如下:public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
ActionMapping
和ActionForm
对象将包含在struts-config.xml
、<action-mappings>
和<form-beans>
部分中找到的信息。HttpServletRequest
和HttpServletResponse
对象来自servlet。