今天遇到一个有些意外的需求:在用户输入信息不合法时,回到输入页面并且 将输入的字符串两头的空格trim掉以后显示在输入框里,很不幸的是我把输入页面和验证逻辑写在了两个action(A, B)里,(项目框架限制得很死没办法) 在验证action里校验出错以后mapping.findForward("A.do") ,
发现A页面再次初始化时,在B中做的trim没有起作用,显示的还是用户第一次输入的值。经过一个上午的研究,找出了答案:
struts框架在处理http请求时,会把HTTP请求中的包含的属性装配到form中(这些属性被放在request.parameterMaps中),于是在执行mapping.findForward("A.do")时,相当于又发起了一次http请求,这时 struts的actionServlet会从parameterMaps中读取第一次提交数据时的属性值,并且装配到form中(A B共用一个form),于是在B中做的trim后的值被盖掉了。
解决方案:将验证在A画面中做,这样即使校验出错,也不会再去发一次请求。。。
具体过程如图:
- 大小: 91.5 KB
- 大小: 574.2 KB
- 大小: 324.5 KB
分享到:
相关推荐
【JavaBean与Web Form表单自动装配】是Web开发中常用的一种技术,特别是在使用像Struts2这样的MVC框架时,能够极大地简化数据绑定的过程。这个过程的核心是将用户在Web表单中填写的数据自动地映射到JavaBean对象的...
指定了Spring框架中的自动装配模式,默认值为`name`,表示Spring框架将根据Bean的名称进行自动装配。 #### struts.objectFactory.spring.useClassCache 此属性决定了在整合Spring框架时,是否缓存Bean实例。默认...
5. `struts.objectFactory.spring.autoWire`: 控制Spring的自动装配模式。默认的`name`模式根据Bean的名称进行装配。 6. `struts.objectFactory.spring.useClassCache`: 当整合Spring时,决定是否缓存Bean实例。...
5. `struts.objectFactory.spring.autoWire`:这个属性控制Spring框架的自动装配模式,默认值是`name`,意味着基于Bean的名称进行自动装配。 6. `struts.objectFactory.spring.useClassCache`:决定是否缓存Spring...
struts.objectFactory.spring.autoWrite 属性指定 Spring 框架的自动装配模式,该属性的默认值是 name,即默认根据 Bean 的 name 属性自动装配。 6. struts.objectFactory.spring.useClassCache struts....
- **功能**:允许引用自定义的属性文件,以覆盖`struts.properties`中的属性。 - **示例**:设置为`struts.custom.properties=myapp.properties`,则会读取`myapp.properties`文件并将其属性添加到全局的属性集中。 ...
设置Spring框架的自动装配模式,默认为`name`,即基于bean名称进行自动装配。 #### 6. struts.objectFactory.spring.useClassCache 控制Spring整合时的bean实例缓存,通常保留默认值`true`以提高性能。 #### 7. ...
- **struts.objectFactory.spring.autoWrite**:指定Spring框架的自动装配模式,默认值为`name`,即默认按照Bean的名称进行自动装配。 - **struts.objectFactory.spring.useClassCache**:该属性决定在整合Spring...
可以直接运行,并对整合spring和struts2步骤及需要注意的事项进行类总结 整合spring和struts2总结 1.将struts2和spring中的库文件复制...— 如果没有使用Spring ObjectFactory,提供了2个拦截器来自动装配action。
- **struts.objectFactory.spring.autoWrite**: 控制Spring框架的自动装配模式,默认是"name",意味着根据Bean的名字进行装配。 - **struts.objectFactory.spring.useClassCache**: 如果设为"true",Spring将缓存...
5. struts.objectFactory.spring.autoWire:控制Spring框架的自动装配模式,默认为"name",基于Bean的名称进行自动装配。 6. struts.objectFactory.spring.useClassCache:决定是否缓存Spring Bean实例,通常设为...
**描述**: 当使用Spring作为对象工厂时,此属性指定Spring的自动装配模式。默认情况下,使用的是基于`name`属性的自动装配方式。 **示例代码**: ```properties struts.objectFactory.spring.autoWire=name ``` ##...
5. `struts.objectFactory.spring.autoWrite`和`struts.objectFactory.spring.useClassCache`: 分别控制Spring自动装配模式和是否缓存Bean实例。 6. `struts.objectTypeDeterminer`: 决定了Struts2如何检测对象类型...
- **描述**:是否启用Spring自动装配功能。 - **示例**:启用自动装配。 - **配置**: ```properties struts.objectFactory.spring.autoWrite=true ``` - **struts.objectFactory.spring.useClassCache** - ...
下面将详细介绍Struts2框架中的核心概念,包括上传功能、标签使用、拦截器以及自动装配Bean对象和验证框架的应用。 1. **Struts2上传功能**:在Struts2中,你可以方便地实现文件上传功能。这通常涉及使用`Commons ...
3. **代码简洁**:通过Spring框架的自动装配功能,减少了大量的XML配置,使得代码更加简洁。 4. **测试友好**:依赖注入和面向切面编程使得单元测试变得更加容易。 #### 六、结论 本文介绍了如何将Struts2框架与...
- `struts.objectFactory.spring.autoWire`设定Spring的自动装配策略,如`name`,指基于bean名称的自动装配。 - `struts.objectFactory.spring.useClassCache`控制是否缓存Spring创建的bean,通常默认为`true`。 ...
Spring将根据这些配置,自动装配对象之间的依赖关系,实现控制反转。 ### 结论 在Struts 2中实现IoC,不仅简化了代码结构,提高了可测试性和可扩展性,还充分利用了Spring框架的强大功能。通过将对象的创建和管理...
- **struts.objectFactory.spring.autoWrite**:指定Spring框架的自动装配模式,默认值为 `name`。 - **struts.objectFactory.spring.useClassCache**:指定整合Spring框架时,是否缓存Bean实例,默认值为 `true`...