struts2单独使用时action由struts2自己负责创建;与spring集成时,action实例由spring负责创建。这导致在两种情况下struts.xml配置文件的略微差异。
假如:LoginAction在包cn.edu.jlu.cs.action中。
1. struts2单独使用时,action的class属性为LoginAction的全路径名,如下: ... <action name="login" class="cn.edu.jlu.cs.action.LoginAction"> <result name="studentSuccess"> /student/studentindex.jsp </result> ... 2. struts2与spring集成时,class属性是spring的applicationContext.xml中配置的bean的id属性值。 --------------------------------------------------------------------------------------- //struts.xml ... <action name="login" class="LoginAction"> <result name="studentSuccess"> /student/studentindex.jsp </result> ... ---------------------------------------------------------------------------------------- //applicationContext.xml ... <bean id="LoginAction" class="cn.edu.jlu.cs.action.LoginAction" /> ... ----------------------------------------------------------------------------------------
struts2-spring-plugin-2.1.6.jar这个插件在产生action的时候,会自动的按照名字把action的属性注入进去,
即使不在spring配置文件中为相关的action(bean)注入属性或者在action类中用注解注入,
它也会按照action类中属性的名字从当前容器(??Spring)中找有没有这个名字的bean并注入进来,或者显示的给定一个名字注入。
所以action的id(spring配置文件中的)不要和它类里边的变量名相同
如果在struts.xml文件中配置action的class是指向action的实际类,那么action的产生由struts控制,
此时action类中的相关变量会按照名称从容器中注入一个相应的bean,如果找不到对应名称的bean,一旦调用这个action就会出错,
但是如果此时为变量加上一个@Resource注解,struts容器产生过action后就会从Spring容器中找相应的bean注入。
如果class指向的是一个伪控制器(对应spring配置文件中action的bean),那么action的产生由spring控制。
此时action类中的相关变量··必须··用注解@Resource或者xml的方式自定义注入相应的bean,不象之前会按照名字从spring容器中自动查找注入bean,
否则程序运行出错
|
|
分享到:
相关推荐
搭建struts2 + spring框架时需要使用的关联jar struts.xml中action的属性class引用applicationContext中bean的属性id指向的值
当Struts和Spring一起使用时,文件上传的处理通常在Action类中完成,这里需要集成Spring的`@Autowired`注解和Struts的`ActionForm`。Spring的`@RequestParam`注解可以用来获取`CommonsMultipartFile`对象。同时,...
当创建一个对象的时候,它会用Struts2配置文件中的class属性去和Spring配置文件中的id属性进行关联,如果能找到,则由Spring创建,否则由Struts 2框架自身创建,然后由Spring来装配。Spring插件具体有如下几个作用:...
总结,`struts.xml`和`struts.properties`是Struts2框架中至关重要的配置文件,通过它们可以灵活地控制应用的行为和设定。理解并熟练运用这两个文件,对于开发高质量的Struts2应用至关重要。在实际项目中,开发者应...
这样,当Struts2需要创建Action实例时,它会从Spring容器中查找并使用已配置好的bean。 5. **Action类的Spring管理** 在`applicationContext.xml`中,你需要定义Action类的bean,包括它的依赖和其他属性。例如: ...
3. **Action类的配置**:在Struts2的配置文件(通常是`struts.xml`或`struts-plugin.xml`)中,我们不再直接创建Action类的实例,而是通过Spring的ID来引用。例如: ```xml <action name="someAction" class=...
除了上述基本配置,还可以使用注解(如 `@Autowired`)来进一步细化装配逻辑,或者使用 `<property>` 标签在 Spring 配置文件中手动设置 Action 的属性值。 8. **运行与测试**: 完成以上配置后,启动服务器,...
- 在`struts.xml`中定义Action及其对应的方法时,可以通过`class`属性指定具体的Bean名称: ```xml <action name="userAction" class="userAction"> <result>/success.jsp </action> ``` 通过以上步骤,可以...
指定了Struts 2生成URL时是否包含请求参数,可接受`none`、`get`和`all`三个属性值,分别对应于不包含、仅包含GET类型请求参数和包含全部请求参数。 #### struts.custom.i18n.resources 指定了Struts 2应用所需的...
2. **配置Struts 2**:在Struts.xml文件中使用`<constant>`标签指定Spring容器的位置。 3. **使用Spring创建Action**:在Action类中注入所需的Spring托管对象。 ```xml <!-- applicationContext.xml --> ...
`struts.xml` 文件是Struts2的核心配置文件之一,主要负责管理和定义应用程序中的Action映射以及相关的Result定义。具体来说,该文件包括以下几个关键部分: 1. **Action 映射**: - 指定每个Action的名称、执行的...
2. **配置 Action**:在 `struts.xml` 中添加 LoginAction 的配置。 - 定义 `action` 元素,指定类和方法。 - 配置 `result` 元素,根据执行结果跳转至不同页面。 3. **实现页面交互**:创建 `login.jsp` 和 `...
4. 实践MVC模式在Struts2中的应用。 二、实验内容与步骤 1. 注册功能实现: 创建一个Action类,包含username、password和address三个String属性,并定义execute()方法处理注册请求。成功时重定向至success页面,...
在Struts2中,配置文件起着至关重要的作用,其中`struts.xml`用于管理Action映射和Result定义,而`struts.properties`文件则用于定义框架的全局属性。这个文件是基于Properties格式的,存储了一系列键值对,用于定制...
在Struts2中,Action是核心组件,它实现了业务逻辑处理。Struts2的配置文件包括web.xml和struts.xml,前者用于配置Servlet容器,后者则用于定义Struts2的行为。 1. Struts2的Action开发通常需要配置web.xml,struts...
2. Spring DTD:Spring框架主要通过`beans.xml`或`applicationContext.xml`文件进行配置,这些文件可以使用DTD来定义bean、property、ref等元素。Spring的DTD提供了声明bean及其依赖关系、属性注入等能力。例如,`...
- **Struts2 配置**:在 `struts.xml` 文件中配置 `<package>`,使用 `<action>` 标签的 `class` 属性指向 Spring Bean 的全限定类名。 #### 12.5 实现文件上传下载 文件上传和下载是 Web 应用中常见的需求。...
动态Action的配置通常在struts.xml文件中进行,通过指定`<action>`元素的属性`name`和`class`,以及通过`method`属性动态选择Action的方法。 #### Struts2标签库 Struts2的标签库提供了一系列功能强大的标签,用于...
本文将深入探讨Struts2中的常量配置,这些常量在框架的运行时扮演着至关重要的角色。 首先,我们要了解Struts2配置文件的层次结构。主要有以下几个核心配置文件: 1. **struts-default.xml**:这是Struts2核心库中...
在`struts.xml`中定义Action时,可以指定Action的类,而该类可以通过Spring注入其他Bean。例如: ```xml <action name="login" class="com.example.AccountAction"> <result name="success">/success.jsp ...