0 0

struts2领域对象和模型驱动,为什么领域对象就要深度引用,而模型驱动不需要深度引用?0

1.领域对象
1)视图页面(包括请求页面和结果页面),都需要深度引用user.username;
例如,
   	  <s:textfield name="user.username" label="Username"/>
    	  <s:password name="user.password" label="Password"/>
    	  <s:textfield name="user.portfolioName" label="Enter a name for your portfolio"/>  

2)XXXAction里,需要调用getUser方法,而不能直接使用user属性
例如,
	public void validate(){
		
		/* Retrieve our simple portfolio service object. */
		PortfolioService ps = getPortfolioService();
		
		/* Check that fields are not empty */
		if ( getUser().getPassword().length() == 0 ){			
			addFieldError( "user.password", getText("password.required") );
		}
		if ( getUser().getUsername().length() == 0 ){			
			addFieldError( "user.username", getText("username.required") );
		}
		if ( getUser().getPortfolioName().length() == 0  ){			
			addFieldError( "user.portfolioName", getText( "portfolioName.required" ));
		}		
		/* Make sure user doesn't already have an account */
		if ( ps.userExists( getUser().getUsername() ) ){		
			addFieldError("user.username", getText( "user.exists"));
		}
		
	}



2.模型驱动
1)视图页面,都不需要深度引用
2)XXXAction里,是直接使用user.getUsername()




书上一般都只说二者的区别,然后应该怎么用。但是为什么呢?原理和机制是什么呢?为什么一个要深度引用,一个不需要深度引用?
2014年12月14日 12:05

1个答案 按时间排序 按投票排序

0 0

好久没用了,不过模型驱动 这东西 和反射有关系,那方法get方法 是少不了的了。当然是可以用属性反射操作,标准操作模式

2014年12月15日 11:21

相关推荐

    Struts2 的接受参数的几种方式

    需要注意的是,这里的 `user` 变量不需要显式地 new 出来,Struts2 会在适当的时候为我们创建并初始化它。 **解决复杂情况:** 对于一些复杂的场景,例如需要验证用户输入的重复性等,我们可以引入 DTO(Data ...

    org.springframework.web.struts-3.1.0.M2.jar

    4. **模型驱动**:Spring的ModelAndView对象可以用来封装视图和模型数据,这与Struts的ActionForward和ActionForm有异曲同工之妙,但更为灵活。 5. **国际化**:Spring的MessageSource接口可以与Struts的国际化策略...

    JSP+Struts2开发当当购书网源代码

    总的来说,JSP+Struts2开发的当当购书网项目,展现了Web开发中模型驱动、分层架构的优势。通过理解源代码,开发者可以学习到如何组织和设计一个完整的电子商务网站,包括用户交互、数据访问、业务逻辑和安全性等方面...

    百度文库 牛牧struts2.x深入浅出

    `struts2_AccessWebElements`可能是关于访问网页元素的内容,如表单字段、按钮等,Struts2提供了模型驱动的方式方便地绑定和操作这些元素。 `struts2_Actionadvance2`可能是Action进阶内容,涵盖了更高级的主题,...

    UserInfoSys.rar_flex_flex strut_flex struts _flex struts2 list_s

    在“UserInfoSys”中,Flex负责构建用户界面,包括数据输入、展示、查询等功能,利用其强大的图形库和事件驱动模型,确保了系统的直观性和易用性。 Struts2,作为一款开源的MVC框架,以其高度可扩展性和灵活性,在...

    10.客户端——Struts 2+Spring+EJB架构实现

    在 Struts 2、Spring 和 EJB 结合的架构中,Struts 2 负责前端的用户交互和请求处理,将用户操作转化为业务逻辑调用。Spring 作为中间层,负责依赖注入和事务管理,连接 Struts 2 和 EJB。EJB 则作为后端服务,执行...

    Extjs struts2 spring 图书馆

    【标题】"Extjs struts2 spring 图书馆"是一个基于流行Java技术栈构建的图书馆管理系统,它将前端的富互联网应用(RIA)框架Extjs与后端的MVC框架Struts2和企业级服务管理框架Spring进行了深度融合。这个项目为...

    SSH整合jar包(spring3+struts2+hibernate3)

    Struts2是Struts1的升级版,它基于拦截器模型,提供了更强大的动作和结果映射,以及更灵活的事件驱动模型。Struts2的Action类可以与Spring的bean无缝结合,允许我们在Action中直接注入Service或DAO。此外,Struts2...

    struts的架包分享

    4. **模型驱动(ModelDriven)**:模型驱动模式允许将Action与业务对象绑定,简化代码,提高可维护性。 5. **值栈(Value Stack)**:值栈是Struts 2中存储Action上下文数据的容器,它可以将Action属性与JSP页面的EL...

    jdk1.4下struts2应用实例含单元测试

    4. **模型驱动(ModelDriven)**:一种设计模式,让Action类仅包含业务逻辑,而将数据模型分离出来。 5. **Spring集成**:通过Spring的`struts-plugin.xml`配置,可以将Spring容器注入到Struts2中,实现Action的依赖...

    Struts2漏洞检查工具2018版.zip

    它为开发人员提供了一种组织MVC(模型-视图-控制器)应用程序结构的方法,使得构建动态、数据驱动的Web应用变得更加容易。然而,Struts2在历史上曾遭受过一系列的安全漏洞,这些漏洞可能导致远程代码执行、信息泄露...

    Struts in Action 中文版

    《Struts in Action》中文版通过对Struts框架的全面解析,不仅为读者提供了理论知识,还通过实际应用案例,使读者能够快速上手并深入理解Struts的使用技巧,是学习和掌握Struts框架不可或缺的参考书籍。

    Struts2.1权威指南光盘源代码第20章

    7. **模型驱动(ModelDriven)**:这是一种Action模式,它自动将请求参数绑定到一个模型对象,简化了数据绑定过程。 8. **插件系统**:Struts2的插件机制允许快速扩展框架功能,如Spring集成、Hibernate集成等。第...

    SSH框架搭建以及深度解析优化

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架。这三者协同工作,构建出强大的企业级应用程序。接下来,我们将对SSH框架进行详细的搭建过程解析,并探讨如何进行深度优化。...

    Struts+Hibernate面试题

    - **Spring MVC**:Spring的MVC模块提供了一种分层架构,用于构建Web应用程序,与Struts类似但更灵活,支持注解驱动和模型-视图-控制器的设计模式。 **Hibernate框架** Hibernate是一个流行的ORM(对象关系映射)...

    clerk-system-use-struts1.2.rar_oracle

    2. JDBC驱动:确保系统中包含了Oracle的JDBC驱动,以便程序能够识别和连接数据库。 3. SQL操作:通过编写DAO(Data Access Object)层,封装SQL查询和更新操作,实现业务逻辑与数据库操作的解耦。 4.事务管理:考虑...

    struts+ibatis实现树形展示

    Action类执行完毕后,可以通过ValueStack或模型驱动方式将结果数据返回到视图层。 2. **iBatis框架**:iBatis作为数据访问层,用于执行数据库查询。在树形结构中,我们需要遍历层级数据,这可能涉及到递归查询或...

    ssh1与ssh2框架整合实例

    IoC使得开发者可以将对象的创建和维护交给Spring,而AOP则允许开发者在不修改原有代码的情况下,插入新的行为或功能。 **Struts1与Struts2**: Struts1是MVC(Model-View-Controller)架构的实现,它强调了请求驱动...

    JavaWeb程序设计任务教程第2版课后题答案

    《JavaWeb程序设计任务教程第2版》是一本深度探讨JavaWeb开发的教材,主要针对初学者和进阶者提供全面的知识覆盖。本教程通过详细解答课后习题,帮助读者深入理解JavaWeb编程的核心概念和技术。以下是相关知识点的...

Global site tag (gtag.js) - Google Analytics