`
XTU_xiaoxin
  • 浏览: 239964 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个struts2例子以及struts2处理过程详解

阅读更多
  首先,了解一下struts2与struts1的区别,大致有以下几点:
一.Struts2主要改进是取代了Struts1的Servlet和Action.

二.Struts2的核心框架是当作一个filter来实现其功能的,而Struts1ActionServlet.

三.在Action上,Struts1都少不了要传递Request等参数,还要继承Action父类,Struts2只要实现了一个public String execute()就可以了,这样Action就可以实现Servlet 测试.

四.Struts2还提供了拦截器(Interceptot)等Struts1所没有的技术.并且,struts2提供了一些常用的插件所以,总的来说,strut2比struts1更强大,更实用,也更加复杂。
关于strut2的处理过程,我就不详说了,网上有很多,个人感觉比较好的如下:
     http://stilllane.blog.163.com/blog/static/27575275200991711336721/

先配置一个DEMO,熟悉一下使用struts2的大致处理步骤

一.在eclipse或myeclipse中新建一web工程,并且在工程中导入一些使用struts2要用到得包:commons-logging-api-1.1.jar、freemarker-2.3.8.jar、ognl-2.6.11.jar、strtuts2-core-2.0.14.jar、xwork-2.0.7.jar.(struts2还提供了许多其它的包,可以根据个人需要添加)

二.在web.xml中作如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <filter>
     <filter-name>struts2</filter-name>
     <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
   </filter>
   <filter-mapping>
     <filter-name>struts2</filter-name>
     <url-pattern>/*</url-pattern>
   </filter-mapping>
   <welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>


说明:FilterDispatcher是struts2中的核心过滤器,它将过滤出所有符合要求的请求,然后进行struts2的内部处理

三.新建一Action类
package com.action;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

	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;
	}
	
	public String execute() {
		if("xiaoxin".equals(userName) && "xiaoxin".equals(password)) {
			return SUCCESS;
		} else {
			return ERROR;
		}
	}
}


注意:struts2的Action和struts1中的Action有很大不同,struts1中的Action类必须要继承DispatchAction或实现Action,而struts2中的Action可以完全是一个Demo,不必继承或实现任何其它类或接口,这样不仅大大降低了类的耦合性,甚至对此Action的测试以及复用都是有大大好处的。当然,为了Action规范,struts2提供了ActionSupport类以及Action接口

四.对struts2进行配置,采用默认配置文件命名struts.xml .具体内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
   <package name="lee" extends="struts-default">
    <!—配置Action,注意它与struts1的区别,具体配置,以后再介绍 -->
      <action name="login" class="com.action.LoginAction">
        <result name="error">/error.jsp</result>
        <result name="success">/success.jsp</result>
      </action>
   </package>
</struts>
     

注:struts2中虽然没有所谓的ActionForm,但它的配置文件相对于struts1的配置文件,并不简单,现在暂时不作介绍,以后会对strtus2的Action配置作详细的介绍

五. 最后,就是视图的。Strtus2提供了丰富并且功能强大的标签库,个人觉得与struts1中的标签相比,无论从功能上或是从使用方便上都可上升一个档次,下面贴出index.jsp视图,其它视图比较简单,暂不贴了。(由于这是个DEMO,所以视图没那么规范)
<body>
    <s:form action="login">
     <s:textfield name="userName" label="用户名" /><br>
     <s:password name="password" label="密码"/><br>
     <s:submit value="登录"/>
    </s:form>
 </body>


记得加上标签头:<%@ taglib prefix="s" uri="/struts-tags" %>
Sstruts2中使用标签不需添加任何其它jar包或插件

最后,在浏览器里输入相应url就OK了。一个struts2得DEMO完成了
0
0
分享到:
评论

相关推荐

    Struts2官方例子详解以及配置文件详解

    在这个"Struts2官方例子详解以及配置文件详解"中,我们将深入探讨Struts2的核心概念和配置细节,通过一个实际的MVC小例子来帮助理解。 首先,让我们了解Struts2的基础知识。Struts2框架是基于拦截器的,它的工作...

    Struts2 深入详解课本代码

    它是Apache软件基金会Struts项目的一部分,旨在提供一个结构化的MVC(Model-View-Controller)架构,使得开发者能够更有效地组织和控制业务逻辑、数据处理以及用户界面。 在深入详解Struts2的课本代码中,我们可以...

    struts2的一个简单的例子

    这个"struts2的一个简单的例子"旨在帮助初学者理解并掌握Struts2的核心概念和工作原理。以下是对这个例子的详细解释: 一、Struts2框架概述 Struts2是基于MVC(Model-View-Controller)设计模式的开源框架,它继承...

    struts2标签库例子

    Struts2 提供了一个强大的标签库,用于简化 Web 应用程序的开发过程。这些标签可以分为两类:通用标签和 UI 标签。下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来控制页面的执行过程,并...

    Struts2.0深入详解以及例子.part2

    Struts2.0深入详解以及例子.part2 Struts2.0深入详解以及例子.part2

    struts2例子.doc

    Struts2是一个开源的MVC框架,它简化了Java Web应用的开发过程,提供了丰富的标签库和插件,使得开发者能够更加专注于业务逻辑的编写,而不是繁琐的框架搭建。 #### 编码准备:环境搭建与配置 1. **包的引入**:...

    一个Struts2的核心拦截器例子

    Struts2是一个强大的Java web应用程序框架,它提供了一种组织和构建MVC(模型-视图-控制器)架构的方式。核心拦截器是Struts2框架的重要组成部分,它们允许开发者在动作执行前后插入自定义逻辑,以实现如日志、权限...

    struts2常用标签详解,带有例子

    里面有struts2的很常用的标签,而且还有例子,通俗易懂

    struts2常用标签详解

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它极大地简化了Java Web应用的开发。本文将深入探讨Struts2框架中的常用标签,这些标签在创建动态Web页面时发挥着至关重要的作用。 1. **s:form标签**: Struts2...

    ibatis+spring+struts2 整合开发例子

    Struts2则是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它负责处理用户的请求,转发到相应的控制器,然后由控制器调用业务逻辑并更新模型,最后返回视图给用户。Struts2可以很好地与Spring框架...

    struts1编程例子

    在深入探讨如何在MyEclipse中使用Struts1框架构建一个简单的登录系统之前,让我们先对Struts1有个基本了解。Struts1是Apache软件基金会的一个开源项目,它提供了一套基于MVC(Model-View-Controller)模式的Java Web...

    Struts2.0深入详解以及例子.part1

    Struts2.0深入详解以及例子.part1 Struts2.0深入详解以及例子.part1

    Struts2.0深入详解以及例子.part4

    Struts2.0深入详解以及例子.part4 Struts2.0深入详解以及例子.part4

    Struts2.0深入详解以及例子.part3

    Struts2.0深入详解以及例子.part3 Struts2.0深入详解以及例子.part3

    Struts2+MyBatis+Spring3.2的一个完整整合例子+详解

    **Struts2** 是一个基于MVC设计模式的开源Web应用框架,它负责处理用户请求并转发到相应的控制器,提供强大的动作调度和页面视图控制。在Struts2中,Action类是业务逻辑的载体,通过配置Struts2的XML文件(struts....

    struts2标签详解与实例

    这个例子展示了如何使用Struts2的`&lt;s:form&gt;`、`&lt;s:textfield&gt;`、`&lt;s:password&gt;`、`&lt;s:email&gt;`和`&lt;s:fielderror&gt;`标签创建一个包含用户输入验证的注册表单。 五、源码与工具 理解Struts2标签的实现原理,可以查看其...

    Struts2 之Struts2标签详解

    Struts2是一个流行的Java Web开发框架,用于构建MVC(模型-视图-控制器)架构的应用程序。在Struts2中,标签库是其强大的功能之一,它简化了JSP页面的编写,使得开发者能够更方便地与模型和控制器进行交互。本文将...

    Spring+Struts2+Ibatis整合例子

    Struts2 是一个MVC(Model-View-Controller)框架,主要用于处理用户请求和展示视图;iBatis 则是一个SQL映射框架,它允许开发者将SQL语句与Java代码分离,提高数据库操作的灵活性。 **Spring 框架** Spring 是一...

    struts2标签详解

    这里的`prefix`属性定义了一个前缀,之后可以使用`s:`前缀来引用Struts2的标签。 #### Struts2标签与Struts1的区别 Struts2的标签库与Struts1有着本质的不同。在Struts1中,标签库被按照功能分成了HTML、Tiles、...

    Struts2-注解第一个例子

    本文将通过一个具体的示例介绍如何在Struts2项目中使用注解,并深入探讨其背后的原理与优势。 #### 二、Struts2注解简介 注解(Annotation)是Java SE 5引入的一个新特性,它为代码元数据提供了一种机制,允许...

Global site tag (gtag.js) - Google Analytics