- 浏览: 141308 次
- 性别:
- 来自: 南宁
文章分类
- 全部博客 (137)
- J2SE API基础 (19)
- JAVA Structure/Algorithm (1)
- 设计模式及UML(pd/rose) (11)
- SSH (32)
- JPA/EJB/JSF (0)
- Jsp/Servlet (1)
- XML (0)
- DWR/Dojo/JQuery(Ajax) (1)
- Js/css/HTML (3)
- Java报表开发 (0)
- 网络协议及认证加密算法 (2)
- Java多线程网络编程 (1)
- Lucence (0)
- Oracle Developer (5)
- Oracle DBA (3)
- mysql/SQLServer/DB2 (5)
- Weblogic配置/调试 (0)
- Tomcat/JBoss/Websphere (10)
- Linux/Unix操作部署及shell编程 (9)
- C/C++编程 (4)
- 系统分析 (0)
- 项目管理(CVS&风险控制) (0)
- JUnit单元和J2EE集成测试 (2)
- 软设/招聘 (6)
- IT English (8)
- Mathematics/Data Mining (1)
- Android开发爱好 (1)
- Flash制作爱好 (0)
- Professional wisdom (4)
- 序言 (1)
- 聊天记录 (0)
- 理想 (3)
- 承诺 (0)
- oifuslfjsldkj_chatrecord (1)
最新评论
-
blues1021:
dafeiwudi 写道什么叫外频和陪频啊?一般电脑都显示主频 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系 -
dafeiwudi:
什么叫外频和陪频啊?一般电脑都显示主频,它不表示运算速递,我们 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系
因为在struts1的版本中,属性的拦截以及控制的处理是被封装为两个对立的ActionForm、Action来获取
HttpServerRequest的参数、控制访问MAPPING的。而在Struts2中我们可以直接通过Action来获取请求参数,并把处理的
资源映射返回给struts.xml指向对应的视图资源或者模型或者控制器进行下一步的处理。发现Struts2中的
Action
负责了struts1的
ActionForm以及Action的双重任务。如果我们习惯了struts1的开发方式,在Struts中提供模型驱动的方式来分解
Action的任务,这种模式是通过专门的JavaBean来封装请求。
下面我们来比较一下:属性驱动和模型驱动的区别
一、属性驱动的例子
:
- public class Login implements Action //继承Action接口
- {
- private String username;
- private String password;
- // 在属性驱动里面是依靠getter/setter方法获存取请求参数
- public void setUsername(String username)
- {
- this .username = username;
- }
- public String getUsername()
- {
- return this .username;
- }
- public void setPassword(String password)
- {
- this .password = password;
- }
- public String getPassword()
- {
- return this .password;
- }
- // 默认的方法
- public String execute() throws Exception
- {
- return SUCCESS;
- }
- }
-
二、 模型驱动例子 - //模型使用JavaBean的设计方式
- //和Struts1的ActionForm是一样
- public class UserBean
- {
- private String username;
- private String password;
- public void setUsername(String username)
- {
- this .username = username;
- }
- public String getUsername()
- {
- return this .username;
- }
- public void setPassword(String password)
- {
- this .password = password;
- }
- public String getPassword()
- {
- return this .password;
- }
- }
- //实现Action
- public class Login implements Action,ModelDriver<UserBean> //必须继承ModelDriver 且指明具体的UserBean类型
- {
- private UserBean model = new UserBean();
- public String execute() throws Exception
- {
- if (getMode().getUsername().equals( "scott" )
- && getMode().getPassword().equeals("tiger" ) )
- {
- return SUCCESS;
- }
- else
- {
- return ERROR;
- }
- }
- p ublic UserBean getModel()
- {
- return model;
- }
- }
其实,模型驱动必须实现ModelDriver接口,以及必须实现getMode()方法,该方法把Action和以及对应的Model实例关联。
配置属性驱动和模型驱动的方式一样,在struts.xml文件中配置对应的Action即可,那他怎么实现的?
那么,我们要看到
Struts2是一个拦截器为核心的框架
,在struts_default.xml文件里面可以发现对应的拦截器的设置。
三、在JSP页面访问的区别:
而我们在属性驱动模型下在JSP中访问属性时:
<s:property value="username">
而在模型驱动模型下在JSP中访问属性时:
<s:property value ="model.usename">
但是,Struts2会自动识别使用何种驱动模式,省略model.系统仍能自动会关联到model.username的属性值。
四、选择属性驱动和模型驱动的问题:
当JSP表单的属性和
数据持久层对象的数据成员一致
的话就用strut2的模型驱动,代码统一。
当表单的属性和数据持久层对象的数据成员不一致的话就用属性驱动,因为如果用模型驱动要两个bean,一个与数据持久层对象,一个与提交的表单对应。
发表评论
-
Unity3DHouse中成功删除信息
2011-08-10 01:12 817//在jsp页面传入的参数在Action类中调用deleteH ... -
hibernate3.0中实现修改数据记录
2011-08-10 01:11 6861.查询页面中传入参数: <a href=& ... -
Unity3DHouse4项目save(object1)到库问题的解决
2011-08-10 01:10 7091.添加时点击没有任何响应和提示,google了一遍有说是 ... -
Unity3DHouse4系统未解问题
2011-08-10 01:08 7981.struts1.2+spring 2.2+Hibern ... -
Struts表单提交的text String数据可以作为HQL中的Integer类型处理
2011-08-10 01:06 8751.传入数据的表单中的声明 :<form metho ... -
6月28日房产的登录模块报错
2011-08-10 01:04 8251.JSP语法报错 exception org.ap ... -
struts的jsp Action中传入EL表达式参数及myeclipse操作技巧(涛)
2011-08-10 01:03 8781.<a href="/searchBuild ... -
Struts标签之Cannot find bean under name org.apache.struts.taglib.html.BEAN错误
2011-08-10 01:02 1293Cannot find bean under name ... -
【转】关于在HQL中的模糊查询问题
2011-08-10 01:02 780来自:20 ... -
Struts中的Action二次请求不认路径../的解决方法
2011-08-10 01:00 847地址栏没有了项目名称:http://localhost:808 ... -
myEclipse项目部署问题之解决方法
2011-08-10 00:58 1010myeclipse下工程: 1.安装myclipse时6.5 ... -
Hibernate注释中的参照完整性和复合主键类解析
2011-08-10 00:57 1042在引入了或声明了相关表或类后就能够使用它下面的方法,例如: ... -
【转】hibernate的@EmbeddedId嵌入式主键类详解
2011-08-10 00:56 1041复合主键也可以采用 ... -
Spring 2.*有注释的配置文件中各层配置详解
2011-08-10 00:55 854<?xml version="1.0" ... -
Spring 2.5注释程序执行过程和融合xml使用
2011-08-10 00:54 830Spring2.5注释 一、加载Spirng容器,在web. ... -
【转】Struts2注解使用解析
2011-08-10 00:54 810如果希望使用 struts2 ... -
《转》struts.xml 模块化管理
2011-08-10 00:52 819... -
《转改》Struts2和Spring的集成原理
2011-08-10 00:50 6902009年09月02日 星期三 下午 ... -
房产销售系统的服务器配置问题?
2011-08-10 00:48 704Tomcat在外面的安装时抛出404找不到资源,测试后 ... -
《学生选课系统课程设计》提交过程的感悟
2011-08-10 00:46 768今天去提交数据库课程设计,昨晚把数据库安装了一晚JDK,m ...
相关推荐
本案例“Struts2之模型驱动及分层架构初识”将深入探讨Struts2中的模型驱动模式和分层架构的概念及其应用。通过实践案例struts004,我们可以更直观地理解这些关键概念。 首先,让我们来了解**模型驱动**。在Struts2...
5. **模型驱动(ModelDriven)**:Struts2提供了一种模型驱动的方式,将Action与业务模型对象绑定,简化了数据处理。 6. **值栈(Value Stack)**:值栈是Struts2用来存储Action和表单属性的地方。它使得视图层可以...
如果你是用模型驱动,或者是直接把属性写在action里面,你不会碰到我遇到的那么多问题。 但是你用模型驱动好吗,如果一个页面需要处理多个对象的时候怎么办。 如果你直接把属性写在action里面,当一个对象有20个...
Struts2.0属性转换器(Converters)是框架中一个关键组件,它负责将用户输入的数据转换为Java对象的属性类型,确保数据在表单提交后能够正确地绑定到模型对象上。转换器机制的存在使得开发者可以自定义数据类型转换...
本文将深入探讨Struts2的属性驱动和模型驱动的区别,以及如何防止表单的重复提交,并讲解如何在表单中正确显示验证信息。 ### 属性驱动与模型驱动 **属性驱动**(Property Driven)是Struts2中的一种常见做法,它...
Struts 1.2虽然在现代Web开发中已经被Struts 2或者Spring MVC等更新的框架取代,但它的设计理念和模式对于理解MVC架构和Web应用的开发仍然具有重要的学习价值。在学习和使用Struts 1.2时,开发者应关注其核心组件的...
5. **模型驱动**:除了Action类,Struts2还支持模型驱动模式,即直接将用户的输入数据绑定到一个模型对象上,而不是Action类。这样可以使Action类更加专注于业务逻辑,而模型对象则负责数据处理。 6. **Interceptor...
Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...
**六.Struts2的属性驱动和模型驱动** 1. **属性驱动**:Action类中的字段直接对应请求参数,Struts2自动将请求参数值填充到Action字段。 2. **模型驱动**:使用一个公共对象作为模型,Action类持有这个模型的引用,...
SSH2模型驱动整合是软件开发领域中的一种框架集成方式,主要涉及Spring、Struts2和Hibernate这三大开源框架。Spring负责应用的业务层管理,提供依赖注入(DI)和面向切面编程(AOP)等功能;Struts2作为表现层框架,...
5. **模型驱动(ModelDriven)**:这是一种简化Action类设计的方式,允许Action类仅关注业务逻辑,而将模型对象的管理交给框架。 6. **值栈(Value Stack)**:值栈是Struts2中的一个核心组件,它存储了请求中的...
Struts2中的模型驱动模式允许将Action与业务对象直接关联,使得Action可以直接操作这些对象。值栈是Struts2中的一种数据管理机制,它存储Action、结果和其他对象,方便在Action之间共享数据。 **5.拦截器...
综上所述,理解并掌握Struts框架中的数据回显、模型驱动以及防止表单重复提交的原理和实现方法,对于提升Java Web应用的开发效率和质量具有重要意义。在实际开发中,应灵活运用这些技术,以满足项目需求,打造稳定...
这个Struts驱动包为开发者提供了一个快速入门Struts框架的起点,通过分析和实践其中的示例项目,可以帮助开发者更好地理解和掌握Struts的核心概念和技术。同时,对于熟悉Struts的人来说,也可以作为一个模板,快速...
教程通常以实例驱动,让学习者通过实际操作来掌握Struts2。 在学习过程中,你将了解到Struts2如何通过Action类处理用户请求,以及如何通过配置文件或注解来定义Action的映射。拦截器是Struts2的一个重要特性,它们...
本文将探讨Struts2的配置文件、Action、请求处理、结果映射、属性驱动和模型驱动,以及异常处理机制。 首先,我们来看Struts2的配置文件,主要是struts.xml。这个文件是Struts2应用的核心配置,用于定义Action、...
模型驱动模式是Struts2的一种设计模式,它将Action实例作为模型,自动将请求参数绑定到Action的属性上。这简化了Action类的编写,减少了手动设置属性的代码,同时提高了代码的可复用性和可维护性。 五、数据校验 ...
- Struts2支持模型驱动,允许Action直接引用业务对象,减少了数据转换的繁琐工作。 6. **插件系统**: - Struts2拥有丰富的插件库,如Struts2-dojo-plugin、Struts2-convention-plugin等,可以方便地集成第三方库...
5. **模型驱动(ModelDriven)**:Struts2支持模型驱动,允许Action类引用一个模型对象,这样可以直接操作模型对象属性,简化视图与模型的数据绑定。 6. **工作流(Workflow)**:Struts2的工作流组件负责解析用户...