首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Spring和Struts2集成

Spring和Struts2集成
EN

Stack Overflow用户
提问于 2011-06-30 17:43:57
回答 2查看 1.6K关注 0票数 0

这是一个设计层面的问题,我需要关于什么是更好的方法的意见。

我正在开发的应用程序使用Struts2和Spring (用于依赖注入)。每个Action类都调用服务层来执行业务功能。所有数据都保存在模型类中。每个动作都使用模态来保存/编辑数据。这些Modal类被定义为具有getter/setter的类的私有成员。

问题1)我们是否应该将Modal类定义为应用程序上下文中的Beans?目前我还没有。在表单提交时,Struts本身创建实例。在编辑时(当我想在屏幕上显示数据时),我必须显式地创建模式(使用new )。更好的方法是什么?

问题2) aplCntx中操作类的bean是否应该定义为scope=“原型”?Struts本身会不会注意创建操作类的新实例?

EN

回答 2

Stack Overflow用户

发布于 2011-07-01 00:04:35

问题1:

正如Jigar所说,您不需要在应用程序上下文中将操作字段定义为bean,因为在大多数情况下,它们只是在页面和应用程序之间传递数据,所以最有可能的情况是,您从服务层创建了它们,并且只想将它们传递给页面以供呈现,或者它们的数据是从页面提交的,在这种情况下,struts2负责实例化。

问题2:

在struts2中有一个对象工厂,默认情况下它负责操作的创建。您可以对此进行更改,并指定spring来处理操作创建。首先,您必须将spring plugin for struts2添加到类路径中,然后将以下行添加到struts2配置文件中:

代码语言:javascript
代码运行次数:0
运行
复制
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory"/>

然后为您的操作创建bean,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
<bean id="myActionBean" class="com.my.myAction" scope="prototype">
    ... required properties ...
</bean>

请记住,您必须将作用域设置为prototype,这就是它对struts2的工作方式。然后在您的struts配置文件中:

代码语言:javascript
代码运行次数:0
运行
复制
<action name="myaAction" class="myActionBean">
    ... required result mapping ...
</action>
票数 3
EN

Stack Overflow用户

发布于 2011-06-30 17:46:24

1)我们应该将Modal类定义为应用程序上下文中的Beans吗?目前我还没有。在表单提交时,Struts本身创建实例。在编辑时(当我想在屏幕上显示数据时),我必须显式地创建模式(使用new )。更好的方法是什么?

不是的。您不应该在spring上下文中定义modal,它们应该只是简单的POJO

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6532884

复制
相关文章

相似问题

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