`

2_struts1简单入门例子---登陆

阅读更多

下面用一个简单的login例子来简单的演示一下struts的流程

 

1 开发form

     要接受浏览器传来的参数,就要对新建一个form类,这个类需要继承自org.apache.struts.action.ActionForm,form中的字段要和浏览器表单的字段名匹配(实际上是set/get属性名),这里假设前台表单传回username和password2个参数。

package com.element;

import org.apache.struts.action.ActionForm;

public class LoginForm extends ActionForm {
	private String username;
	private String password;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}
 

    在struts-config.xml中注册刚新建的form类

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
	<!--所有form-bean都要嵌套在form-beans标签中
		name属性是一个逻辑名,代表了这个formbean,可以随意取名,但不能和其它formbean重名
		type属性指明了formbean的类路径	
	 -->
	<form-beans>
		<form-bean name="loginForm" type="com.element.LoginForm"></form-bean>
	</form-beans>
</struts-config>
 

2 开发Action

    这个Action类要继承org.apache.struts.action.Action,在struts框架里面的作用是后端控制器。这里需要覆写execute()方法

package com.element;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class LoginAction extends Action {

       //必须覆写execute方法
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		return super.execute(mapping, form, request, response);
	}
	
}

     同时也需要在struts-config.xml中配置Action类:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
	<!--所有form-bean都要嵌套在form-beans标签中
		name属性是一个逻辑名,代表了这个formbean,可以随意取名,但不能和其它formbean重名
		type属性指明了formbean的类路径	
	 -->
	<form-beans>
		<form-bean name="loginForm" type="com.element.LoginForm"></form-bean>
	</form-beans>
	<!--同理,action元素需要嵌套在action-mappings标签中
		一个Action类由一个<action>表示
		path属性表示该Action要拦截的url,path="/login"就代表了login.do,/代表的应用根目录,不是站点根目录
		type属性指明了Action类的路径
		name属性和form-bean中的name属性相匹配,指明需要填充该formbean来给Action处理
		<forward>子标签指定了Action处理完后的视图,其中需要在Action.execute中指明name属性的值,从而将请求转发到path属性指定的路径中
	  -->
	<action-mappings>
		<action path="/login" type="com.element.LoginAction" name="loginForm">
			<forward name="loginSuccess" path="/loginSuccess.jsp"></forward>
			<forward name="loginFailure" path="/loginFailure.jsp"></forward>
		</action>
	</action-mappings>
</struts-config>

 

3 开发execute方法

    在execute方法中相当于是一个控制器,需要在其中进行业务层的调用和视图层的返回

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		//需要将form转型成真正的类型,这样才可以取得浏览器的参数信息
		LoginForm lf = (LoginForm)form;
		if(lf.getUsername().equals("element")){
                       //参数和在<forward>标签中的name相对应
			return mapping.findForward("loginSuccess");
		}else
			return mapping.findForward("loginFailure");
	}
 

4 建立login.jsp,loginSuccess.jsp,loginFailure.jsp

   其中login.jsp的body代码如下:

 

  <body>
       <!-- action要求以.do结尾,这样才能被ActionServlet截获 -->
   	<form action="<%=request.getContextPath()%>/login.do">
   		username:<input name="username" type="text"/><br/>
   		password:<input name="password" type="password"/><br/>
   		<input type="submit" value="登陆">
   	</form>
  </body>
 

    将项目部署,运行的时候,当在表单控件中的username=“element”的时候,页面就转发到loginSuccess.jsp,否则到loginFailure.jsp.

    注:即使不输入username控件,也会转发到loginFailure.jsp,因为struts会讲formbean中的username设置为“”空字符串,因此不会抛出null指针异常。

 

 

 

分享到:
评论
1 楼 dudu0101 2010-11-05  
很详细。。

相关推荐

    struts入门例子-eclipse搭建

    这个入门例子是专为初学者设计的,旨在帮助理解如何在Eclipse集成开发环境中配置和运行一个基本的Struts2项目。在Eclipse中搭建Struts2环境涉及多个步骤,包括设置JDK、安装插件、创建项目以及配置相应的库和文件。 ...

    struts2入门例子

    这个"struts2入门例子"旨在帮助初学者理解Struts2的基本架构和核心功能,通过实际操作来学习如何配置Struts2框架以及实现页面跳转。 在Struts2中,`struts.xml`是核心配置文件,它是整个应用的入口点,负责定义动作...

    MyEclipse.6.实战开发讲解视频入门_源代码\13_struts2hello.zip

    实战开发讲解视频入门_源代码\13_struts2hello.zip"同样强调了这是一个MyEclipse 6的编程教学资源,内容涵盖了Struts2的基础应用,通过"13_struts2hello.zip"我们可以推测这是系列教程中的第十三个部分,专注于介绍...

    Struts2学习案例--------入门篇

    输出Hello World 使用到struts2标签和jstl表达式 2、 URL:http://localhost:8080/struts100515 输入用户名XXX ------&gt; 提交 ,显示 你好 XXX 使用ONGL表达式 3、 URL:...

    Struts2_jquery_json1.0.zip_Struts2 heloword_struts2_struts2 jque

    `struts2_helloworld`标签可能指的是一个简单的入门示例,它通常包括创建一个Action类、一个JSP页面和相关的Struts配置,以展示Struts2的基本工作流程。 总结来说,"Struts2_jquery_json1.0.zip"是一个综合实例,...

    struts2简单例子

    这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:...

    JSP_Struts入门教程+例子.ppt.zip

    **JSP(JavaServer Pages)和Struts框架详解** JSP是Java平台上的动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,实现了业务逻辑与表现层的分离,增强了网页的交互性和可维护性。JSP的核心概念包括JSP...

    struts-ex-coding.rar_ex

    1. **struts2_01_hello.rar** - 这是入门级别的示例,通常用于展示如何创建一个简单的"Hello, World!"应用。它会介绍Struts2的最小配置,包括`struts.xml`配置文件、Action类以及结果视图的设置。 2. **struts2_02_...

    java_spring_hibernate_struts2的ssh框架简单入门实例源码

    这个实例源码提供了使用SSH框架进行基础开发的一个简单入门教程。 **Spring框架**: Spring是一个全面的后端应用程序框架,核心特性是依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...

    Struts2.0简单的入门例子

    本篇将通过一个简单的入门例子,带你了解并掌握Struts2的核心概念和基本用法。 首先,我们需要理解MVC模式。在MVC模式中,模型(Model)负责处理业务逻辑,视图(View)负责展示数据,而控制器(Controller)则负责...

    struts入门最简单例子

    这个"struts入门最简单例子"旨在帮助初学者快速理解并掌握Struts2的基本用法。Struts2框架提供了丰富的功能,如动作映射、结果类型、拦截器、动态方法调用等,使得开发者能够构建结构清晰、可维护性强的Web应用程序...

    struts2经典入门例子

    这个"struts2经典入门例子"是为了帮助初学者快速掌握Struts2框架的核心概念和基本用法。 在学习Struts2之前,首先理解MVC模式是很有必要的。MVC模式将应用程序分为三个主要部分:模型(Model)负责数据处理和业务...

    struts2入门级的例子

    这个“struts2入门级的例子”是一个非常适合初学者的资源,它将引导你了解Struts2的基础知识和核心概念。通过实践这些例子,你可以快速掌握Struts2的使用方法,从而提高你的Web开发技能。 1. **配置环境**: 首先,...

    Struts2 的入门简单的hello

    这个“Struts2 的入门简单的hello”项目是一个非常适合初学者了解和学习Struts2的基础知识的实例。 首先,让我们从创建一个基本的Struts2应用开始。在Java世界里,MVC模式是web开发的核心,它将业务逻辑、数据和...

    struts1.3 入门级例子

    这个入门级例子旨在帮助新手了解如何在实际项目中应用Struts1.3的核心概念和技术。在这个例子中,我们将深入探讨以下几个关键知识点: 1. **Action**: 在Struts1.3中,Action类是处理用户请求的核心组件。当用户...

    jamesby-struts2-helloworld.rar_3ds nandbo_helloworld_struts2_str

    标签中的"3ds_nandbo"可能是指这个示例是从3DS NANDBO(一个可能的教程或论坛)获取的,而"struts2__helloworld"和"struts2_helloworld"直接指出了这是关于Struts2的Hello World应用。 总的来说,这个压缩包提供了...

    struts2+myeclipse 入门例子

    总之,"struts2+myeclipse 入门例子"旨在帮助初学者理解如何在MyEclipse环境中搭建和运行一个简单的Struts2项目。通过学习这个例子,你可以掌握Struts2的基础概念,如Action、配置文件、结果映射和视图渲染,同时也...

    struts2完整例子

    1. **MVC架构**:Struts2遵循MVC设计模式,它将业务逻辑(模型)、用户界面(视图)和应用控制(控制器)分离,提高了代码的可维护性和可重用性。在Struts2中,Action类扮演控制器角色,处理用户请求;结果映射决定...

    struts2入门demo

    通过这个简单的入门案例,你可以学习到如何创建Action、编写配置文件、设计交互页面,并理解Struts2框架如何将所有这些组件协同工作。对于想要深入学习Struts2的人来说,这是一个很好的起点,可以帮助他们快速掌握...

Global site tag (gtag.js) - Google Analytics