1.sruts2用什么来代替struts1中的formBean呢?其实在我们调用action中的excute方法之前,struts2的拦截器,已经帮我们调用action中属性的setter方法,给属性都设值了,所以在excute方法中,我们可以直接调用属性值.而我们在jsp中的ul表达式显示属性,那就得归功于action中属性的getter方法了.
关于复合类型的getter和setter方法,我们并不需要关注,因为struts2帮我们都弄好了,比如,按顺序下面3步:
1)我们的提交页面: <input type="text" name="product.id"/>
2)那么我们的action中属性只有product的get和set方法.
3)还有我们的转向页面: ${product.id}
看懂了吧!呵呵,当然你得先有Product这个实体存在.因为这里用了反射,先生称Product对象,然后给product类里的属性设值.
2.顺便说下struts2的2.1.6版本的bug问题,建议大家使用2.1.6以上的版本.
3.类型转换器---转换器有2个作用,一是,参数提交时,把提交上来的参数转化成我们需要的类型,然后我们在excute方法中直接使用; 二是,我们在view层用el表达式显示的属性的时候,用来回显,可以把我们使用的类型转化成字符串型.见下图,我们自定义的转换日期的转换器:
定义我们的转换器为局部转换器:
我们的局部转换器的properties文件里内容是什么呢,如下:
"action中的属性名=自定义转换器的路径",见下图示例:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
定义我们的转换器为全局转换器,做如下的事:
1)在根目录下建立xwork-conversion.xml
2)xwork-conversion.xml内容就不是要对什么属性应用哪个转换器了,变成我们要对什么类型用用哪个转换器了.示例:
而后只要是action中的属性有需要转换类型的,对应上全局转换器就会被自动转换
当然局部转换与全局转换器,有局部优先原则.这点我就不解释了!
4.
重要!访问或添加application/request/session属性,如下图:
有了上图,我想大家都明白了struts2如何访问我们的scope的!
当然如果大家想要直接获得request,response对象的话,可以这样做,同样见图片:
,也许这样直接获得request等属性,有些人更喜欢!
- 大小: 40.4 KB
- 大小: 21.5 KB
- 大小: 6.1 KB
- 大小: 6.8 KB
- 大小: 24 KB
- 大小: 17.8 KB
分享到:
相关推荐
本文主要介绍Struts1和Struts2中的自定义类型转换器,并探讨其实现机制。 #### 二、Struts1中的自定义类型转换器 在Struts1中,自定义类型转换器主要是通过继承`com.sun.org.apache.commons.beanutils.Converter`...
【标题】: "Java Web开发中的JSP、Servlet、Struts、Hibernate和Spring技术详解" 【描述】: "本文深入探讨Java Web开发中常见的技术,包括JSP、Servlet、Struts、Hibernate和Spring,讲解它们的工作原理和实用技巧...
- **Struts2**:使用OGNL进行类型转换,提供更灵活的配置和基本及常见类型的转换器。 9. **校验**: - **Struts1**:校验可以在ActionForm的validate方法中完成,或使用Commons Validator扩展,对子对象的校验...
在IT行业中,Tomcat、Struts2和Servlet Filter是Java Web开发中的重要组成部分。了解它们的工作原理对于构建高效、安全的Web应用程序至关重要。下面将详细阐述这三个组件的基本概念和工作流程。 首先,Tomcat是一个...
本文将详细讲解在Struts2中获取`request`对象的几种常见方法,以及它们的适用场景。 1. **Action上下文(ActionContext)** `ActionContext`是Struts2的核心组件之一,它封装了与当前请求相关的所有上下文信息,...
- **类型转换和验证**:Struts2支持自定义类型转换器,可以将用户输入的数据转换为所需的类型;同时还提供了一套强大的验证机制,确保用户输入的数据符合预期格式。 #### 五、Struts2实战经验 - **国际化**:通过...
Struts2则使用OGNL进行类型转换,提供更强大的内置转换器。 最后,在验证功能上,Struts1支持在ActionForm的validate方法中进行手动验证,或者使用Commons Validator扩展。Struts2提供了更高级的验证机制,可以通过...
在类型转换上,Struts1的ActionForm属性通常是String类型,依赖于Commons-Beanutils进行转换,转换器不可配置。Struts2则利用OGNL进行转换,内置了对基本类型和常见对象的转换。 最后,在数据校验方面,Struts1支持...
然而,与Struts1.x不同,Struts2的Action类不再直接接收HttpServletRequest和HttpServletResponse对象作为execute方法的参数。这使得在Action中直接获取Response对象变得稍显复杂。下面我们将详细介绍在Struts2中,...
- **Struts2** 则使用OGNL来进行类型转换,并且为常见的对象类型提供了内置的转换器。此外,Struts2的校验机制更加完善,支持链式校验子属性,使得校验规则更加灵活和精细。 #### 七、Action执行控制 - **Struts1*...
2. `xwork-2.x.x.jar`:XWork框架为Struts2提供了基础,包括Action处理和类型转换等功能。 3. `ognl-2.6.x.jar`:对象图导航语言(OGNL)是Struts2中使用的表达式语言,用于访问和修改对象属性。 4. `freemarker-2.3...
- **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...
- **Struts2**: 使用OGNL进行类型转换,为基本和常用对象提供了转换器。Struts2的类型转换机制更为灵活且易于配置。 #### 9. 数据校验机制 - **Struts1**: 支持在`ActionForm`的`validate`方法中手动校验数据,...
- **Struts2**的Action类并不直接依赖Servlet API,而是通过中间层(如拦截器)间接与Servlet API交互,这样的设计使得**Struts2**的Action更加独立,也更容易进行单元测试。 #### 请求处理流程 - **Struts1**执行...
Struts2允许自定义类型转换器,以便在Action属性和请求参数之间进行数据转换。局部类型转换器针对特定Action类的某个属性,而全局类型转换器则对所有Action类生效。通过实现`Converter`接口或扩展`...
- `jackson-*.jar` 或 `gson-*.jar`:这两个库提供了JSON对象和Java对象之间的自动转换,Struts2可以与它们集成,使得JSON处理更加便捷。 4. **Servlet容器相关库**:由于Struts2是基于Servlet API的,因此需要`...
- **自定义类型转换器**:Struts2允许开发者通过实现TypeConverter接口来实现对特定类型的转换。 #### 五、最佳实践 为了更好地利用Struts2的强大功能,以下是一些最佳实践建议: - **模块化设计**:将应用划分为...
Struts2还提供了内置的类型转换器(Type Converter),使得框架能自动将请求参数转换为所需的数据类型。这减轻了开发者的工作负担,因为在Struts1中,若要实现类似功能,需要注册自定义的类型转换器。 此外,Struts...