`
convertto
  • 浏览: 125026 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Struts模型组件与视图组件

阅读更多

模型组件
模型组件代表应用的业务数据和逻辑。Struts框架并没有为设计和创建模型组件提供现成的框架。不过Strtus允许使用其他的模型组件来处理应用的业务领域。
1.JavaBean
2.Hibernate
3.Spring
4.EJB
5.WebServices

视图组件
Struts框架的视图负责向客户显示动态的网页内容。Struts框架的视图主要包括以下几种:
1.JSP
2.ActionForm
3.DynaActionForm
4.Struts标签库

ActionForm

ActionForm是Struts框架提供的DTO,用于在视图层和控制层之间传递HTML表单数据。控制层可以从ActionForm中读取用户输入的表单数据,也可以把来自模型层的数据存放到ActionForm中,然后把它返回给视图。ActionForm还具有表单验证功能,可以为模型层过滤不合法的数据。
1.定义ActionForm类
2.定义ActionForm的属性
3.重写reset()方法
4.实现validate()方法
5.配置ActionForm
6.与ActionForm对应的视图

定义ActionForm类
Struts框架中定义的ActionForm类是抽象的,必须在应用中创建它的子类。

定义ActionForm的属性
想捕获具体的HTML表单数据,ActionForm中的属性必须和HTML表单中的字段一一对应。

重写reset()方法
不管ActionForm存在于哪个范围内,对于每一个请求,控制器都会先调用ActionForm的reset()方法,然后再把用户输入的表单数据组装到ActionForm中。reset()方法用于恢复ActionForm的属性的默认值。

实现validate()方法
validate()方法的作用主要是对用户提交的表单数据进行初步验证,譬如用户提交的数据是否为空,是否数据长度不够等等。当然,这些验证,我们完全可以在表单页面使用javascript脚本语言来实现。

举例:
package form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
//ActionForm类
public class LoginForm extends ActionForm {
//定义属性
private String password;
private String userName;
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}
public String getUserName() {
    return userName;
}
public void setUserName(String userName) {
    this.userName = userName;
}
//重写reset方法
public void reset(ActionMapping mapping, HttpServletRequest request) {
    this.userName="";
    this.password="";
}
//重写validate方法
public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) {
    ActionErrors errors=new ActionErrors();
    if(this.userName.equals("")){
        errors.add("userName",new ActionMessage("un"));
    }
    if(this.password.equals("")){
        errors.add("password",new ActionMessage("pwd"));
    }
    return errors;
}
}

配置ActionForm
ActionForm类需要在struts-config.xml中配置后才可以使用。
<struts-config>
  <form-beans>
    <form-bean name="loginForm" type="form.LoginForm" />
  </form-beans>
  <action-mappings>
    <action attribute="loginForm" input="/login.jsp"
      name="loginForm" path="/login" scope="request"
      type="action.LoginAction">
        <forward name="no" path="/no.jsp" />
        <forward name="yes" path="/yes.jsp" />
    </action>
  </action-mappings>
  <message-resources parameter="ApplicationResources" />
</struts-config>

与ActionForm对应的视图
将HTML表单中的数据传递给ActionForm,也需要符合特定的规范。
举例:
<%@ page contentType="text/html;charset=gbk"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
  <head><title>JSP for LoginForm form</title></head>
  <body>
    <html:form action="/login">
      userName : <html:text property="userName"/>
      <html:errors property="userName"/><br/>
      password : <html:password property="password"/>
      <html:errors property="password"/><br/>
      <html:submit/><html:reset/>
    </html:form>
  </body>
</html>

DynaActionForm
ActionForm可以简化Web应用的开发,但唯一的缺点是对于大型的Struts应用必须以编程的方式创建大量的ActionForm,如果HTML表单的字段发生变化,就必须修改并重编译相关的ActionForm。
Struts1.1对此做出了改进,引入了动态ActionForm的概念。Struts框架的DynaActionForm类实现了动态ActionForm,DynaActionForm类是ActionForm类的子类。
DynaActionForm的目的就是减少ActionForm的数目,利用它你不必创建一个个具体的ActionForm类,而是在配置文件中配置出所需的虚拟ActionForm。
举例:
struts-config.xml中
<form-beans>
  <form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm">    
    <form-property name="password" type="java.lang.String" />
    <form-property name="userName" type="java.lang.String" />
  </form-bean>
 </form-beans>

ActionForm类execute()方法中
DynaActionForm loginForm = (DynaActionForm) form;
String userName=(String)loginForm.get("userName");
String password=(String)loginForm.get("password");

JSP页面
<html:form action="/login">
  userName : <html:text property="userName"/><br/>
  password : <html:password property="password"/><br/>
  <html:submit/><html:reset/>
</html:form>

分享到:
评论

相关推荐

    Struts视图组件详解附源代码

    在Struts框架中,ActionForm是连接控制器(Action)与模型(Business Logic)的桥梁。它的主要职责是收集用户从视图层提交的数据,并将这些数据转发到相应的业务逻辑方法进行处理。ActionForm的生命周期包括了初始化...

    struts2组件化分页

    Struts2是一款强大的Java web开发框架,它简化了MVC(模型-视图-控制器)架构的实现。在这个“struts2组件化分页”项目中,开发者已经为常见的分页功能提供了组件化的解决方案,避免了重复编写大量页面和后台处理...

    深入Struts 1.1

    Struts 1.1框架的核心组件包括ActionServlet(控制器)、Action(模型处理)、ActionForm(表单数据载体)和JSP(视图)。ActionServlet是MVC中的控制器,它解析HTTP请求,根据struts-config.xml配置文件调度Action...

    struts体系结构与工作原理

    Struts 的体系结构与工作原理可以分为三个部分:模型(Model)、视图(View)和控制器(Controller)。 模型(Model)是 Struts 的核心组件之一,负责处理业务逻辑和数据存取。Struts 可以很容易地与数据访问技术相...

    Struts技术简介

    模型组件是 Struts 框架的业务逻辑层,它负责存储和操作应用程序的数据。模型组件可以使用 JavaBean、EJB 或其他业务对象来实现。 Struts 框架提供了一个模型接口,用于定义模型的行为和状态。 视图组件是 Struts ...

    Struts 原理 与 应用

    Struts 是一个开源的Java Web框架,主要用于构建基于MVC(模型-视图-控制器)设计模式的Web应用程序。这个框架旨在提高应用的结构化和可维护性,它是在J2EE平台上发展起来的,特别是在JSP Model 2的基础上进行了...

    Struts框架分析与应用.pdf

    虽然Struts本身没有提供模型组件的具体实现,但它支持使用EJB、JavaBeans或其他组件来实现业务逻辑。 4. **配置文件**:Struts框架依赖于两个XML配置文件: - **web.xml**:Web应用的部署描述文件,包含了Struts...

    Struts

    Struts的视图组件主要由JSP页面组成,它们负责展示数据并接收用户的输入。视图层的设计应该尽可能地与业务逻辑分离,以便于进行界面调整和优化。 控制器组件在Struts中由ActionServlet和一系列Action类构成。它们...

    精通Struts技术.pdf

    3. **模型组件**: Struts框架本身不提供特定的模型组件,但模型组件通常是JavaBean对象,用于封装数据和业务逻辑。 4. **视图组件**: 视图组件主要由JSP页面构成,它们使用Struts提供的标签库来访问模型数据并呈现...

    Struts框架之构建Controller组件.rar

    在这个压缩包文件“Struts框架之构建Controller组件.rar”中,主要关注的是Struts框架中的Controller组件的构建。以下是关于这个主题的详细知识点: 1. **MVC模式**: MVC是一种设计模式,用于将应用程序分为三个...

    struts,struts,struts框架

    总结起来,Struts框架是Java Web开发中实现MVC模式的重要工具,它通过提供控制器、模型和视图的组件,以及一套完整的生命周期管理机制,帮助开发者构建结构清晰、易于维护的Web应用。Struts不仅包含控制器组件,还...

    MVC框架struts1.2.9源码

    开发者可以创建自定义的JavaBeans或者EJBs作为模型组件。模型与控制器之间的通信通过ActionForm对象进行,它负责在HTTP请求之间传递数据。 **视图(View)**: 视图是用户看到和与之交互的界面。Struts1.2.9支持...

    精通struts1.x技术,struts1完整详细教程

    Action类执行相应的业务逻辑,与模型组件进行交互,处理完后返回结果给ActionServlet。ActionServlet依据返回的键值选择合适的视图进行渲染,通常是一个JSP页面,其中包含Struts定义的标签,用于展示数据。 Struts1...

    Struts基础与案例开发详解

    Struts可以与其他框架集成,如Hibernate进行持久化,Spring进行依赖注入,Tiles进行视图布局。此外,Struts2是Struts的升级版,引入了更多现代Web开发特性,如拦截器、表达式语言等。 通过这个“Struts基础与案例...

    Struts2简介与入门

    MVC设计模式将应用分为三个核心组件:模型(Model)、视图(View)和控制器(Controller),这种设计有助于分离关注点,使得应用易于维护和扩展。 模型(Model)负责数据的封装和处理,通常由普通的Java实体类来...

    Struts2中使用Tiles组件

    Struts2是一个强大的Java web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。而Tiles是Struts2的一个重要组成部分,它允许开发者将多个页面组合成一个复杂的页面布局,实现了视图的重用和模块化。...

    Struts2控制组件的应用.rar

    在"struts01"项目中,你可能还会发现模型(Model)类、视图(View)文件(如JSP)以及与之相关的DAO(Data Access Object)层,这些都是MVC架构的重要组成部分。 总之,Struts2的控制组件包括Action、配置、拦截器...

    张孝祥Struts视频源代码

    这种模式将应用程序分为三个主要部分:模型(Model)负责处理业务逻辑,视图(View)用于展示数据,而控制器(Controller)协调模型和视图之间的交互。Struts框架的主要目标就是帮助开发者更好地实现这种分离,使得...

    Struts教程

    Struts的体系结构主要包括三个主要部分:视图(View)、模型(Model)和控制器(Controller)。 - **视图**:视图负责呈现用户界面,通常由JSP页面或HTML组成。 - **模型**:模型包含业务逻辑和数据管理,它与...

    struts框架详细介绍

    - **视图(View)**:视图是用户界面,显示模型中的数据并提供与用户交互的界面,通常由JSP页面实现。 - **控制器(Controller)**:控制器接收用户的输入,处理请求,更新模型,并决定如何显示视图。在Struts中,...

Global site tag (gtag.js) - Google Analytics