前几天在弄struts和spring整合的时候,把action交给spring来管理。但是调试的时候出了点问题。
问题是:
我页面有一个grid和一个表单,点击grid的edit链接,会去数据库查询数据,然后放到from上来,同时有一个Link,是add功能的,点击这个link,就会清空form上的数据,点save button的时候,会做add或者update到数据库。
现在的流程是:点击edit,然后form上显示数据,然后再点add,form的数据会被清空,然后输入数据,在点save按钮,这个时候发现在action上的vo(对应页面上的form数据)的id,即是数据库里面的主键,这个时候已经存在了数据,时候只要先点edit再点add的时候,数据都是修改edit的时候的那条记录。
就算没有输入数据,直接点save,验证报错,没有执行action的方法的时候,实现Preparable接口,一样能看到那个vo.id是存在值的。
怎么会这样奇怪呢?
要是不整合spring的时候,是没问题的呀?
后来找了许多资料,也没看到别人类似的问题,也或许是我没找对资料罢了。
今天下班回来,突然记得配置spring的bean的时候有一个scope属性,然后把这个属性给上prototype,问题就解决了,add是add,update是update.
真是个粗心汉.........................
.
分享到:
相关推荐
本资源包涵盖了Spring Cloud、Spring Boot、版本控制工具Git及代码托管平台GitHub,以及Spring框架的经典书籍《Spring in Action》的相关内容,旨在帮助开发者深入理解和应用这些技术。 1. **Spring Boot**: Spring...
- 创建 Spring 的配置文件,定义需要托管的 Bean,包括Action、Service、DAO等,可以利用@Autowired注解自动注入依赖。 - 用户登录和注册功能的实现,通常涉及到Action处理请求,Service处理业务逻辑,以及...
可以使用`<spring:bean>`标签或`struts-plugin.xml`中的`<struts:spring-plugin>`来实现Action的Spring托管。 4. **事务管理**:通过Spring的AOP配置,可以声明式地管理事务,如`@Transactional`注解,这样在Action...
总结,该例示注释非常详细,演示Spring托管Hibernate和Struts的Action, 以及Spring的事务声明(包括1.x与2.x的用法)与非事务声明的使用方式。 使用DWR可以方便的使用Spring托管的持久层功能。 目的:希望广大Java...
在Flex和Spring整合中,BlazeDS作为桥梁,使得Flex客户端可以透明地访问Spring托管的bean和服务。下面是一些关键步骤: 1. **配置BlazeDS**:在服务器端,你需要在Spring应用上下文中配置BlazeDS的...
基于Spring的DispatcherServlet方式则更加灵活,但配置相对复杂,需要处理Spring MVC和Struts2的URL映射问题。 无论选择哪种方式,整合Spring和Struts2都可以带来更好的代码组织和模块化,使得开发者能够更专注于...
- **结果映射**:配置Struts2的结果映射,通常会指向一个Spring托管的bean,该bean负责生成视图。 4. **优势**: - **解耦**:Spring和Struts2的整合使得Action不再直接依赖于服务层和DAO层,而是通过Spring的DI...
2. 配置Spring的ApplicationContext,定义需要托管的Action类及其依赖。 3. 在Struts2的配置文件中启用Spring插件,并指定Spring配置文件的位置。 4. 在Action类上添加必要的注解,以便Spring管理和注入。 综上所述...
2. **Spring托管的Java类暴露给JavaScript**:通过Spring的`@Service`或`@Component`注解标记Java类,然后在DWR配置中声明这些类,使它们可被JavaScript调用。 3. **依赖注入**:DWR中的Java对象可以直接利用Spring...
3. 在Struts2的配置文件中指定Spring插件,使其能识别Spring托管的Action。 4. 在Action类上使用Spring的@Component或@Service注解,并使用@Autowired注入依赖。 通过分析这两个项目的源码,我们可以深入理解Struts...
这样,当请求到达Struts时,实际的处理工作将由Spring托管的bean来完成。 ```xml <action path="/someAction" type="org.springframework.web.struts.DelegatingActionProxy"> </action> ``` 3. **配置Action和...
为了实现这一目标,需要在Struts的配置文件(struts-config.xml或struts2的struts.xml)中指定Action类是由Spring托管的。 8. **整合步骤**: - 配置Spring容器:设置`context-param`并编写`applicationContext....
最后,Struts2的Action可以直接调用Spring托管的服务,这些服务又可以通过Hibernate来操作数据库。 在实际项目中,SSH整合通常涉及以下步骤: 1. 配置Struts2的struts.xml,定义Action和结果页面。 2. 配置Spring的...
22.1.4小节,教程指出完成整合后,Struts的Action类可以由Spring托管,实现IoC和AOP的结合。这意味着可以在Action中灵活地添加切面和切入点,实现如日志记录、安全性检查等横切关注点的代码。 最后,22.1.5小节提到...
Struts2会自动将Spring托管的bean注入到Action类中。 ```java public class HelloWorldAction { private MessageService messageService; public void setMessageService(MessageService messageService) { ...
- struts-plugin:与Spring集成的插件,用于Spring托管Action类。 - hibernate-core:Hibernate的主要库,包含ORM的API和实现。 - hibernate-entitymanager:JPA(Java Persistence API)的实现,提供了ORM服务。 - ...
Action类应该被Spring托管,其成员变量如UserService可以通过@Autowired自动注入,这样业务逻辑类可以直接使用,无需在Action中手动创建实例。 6. **优点**:集成后的系统具有更好的分层结构,提高了代码的可维护性...
Struts2的配置文件(struts.xml)允许我们定义各种Action类及其关联的结果页面,同时也支持动态方法调用和插件扩展。 其次,Spring2.5.6 是一个全面的轻量级应用框架,核心特性包括依赖注入和面向切面编程(AOP)。...
ActionForm可以被Spring托管,利用Spring的依赖注入,将SessionFactory注入到ActionForm中,以便在业务逻辑处理时执行数据库操作。 集成步骤通常包括以下几个关键点: 1. **配置Struts**: 配置struts-config.xml,...
- 整合 Struts:通过 Struts-Spring 插件,将 Action 对象作为 Spring 的托管 Bean,使得 Struts 可以直接从 Spring 容器获取 Action 实例。 - 事务管理:Spring 提供的 PlatformTransactionManager 可以对数据库...