1 在Myeclipse 中新建一个Web project,如图,点击Finish。
2 右击项目名z-myfirstproject,选择Myeclipse---Add Struts Capabilities
3 在出现的如下界面中,将包名称改为自己的包名称:yan.struts,其他的默认即可,点击确定。
4 完成以上步骤后,会在项目目录中自动添加一些jar包和文件等,如图。
5 点击打开 strust-config.xml,如下,右击空白处,选择 New ---Form Action and JSP,
6 在出现的Add Struts Capabilities界面中,输入user case为login,因为要做一个登录的用例。同时可以在下面的optional Details中的form Properties中点击Add按钮添加属性。
7 这里添加两个Form表单属性,一个是username ,一个password,如下图。
8 如下图,选中Create JSP form选项,Superclass选择 ActionForm。点击Next
9 在出现的界面中的Optional Details中,选择Forwards,点击Add添加一个Forward。
10 点击Add ,在出现的界面中填写Forward,点击Add按钮。然后在Add Struts Capabilities界面中点击finish 按钮。
11 以上操作完成后,会在项目中添加几个文件,如下图。
12 打开WebRoot目录下的form下的login.jsp页面,可以看到系统自动生成了登录页面,代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title><bean:message key="login.hello"/></title>
</head>
<body>
<html:form action="/login.do">
username : <html:text property="username"/><html:errors property="username"/><br/>
password : <html:password property="password"/><html:errors property="password"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
|
13 在src目录下的yan.struts.form目录下自动生成LoginForm.java,在该Java类中编写validate()函数,进行表单验证,它完成的功能是:如果表单中输入的username为空或者password为空,则生成表单验证错误。返回错误结果给login页面。代码如下:
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
ActionErrors errors=new ActionErrors();
if(username==null||username.length()<1)
{
errors.add("username",new ActionMessage("login.error.username"));
//这里username对应的是login.jsp中<html:errors property="username"/> }
if(password==null||password.length()<1)
{
errors.add("password",new ActionMessage("login.error.userpassword"));
//这里password对应的是login.jsp中<html:errors property=" password "/>
}
return errors;
}
|
当用户提交了HTML表单后,struts框架将自动把表单数据组装到ActionForm中,Actionform中的属性和HTML表单中的字段一一对应。ActionForm还提供数据验证方法,以及把属性重新设置为默认值的方法。Struts框架中定义的ActionForm类是抽象的,必须在应用中创建它的子类,来存放具体的HTML表单数据。
ActionForm实质是一种JavaBean,不过它除了具有javabean的常规方法,还有两种特殊方法:validate()用于表单验证;reset()把属性重新设置为默认值。
当用户提交了HTML表单后,struts框架会自动把表单数据组装到ActionForm中,如果在
Struts-config.xml配置文件中mapping配置中有 validate=true这一选项,则接下来struts框架会自动调用ActionForm中vlidate()方法进行表单验证。如果Validate()方法返回的ActionErrors对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。如果ActionErrors中包含ActionMessage对象,就表示发生了错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过
<html:errors>标签把request范围内的ActionErrors对象中包含的错误消息显示出来,提示用户修改错误。
14 上面的代码中用到了 new ActionMessage("login.error.username"),这里的
login.error.username 需要在ApplicaitonResources.properties中定义。
打开ApplicaitonResources.properties(它在src----yan.struts目录下)
右击 ApplicaitonResources.properties,选择Openwith ------Myeclipse Property Editor,打开编辑器,点击Add 按钮添加
15 打开LoginAction.java,在该类中有一个execute()方法,它完成对表单信息的业务逻辑验证以及对相关处理。编辑该方法如下:
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
String username1=loginForm.getUsername();
String username=null;
try {
username=new String(username1.getBytes("ISO-8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
//以上将form表单中获得用户名转换为UTF-8格式。
String password=loginForm.getPassword();
ActionMessages errors=new ActionMessages();
String badusername="admin";
String badpassword="123456";
if(username.equals(badusername))
{
errors.add("username",new ActionMessage("login.error.badusername",badusername));
//如果用户名验证失败,将ActionMessage对象保存到ActionMessages对象errors中。
//login.error.badusername对应消息资源文件中的login.error.badusername的值。
saveErrors(request,errors);
//保存ActionMessages对象errors到request范围。
return new ActionForward(mapping.getInput());
//返回ActionForward对象,Struts框架会把请求转发到视图组件login.jsp中,通过来显示错误信息。
}
if(password.equals(badpassword))
{
errors.add("password",new ActionMessage("login.error.badpassword",badpassword));
saveErrors(request,errors);
return new ActionForward(mapping.getInput());
}
request.setAttribute("username",username);
request.setAttribute("password",password);
//将username和password的值存入request范围内,可以传递到下一页面。
return mapping.findForward("login-success");//返回下一页面,login-success对应struts-config.xml中<forward>属性
}
}
|
所有的Action类都是org.apache.struts.action.Action的子类,Action子类应该覆盖父类的execute()方法,当ActionForm被创建,并且表单验证顺利通过后,struts框架就会调用Action类的execute()方法,该方法的包含如下参数:
ActionMapping:包含了这个Action的配置信息,和struts-config.xml文件中的<action>元素对应。
ActionForm:包含了用户的表单数据,当struts框架调用execute()方法时,ActionForm中的数据已经通过了表单验证。
HttpServletRequest:当前的HTTP请求对象。
HttpServletResponse:当前的Http相应对象。
16 在WebRoot下新建success.jsp文件,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
EN-
分享到:
Global site tag (gtag.js) - Google Analytics
|
相关推荐
在项目中创建一个新的Web工程,然后在web.xml中配置Struts2的核心过滤器。这通常包括以下代码: ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.ng.filter....
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java Web开发中。这个"HelloWorld"例子工程包是初学者入门Struts2的绝佳起点,旨在帮助开发者理解并熟悉该框架的基本结构和工作原理。 首先,让我们...
这个压缩包包含了核心库(core)的jar文件和一个实现Struts2工程的步骤文档,这对于初学者或者开发者来说是极其有价值的资源。 1. **Struts2核心库(Core Jars)**: - Struts2的核心库提供了框架的基本功能,包括...
标题中的“hibernate+struts+css”指的是一个基于Java技术栈的Web应用程序开发框架。...对于学习Java Web开发的初学者或者需要参考示例代码的开发者来说,这是一个非常有价值的资源,可以直接运行并理解其工作原理。
Struts 1.2.9 是一个非常经典的Java Web开发框架,由Apache软件基金会开发,主要用于构建基于MVC(Model-View-Controller)设计模式的Web应用程序。此框架的发布版本包括jar包和源码,方便开发者进行学习、调试和...
### 徒手配置Struts2的关键知识点 #### 一、徒手配置Struts2环境时需注意的关键事项 ...此外,通过深入理解配置文件的每一个元素,可以帮助开发者更好地掌握Struts2的工作原理,从而提高应用程序的开发效率和质量。
本项目是Struts2的学习实践,通过一个小型工程来帮助理解Struts2的核心概念和工作原理。 1. **Struts2框架介绍**:Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其不足,提供了一种...
Struts1是一个经典的开源MVC框架,由Apache软件基金会维护,它在Java Web开发领域有着广泛的应用。这个项目的研究将帮助我们深入理解Web应用程序的架构设计,以及如何通过框架简化开发流程。 首先,Struts1的核心是...
这个"Struts1小demo"是一个很好的学习资源,可以帮助初学者理解Struts1的工作原理并快速上手实践。下面我们将深入探讨Struts1的相关知识点。 1. **MVC模式**:MVC模式是软件工程中的一种设计模式,将业务逻辑...
- **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 WebWork 2,它融合了 Struts 1 的一些优秀思想。 - **优势**:使用 Struts2 可以显著提高...
- 介绍了如何使用IDE(如Eclipse或NetBeans)创建一个新的Struts工程。 - **3.1.2 发布应用** - 讲解了如何部署Struts应用程序到Web服务器上,如Tomcat或Jetty。 **3.2 Java Web应用配置文件:web.xml** - **...
这个"struts2的helloworld例子"是为初学者准备的一个基础教程,旨在帮助理解Struts2框架的基本工作原理和配置过程。下面将详细阐述这个例子中的关键知识点。 首先,Struts2框架的核心是Action类,它是处理用户请求...
Struts项目是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,主要用于构建企业级的Web应用。Struts2是Struts的升级版本,它在Struts1的基础上进行了很多改进,提供了更强大的功能和更好的...
通过实践一个简单的用户登录程序,加深对Struts2工作原理的理解,并能够独立完成Struts2项目的搭建与调试。 #### 实验背景 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源框架,它简化了Web应用...
在Eclipse中,开发者可以创建一个全新的Struts项目,配置相关的构建路径、部署描述符(web.xml)以及Struts配置文件(struts-config.xml)。Struts框架的核心在于Action类,每个Action对应一个用户请求,负责处理...
Struts2是一个流行的MVC框架,用于构建Web应用的控制层。最新版本的Struts2(如2.1.8.1)开始支持与Felix OSGi的集成,使得开发者能在传统的Web开发环境中利用OSGi的模块化和动态部署特性,而无需大幅度改变开发...
在本章中,我们将深入理解如何通过一个简单的HelloWorld实例来启动和运行Struts2应用,同时了解其核心组件和配置过程。 首先,HelloWorld实例是初学者学习新框架时常见的入门教程。在本例中,它的目标是帮助读者对...
最后,提供的“demo”文件可能包含了一个简单的Struts2示例工程,你可以解压后运行并分析其结构,以加深对Struts2集成的理解。记得检查`src/main/java`、`src/main/resources`、`WebContent/WEB-INF`等关键目录,看...