首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹簧支柱和形式

弹簧支柱和形式
EN

Stack Overflow用户
提问于 2010-04-15 16:17:30
回答 2查看 1.4K关注 0票数 1

我需要在项目中集成struts和spring。

我读了这篇文档来感叹struts,这对于经典的beans来说还可以,但是我的表单有一个问题。

在我的struts-config.xml中有一个类似这样的表单:

代码语言:javascript
复制
  <form-beans>
<form-bean name="creationForm" type="org.apache.struts.validator.DynaValidatorActionForm" >

  <form-property name="libelle" type="java.lang.String" />
  <form-property name="quantite" type="java.lang.String" />
  <form-property name="prix" type="java.lang.String" initial="10" />

</form-bean>

但对我来说,在struts-config中有一个"type“是很奇怪的,因为它是spring来管理bean。

我在文档中找不到任何可以通过spring管理表单的内容,并且在struts-config中表单的"type“属性是强制的。

有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2010-04-15 16:50:37

我不知道您是如何选择集成这两个框架的,但根据经验,我可以告诉您它是如何工作的。

例如,我的struts-config.xml具有以下内容:

代码语言:javascript
复制
<struts-config>
    <!-- ================== Form Beans ================ -->
    <form-beans>
        <form-bean name="UploadForm" type="com.foo.bar.forms.UploadForm" />
    </form-beans>
    <!-- ================== Action Mapping Definitions ================ -->
    <action-mappings>
        <action path="/pages/UploadFiles" name="UploadForm"
            type="org.springframework.web.struts.DelegatingActionProxy" scope="request"
            input="/pages/ImportFiles.jsp">
            <forward name="success" path="/pages/SwitchView.do" />
        </action>
    <!-- ================================ Plugins ============================== -->
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation"
            value="/WEB-INF/action-servlet.xml, /WEB-INF/applicationContext.xml" />
    </plug-in>
</struts-config>

我的action-servlet.xml文件包含以下bean定义:

<bean name="/pages/UploadFiles" class="com.foo.bar.actions.UploadFilesAction" />

这样,Struts-1保留了对MVC的控制,但Spring“管理”了整个应用程序。

希望能有所帮助

编辑:

您的web.xml还应具有以下内容:

代码语言:javascript
复制
<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<servlet>
    <servlet-name>context</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

EDIT 2:

嗯,在您的struts配置中,您可以像我一样设置表单的类型(com.foo.bar.forms.UploadForm)。

我的代码可以工作,但奇怪的是,struts管理表单bean,spring管理其他bean。

我一点也不觉得奇怪……

具体地说,我想知道是否可以做到这一点

添加bean:

代码语言:javascript
复制
<bean name="CaseUpdateForm" class="com.foo.bar.forms.CaseUpdateForm" >

并将上面的bean转换为:

代码语言:javascript
复制
<bean name="/pages/UploadFiles" class="com.foo.bar.actions.UploadFilesAction">
   <property name="updateForm" ref="UpdateForm" />
</bean>
票数 0
EN

Stack Overflow用户

发布于 2010-04-15 17:06:32

嗯,在您的struts-config中,您可以像我一样设置表单的类型(com.foo.bar.forms.UploadForm)。

我的代码可以工作,但奇怪的是,struts管理表单bean,spring管理其他bean。

具体地说,我想知道是否可以做到这一点(我使用您的示例):

struts-config:

代码语言:javascript
复制
<form-beans>
    <form-bean name="UploadForm" />
</form-beans>

action-servlet:

代码语言:javascript
复制
 <bean name="UploadForm" class="com.foo.bar.forms.UploadForm" >
  </bean>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2643685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档