1、 需求说明:
1、 User和Administrator两个POJO对像,后者继承前者。
2、 有一个SessionBean提供了一个getAllAdministrator()方法,用来取系统中所有的Administrator对象,而由于代码重用的问题,程员可能会要求此方法返回的是基类对像User而不是Administrator的Collection。
3、 在一个Action类中调用上述SessionBean的getAllAdministrator()方法,得到一个Collection<User>的集合。而在Action中程序员也不做强制类型转换。
4、 WEB程序员在JSP页面需要显示Administrator的特有属性。
2、 WEB端的实现:
1、 Action类如下:
public class ListAdminsAction
extends ActionSupport
{
Collection<User> users = new ArrayList<User>();
public String execute()
throws Exception
{
users = this.getUserManager().getAllAdministrator();
return SUCCESS;
}
public Collection<User> getUsers()
{
return users;
}
public void setUsers(Collection<User> users)
{
this.users = users;
}
}
2、 JSP页面的调用:
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:iterator value="users">
<td>
<!-- name是Administrator继承自User的属性;-->
<s:property value="name"/>
</td>
<td >
<!-- region是Administrator特有的属性;-->
<s:property value="region"/>
</td>
</s:iterator>
3、 说明:上面的调用就可以直接取出Administrator的特有属性region,而不会出错。Struts2做了自动的父类到子类的类型转换。而不用程序员去做其它多余的转换工作。
分享到:
相关推荐
通过分析这个项目,开发者可以了解如何在实际应用中组织Struts2的Action、配置文件、以及如何利用OGNL进行数据操作。同时,对于使用Eclipse或MyEclipse进行Java Web开发的初学者来说,也是一个很好的学习实例,有助...
2. **创建第一个Action**: 创建一个Action类,继承自`ActionSupport`,并重写execute()方法。 3. **配置Struts2**: 在`struts.xml`中配置Action,包括Action的类、结果视图等。 4. **创建视图**: 使用JSP、...
通过这种方式,可以轻松地利用OGNL表达式的强大功能来访问和操作模型中的复杂数据结构。 综上所述,Struts2框架中的类型转换和OGNL表达式语言都是极为重要的特性。正确理解和运用这些特性,可以帮助开发者构建更加...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Web开发领域具有广泛...通过深入理解这些组件的作用和相互关系,开发者可以更好地利用Struts2来提升开发效率,降低项目的复杂性。
- **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,支持拦截器、类型转换、文件上传等特性。Struts2使用过滤...
- 然后,在需要注解的类或方法上应用相应的Struts2注解。 - 配置Struts2的`struts-default.xml`或`struts-plugin.xml`,启用注解配置支持。 - 最后,运行应用程序,Struts2会自动扫描注解并根据它们进行处理。 4...
Struts2则利用OGNL进行转换,内置了对基本类型和常见对象的转换。 最后,在数据校验方面,Struts1支持在ActionForm的validate方法中进行手动校验,或使用Commons Validator扩展。Struts2提供了更多样化的校验方式,...
在北大青鸟Y2学年的课程中,学生们通常会学习如何利用Struts 2框架来构建一个租房网站,这涉及到多个关键知识点。 1. **MVC模式**:Struts 2是基于MVC设计模式的,它将应用程序分为模型、视图和控制器三个部分,以...
### Struts2讲义知识点概览 #### 一、Struts2的历史与发展 - **Struts框架的发展历程**: - Struts最初版本发布于2000年...通过对Struts2核心概念和技术的理解,开发者可以更好地利用这个框架来满足不同项目的需求。
Action类需要继承Struts2提供的ActionSupport类或者实现Action接口,通过方法映射处理HTTP请求。Action类中的方法返回值决定了控制流程的走向,返回值可以是字符串,对应不同的结果视图。 **拦截器** 拦截器是...
- **文件上传**:利用 Struts2 的 FileUploadInterceptor 实现文件上传功能。 - **文件下载**:可以通过 Action 的响应流来实现文件下载。 #### 五、Struts2 实践技巧与优化 **5.1 性能优化** - **减少 Action ...
6. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,用于在Action和视图之间传递数据。它能方便地访问对象属性,甚至可以进行动态方法调用。 7. **插件机制**:Struts2有一个强大的...
在基础的Struts2应用中,我们常常会继承`ActionSupport`类来实现输入校验,从而提高代码的复用性和可维护性。 `ActionSupport`是Struts2提供的一种基础Action实现,它包含了默认的行为,如错误处理、国际化支持和...
Struts1要求Action类继承抽象基类,而Struts2则允许Action类实现Action接口,或者直接使用具有`execute`方法的POJO对象。Struts2的Action对象是为每个请求创建的,解决了线程安全问题,而Struts1的Action是单例模式...
综上所述,"struts2数据封装源码"的学习将涵盖Action类的设计、数据绑定、验证机制、结果配置、拦截器的使用,以及如何利用OGNL和值栈在视图层展示数据等多个方面。通过深入理解这些概念并结合实际的代码示例,可以...
1. **Action类**:Struts2中的Action类是业务逻辑处理的主要载体,继承自`com.opensymphony.xwork2.ActionSupport`或其子类。开发者可以在Action类中定义处理用户请求的方法,并返回一个表示结果的字符串,该字符串...
Struts2则允许开发者直接定义一个带有execute方法的Pojo,无需继承特定的类,降低了框架的侵入性。 3. **配置文件差异** - **Struts1** 使用struts-config.xml文件配置Action、FormBean和ActionMapping等信息,这...
通过分析这个实例,学习者可以了解如何将Struts2的这些特性应用到实际项目中,包括如何配置Action、如何编写拦截器、如何利用OGNL传递数据、如何进行表单验证,以及如何组织和管理MVC结构。此外,实例可能还包含了...
在这个例子中,你可能会看到一个名为`HelloWorldAction`的Java类,该类继承自Struts2提供的`ActionSupport`类。`ActionSupport`类提供了基本的错误处理和国际化支持。你需要在`execute()`方法中编写业务逻辑,这个...
将Struts 2源码导入Eclipse工程,对于学习和理解框架的工作原理以及进行自定义开发具有重要意义。 首先,导入Struts 2源码到Eclipse需要遵循以下步骤: 1. 下载Struts 2的源码包,通常可以从Apache官方网站获取...