下面用一个简单的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指针异常。
分享到:
相关推荐
这个入门例子是专为初学者设计的,旨在帮助理解如何在Eclipse集成开发环境中配置和运行一个基本的Struts2项目。在Eclipse中搭建Struts2环境涉及多个步骤,包括设置JDK、安装插件、创建项目以及配置相应的库和文件。 ...
这个"struts2入门例子"旨在帮助初学者理解Struts2的基本架构和核心功能,通过实际操作来学习如何配置Struts2框架以及实现页面跳转。 在Struts2中,`struts.xml`是核心配置文件,它是整个应用的入口点,负责定义动作...
实战开发讲解视频入门_源代码\13_struts2hello.zip"同样强调了这是一个MyEclipse 6的编程教学资源,内容涵盖了Struts2的基础应用,通过"13_struts2hello.zip"我们可以推测这是系列教程中的第十三个部分,专注于介绍...
输出Hello World 使用到struts2标签和jstl表达式 2、 URL:http://localhost:8080/struts100515 输入用户名XXX ------> 提交 ,显示 你好 XXX 使用ONGL表达式 3、 URL:...
`struts2_helloworld`标签可能指的是一个简单的入门示例,它通常包括创建一个Action类、一个JSP页面和相关的Struts配置,以展示Struts2的基本工作流程。 总结来说,"Struts2_jquery_json1.0.zip"是一个综合实例,...
这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:...
**JSP(JavaServer Pages)和Struts框架详解** JSP是Java平台上的动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码,实现了业务逻辑与表现层的分离,增强了网页的交互性和可维护性。JSP的核心概念包括JSP...
1. **struts2_01_hello.rar** - 这是入门级别的示例,通常用于展示如何创建一个简单的"Hello, World!"应用。它会介绍Struts2的最小配置,包括`struts.xml`配置文件、Action类以及结果视图的设置。 2. **struts2_02_...
这个实例源码提供了使用SSH框架进行基础开发的一个简单入门教程。 **Spring框架**: Spring是一个全面的后端应用程序框架,核心特性是依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...
本篇将通过一个简单的入门例子,带你了解并掌握Struts2的核心概念和基本用法。 首先,我们需要理解MVC模式。在MVC模式中,模型(Model)负责处理业务逻辑,视图(View)负责展示数据,而控制器(Controller)则负责...
这个"struts入门最简单例子"旨在帮助初学者快速理解并掌握Struts2的基本用法。Struts2框架提供了丰富的功能,如动作映射、结果类型、拦截器、动态方法调用等,使得开发者能够构建结构清晰、可维护性强的Web应用程序...
这个"struts2经典入门例子"是为了帮助初学者快速掌握Struts2框架的核心概念和基本用法。 在学习Struts2之前,首先理解MVC模式是很有必要的。MVC模式将应用程序分为三个主要部分:模型(Model)负责数据处理和业务...
这个“struts2入门级的例子”是一个非常适合初学者的资源,它将引导你了解Struts2的基础知识和核心概念。通过实践这些例子,你可以快速掌握Struts2的使用方法,从而提高你的Web开发技能。 1. **配置环境**: 首先,...
这个“Struts2 的入门简单的hello”项目是一个非常适合初学者了解和学习Struts2的基础知识的实例。 首先,让我们从创建一个基本的Struts2应用开始。在Java世界里,MVC模式是web开发的核心,它将业务逻辑、数据和...
这个入门级例子旨在帮助新手了解如何在实际项目中应用Struts1.3的核心概念和技术。在这个例子中,我们将深入探讨以下几个关键知识点: 1. **Action**: 在Struts1.3中,Action类是处理用户请求的核心组件。当用户...
标签中的"3ds_nandbo"可能是指这个示例是从3DS NANDBO(一个可能的教程或论坛)获取的,而"struts2__helloworld"和"struts2_helloworld"直接指出了这是关于Struts2的Hello World应用。 总的来说,这个压缩包提供了...
总之,"struts2+myeclipse 入门例子"旨在帮助初学者理解如何在MyEclipse环境中搭建和运行一个简单的Struts2项目。通过学习这个例子,你可以掌握Struts2的基础概念,如Action、配置文件、结果映射和视图渲染,同时也...
1. **MVC架构**:Struts2遵循MVC设计模式,它将业务逻辑(模型)、用户界面(视图)和应用控制(控制器)分离,提高了代码的可维护性和可重用性。在Struts2中,Action类扮演控制器角色,处理用户请求;结果映射决定...
通过这个简单的入门案例,你可以学习到如何创建Action、编写配置文件、设计交互页面,并理解Struts2框架如何将所有这些组件协同工作。对于想要深入学习Struts2的人来说,这是一个很好的起点,可以帮助他们快速掌握...