模型组件
模型组件代表应用的业务数据和逻辑。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框架中,ActionForm是连接控制器(Action)与模型(Business Logic)的桥梁。它的主要职责是收集用户从视图层提交的数据,并将这些数据转发到相应的业务逻辑方法进行处理。ActionForm的生命周期包括了初始化...
Struts2是一款强大的Java web开发框架,它简化了MVC(模型-视图-控制器)架构的实现。在这个“struts2组件化分页”项目中,开发者已经为常见的分页功能提供了组件化的解决方案,避免了重复编写大量页面和后台处理...
Struts 1.1框架的核心组件包括ActionServlet(控制器)、Action(模型处理)、ActionForm(表单数据载体)和JSP(视图)。ActionServlet是MVC中的控制器,它解析HTTP请求,根据struts-config.xml配置文件调度Action...
Struts 的体系结构与工作原理可以分为三个部分:模型(Model)、视图(View)和控制器(Controller)。 模型(Model)是 Struts 的核心组件之一,负责处理业务逻辑和数据存取。Struts 可以很容易地与数据访问技术相...
模型组件是 Struts 框架的业务逻辑层,它负责存储和操作应用程序的数据。模型组件可以使用 JavaBean、EJB 或其他业务对象来实现。 Struts 框架提供了一个模型接口,用于定义模型的行为和状态。 视图组件是 Struts ...
Struts 是一个开源的Java Web框架,主要用于构建基于MVC(模型-视图-控制器)设计模式的Web应用程序。这个框架旨在提高应用的结构化和可维护性,它是在J2EE平台上发展起来的,特别是在JSP Model 2的基础上进行了...
虽然Struts本身没有提供模型组件的具体实现,但它支持使用EJB、JavaBeans或其他组件来实现业务逻辑。 4. **配置文件**:Struts框架依赖于两个XML配置文件: - **web.xml**:Web应用的部署描述文件,包含了Struts...
Struts的视图组件主要由JSP页面组成,它们负责展示数据并接收用户的输入。视图层的设计应该尽可能地与业务逻辑分离,以便于进行界面调整和优化。 控制器组件在Struts中由ActionServlet和一系列Action类构成。它们...
3. **模型组件**: Struts框架本身不提供特定的模型组件,但模型组件通常是JavaBean对象,用于封装数据和业务逻辑。 4. **视图组件**: 视图组件主要由JSP页面构成,它们使用Struts提供的标签库来访问模型数据并呈现...
在这个压缩包文件“Struts框架之构建Controller组件.rar”中,主要关注的是Struts框架中的Controller组件的构建。以下是关于这个主题的详细知识点: 1. **MVC模式**: MVC是一种设计模式,用于将应用程序分为三个...
总结起来,Struts框架是Java Web开发中实现MVC模式的重要工具,它通过提供控制器、模型和视图的组件,以及一套完整的生命周期管理机制,帮助开发者构建结构清晰、易于维护的Web应用。Struts不仅包含控制器组件,还...
开发者可以创建自定义的JavaBeans或者EJBs作为模型组件。模型与控制器之间的通信通过ActionForm对象进行,它负责在HTTP请求之间传递数据。 **视图(View)**: 视图是用户看到和与之交互的界面。Struts1.2.9支持...
Action类执行相应的业务逻辑,与模型组件进行交互,处理完后返回结果给ActionServlet。ActionServlet依据返回的键值选择合适的视图进行渲染,通常是一个JSP页面,其中包含Struts定义的标签,用于展示数据。 Struts1...
Struts可以与其他框架集成,如Hibernate进行持久化,Spring进行依赖注入,Tiles进行视图布局。此外,Struts2是Struts的升级版,引入了更多现代Web开发特性,如拦截器、表达式语言等。 通过这个“Struts基础与案例...
MVC设计模式将应用分为三个核心组件:模型(Model)、视图(View)和控制器(Controller),这种设计有助于分离关注点,使得应用易于维护和扩展。 模型(Model)负责数据的封装和处理,通常由普通的Java实体类来...
Struts2是一个强大的Java web应用程序框架,它极大地简化了MVC(模型-视图-控制器)架构的实现。而Tiles是Struts2的一个重要组成部分,它允许开发者将多个页面组合成一个复杂的页面布局,实现了视图的重用和模块化。...
在"struts01"项目中,你可能还会发现模型(Model)类、视图(View)文件(如JSP)以及与之相关的DAO(Data Access Object)层,这些都是MVC架构的重要组成部分。 总之,Struts2的控制组件包括Action、配置、拦截器...
这种模式将应用程序分为三个主要部分:模型(Model)负责处理业务逻辑,视图(View)用于展示数据,而控制器(Controller)协调模型和视图之间的交互。Struts框架的主要目标就是帮助开发者更好地实现这种分离,使得...
Struts的体系结构主要包括三个主要部分:视图(View)、模型(Model)和控制器(Controller)。 - **视图**:视图负责呈现用户界面,通常由JSP页面或HTML组成。 - **模型**:模型包含业务逻辑和数据管理,它与...
- **视图(View)**:视图是用户界面,显示模型中的数据并提供与用户交互的界面,通常由JSP页面实现。 - **控制器(Controller)**:控制器接收用户的输入,处理请求,更新模型,并决定如何显示视图。在Struts中,...