弹簧支柱和形式

发布于 2024-08-28 19:01:14 字数 657 浏览 2 评论 0原文

我需要将struts和spring集成到一个项目中。

我阅读了文档来整合struts,对于经典bean来说这是可以的,但我的表单有问题。

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

  <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 中有一个“类型”很奇怪,因为管理 bean 的是 spring。

我在文档中没有找到任何通过 spring 管理表单的内容,并且属性“type”对于 struts-config 中的表单是必需的。

有人可以帮助我吗?

I need to integrate struts with spring for a project.

I read the doc to ingrate struts and it's ok for classic beans but I have a problem for my forms.

I have a form like this in my struts-config.xml:

  <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>

But it's strange for me to have a "type" in struts-config because it's spring which manages beans.

I don't found anything in the doc to manage forms by spring and the attribute "type" is mandatory for form in struts-config.

Someone can help me please ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花心好男孩 2024-09-04 19:01:14

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

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

具体来说,我想知道是否可以这样做(我使用您的示例):

struts-config:

<form-beans>
    <form-bean name="UploadForm" />
</form-beans>

action-servlet:

 <bean name="UploadForm" class="com.foo.bar.forms.UploadForm" >
  </bean>

Hmm, in your struts-config, you set the type for your form (com.foo.bar.forms.UploadForm) like me.

My code work but it's strange struts manage form beans and spring manage other beans.

Concretely, I would like to know if it's possible to do that (I use your example) :

struts-config:

<form-beans>
    <form-bean name="UploadForm" />
</form-beans>

action-servlet:

 <bean name="UploadForm" class="com.foo.bar.forms.UploadForm" >
  </bean>
数理化全能战士 2024-09-04 19:01:14

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

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

<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 定义:

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

希望它有帮助

编辑:

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

<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>

编辑 2:

嗯,在你的 struts-config 中,你设置了
您的表单的类型
(com.foo.bar.forms.UploadForm) 类似
我。

我的代码可以工作,但 struts 很奇怪
管理 form beans 和 spring 管理
其他豆类。

我觉得一点也不奇怪...

具体来说,我想知道是否
这是可能的

是的

添加 bean:

<bean name="CaseUpdateForm" class="com.foo.bar.forms.CaseUpdateForm" >

并将上面的 bean 转换为:

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

I don't know exactly how it is that you had chosen to go about integrating the two frameworks but from experience I can tell you that it works.

for example my struts-config.xml has the following:

<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>

my action-servlet.xml file contains the following bean definition:

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

This way Struts-1 retains control of the MVC but Spring "manages" the whole application.

Hope it helps

EDIT:

your web.xml should alos have the following:

<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:

Hmm, in your struts-config, you set
the type for your form
(com.foo.bar.forms.UploadForm) like
me.

My code work but it's strange struts
manage form beans and spring manage
other beans.

I don't think it is strange at all...

Concretely, I would like to know if
it's possible to do that

Yes

add the bean:

<bean name="CaseUpdateForm" class="com.foo.bar.forms.CaseUpdateForm" >

and convert the bean above to:

<bean name="/pages/UploadFiles" class="com.foo.bar.actions.UploadFilesAction">
   <property name="updateForm" ref="UpdateForm" />
</bean>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文