文档库 最新最全的文档下载
当前位置:文档库 › Struts2搭建(2.1.8一前)

Struts2搭建(2.1.8一前)

Struts2搭建(2.1.8一前)
Struts2搭建(2.1.8一前)

一.Struts2概述

众所周知,Struts2是以Webwork2作为基础发展出来,WebWork是一个强大的基于Web的MVC框架, 它构建在一个命令模式框架XWork之上。

WebWork真正的优势在于它强调简洁和协作能力的根本理念. 使用WebWork将有助于最小化代码并允许开发人员更多的关注业务逻辑和建模而不是诸如编写Servlet之类的事情。

Struts2和webwork2基本上一样的,核心基本没改,部分包名进行了修改。Struts2对webwork的改进之处如下:

1. webwork.properties文件中变量现在可以配置在下列文件:

struts-default.xml

struts-plugin.xml(在每个plugin的jar包中)

struts.xml(用constant元素)

struts.properties(没有默认文件,可选,与webwork.properties文件相似,每个项目可以有这个文件)W

web.xml

2.Struts2的配置文件加入了对通配符的支持。

二.Struts1与Struts2的对比

根据Struts2开发组的文章可以得知,Struts2与Struts1的不同之处如下表所示:

三.Struts2实例

下面我们通过实例来学习一下Struts2的使用。通过本实例的学习,我们将会对struts2的表单以及表单验证有一个初步的认识、了解struts2的配置以及初探Struts2的本地化输出。1.实例说明

本例是Struts2的简单实例,通过本工程的学习,我们将会对struts2的表单以及表单验证有一个初步的认识、了解struts2的配置以及初探Struts2的本地化输出。

2. 编码准备

1)包的引入

在MyEclipse或NetBeans中建立web工程,将所需的包放入WebRoot/lib目录中,本实例所需的包有:

commons-logging-1.1.jar

freemarker-2.3.8.jar

ognl-2.6.11.jar

struts2-core-2.0.8.jar

xwork-2.0.3.jar

这些包在struts-2.0.8-all\struts-2.0.8\lib目录下都可以找到,请读者自行下载。

2) web.xml的配置

要使struts能正常工作,需修改web.xml的内容,为其增加struts2的FilterDispatcher,修改后的web.xml的内容如下:

3)建立源码目录和jsp存放目录

在src目录下建立example文件夹,用于存放本实例的java文件等。在WebRoot文件夹下建立子文件夹example,用于存放本工程的jsp文件。

3. 编码

1) Welcome.jsp和Login.jsp的编写

首先我们建立Welcome.jsp,该文件包含两个链接,点击“登录”链接后跳转到登录信息输入页面,点击“注册”按钮跳转到注册页,为了学习struts2配置中的通配符使用,我们暂不实现注册功能。Welcome.jsp的代码如下:

在该页面的顶部,我们需要将struts2的标签库引入,语句为:<%@ taglib prefix="s" uri="/struts-tags" %>

在该页面,主要用到struts2的标签,该页面主要用到该标签的两个属性,分别为value 和action,其中action属性表示用action来产生url,而value表示使用的目标值。在页面上点击“查看源文件”按钮,可看到生成的语句分别变为:

由此可知使用该标签时,struts2会自动为我们带上下文路径,对于加了属性action的标签,后面会自动带上“.action”作为后缀。

点击“登录”链接后,跳转到Login.jsp页面,该页包含一个登录表单,让用户输入用户名和密码信息,用户点击提交按钮,跳转到指定的Action——Login进行处理。Login.jsp的内容如下:

该页用到Struts2的表单标签

的action属性表示表单提交后跳转的action的名称,此处为Login,该标签最终将生成HTML的form;

标签类同于HTML的,其中name表示属性域的名称,label表示其前的提示名;

标签类同于HTML的,其name和label类同于,在此略。

2)配置文件struts.xml和example.xml

在上述jsp页面,我们需跳转到两个Action地址,需在struts2的配置文件中配置,因当工程变大时,一个庞大的struts2的配置极难维护,建议按包路径分开配置文件,所以本实例除了struts.xml配置文件外,还新增了一个额外的配置文件example.xml。该文件在struts.xml中引用。struts.xml放在src目录下,该文件的内容如下:

可看到该文件通过将example.xml也作为struts2的配置文件。接下来,让我们看看example.xml的配置:

3) Login和ExampleSupport类以及验证配置类Login-validation.xml的编写

在配置文件example.xml中,定义了两个Action,下面我们用代码来实现这两个Action

首先让我们来看看ExampleSupport这个Action,这个Action不做任何操作,集成自ActionSupport,是本工程的各Action类的基类,该类的代码如下:

package example;

import com.opensymphony.xwork2.ActionSupport;

publicclass ExampleSupport extends ActionSupport {

}

接着让我们来看看Login这个Action,该类继承自ExampleSupport类,该Action需实现的业务逻辑如下:

a) 当用户名(username)或密码(password)有一者或两者为空时,登录不成功,跳转到登录信息输入页面;

b) 当用户名(username)和密码(password)都不为空时,登录成功,跳转到主菜单页。

对于用户名和密码的验证,我们可以先考虑在Login类中用代码实现的方式,此时该类的代码如下:

当工程变得愈发复杂时,这一小段一小段验证代码将会变得难以维护,出于此原因,我们可以考虑采用struts2提供的验证机制来实现。在src目录下建立实现验证的xml文件

Login-validation.xml,为Login Action中的username和password属性增加非空验证,验证配置如下:

当验证未通过时,将不会进入Login Action中的execute方法,此时可删除掉Login这个Action 中的验证内容,该类的execute方法直接跳转到SUCCESS即可,修改后的代码略。

4)本地化输出——资源文件package.properties

为了本地化的输出验证错误信息,我们可以将参数信息和错误信息放入资源文件中,资源文件package.properties位于src/example目录下,内容如下:

requiredstring = ${getText(fieldName)}不能为空.

password = 密码

username = 用户名

Missing.message = 该部分尚未构建,请稍候访问...

在src/example目下下建立对应的中文资源文件package_zh_CN.properties,为了避免中文乱码问题,我们编写一个批处理文件code.bat来对package.properties进行编码处理,主要用到native2ascii命令,其内容如下:

del package_zh_CN.properties

copy package.properties package_zh_CN.properties.gbk

native2ascii -encoding GBK package_zh_CN.properties.gbk package_zh_CN.properties del package_zh_CN.properties.gbk

del *.bak

运行该批处理文件,可在package_zh_CN.properties中可看到编码后的资源文件信息,如下:requiredstring = ${getText(fieldName)}\u4e0d\u80fd\u4e3a\u7a7a.

password = \u5bc6\u7801

username = \u7528\u6237\u540d

Missing.message =

\u8be5\u90e8\u5206\u5c1a\u672a\u6784\u5efa\uff0c\u8bf7\u7a0d\u5019\u8bbf\u95ee...

5)Register.jsp和Missing.jsp的编写

在2中的example.xml中,我们配置了通配符映射,在Welcome.jsp中,我们使用

">注册

其中的Register在example中找不到相关映射,于是在用户点击“注册”按钮时,将映射到通配符所映射的Action:example. ExampleSupport.而后跳转到Register.jsp页面,其代码如下:

四.总结

到此为止,我们的实例已构建完,可通过浏览器访问:

http://localhost:8080/struts2-blank-2.0.8/example/Welcome.jsp看到我们的劳动成果。下面总结一下我们在该实例中学到的东西。

常用的一些标签的使用

在本实例中,我们学习了以及的使用。

表单数据的验证

本文描述了一个简单的表单的数据非空验证。

3. 本地化输出错误提示信息

在验证失败时,用资源文件来输出错误提示信息。

4.Strut2配置文件中通配符的使用

对于某些地址,我们可以使用在struts2的配置通配符来使其映射到某个Action中去。

Struts2学习笔记

Struts2项目的构建与配置 1.配置struts.xml (1)配置struts.xml可以参考下载的struts-2.3.14.1-all.zip解压后的apps文件夹下的 参考项目的struts.xml文件。 (2)主要的配置如下: /hello.jsp value="true"表示是开发模式,当修改了配置时服务器会自动加载修改后的配置,不需要中期服务器,方便开发。 (3)namespace="/"与浏览器的访问地址有关,namespace的默认值为空。 (4)/hello.jsp action的name值与浏览器的访 问地址有关,当地址是“http://…/hello”时,浏览器就会返回result中的hello.jsp 的页面。 2.配置web.xml (1)配置web.xml也可以参考下载的struts-2.3.14.1-all.zip解压后的apps文件夹下的 参考项目的web.xml文件 (2)主要配置如下: struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* 3.配置Struts2的jar包 (1)复制下载的struts-2.3.14.1-all.zip解压后的apps文件夹下的参考项目的 WEB-INF\lib文件夹下的所有的jar包到我们自己项目的WEB-INF\lib文件夹下即可。 Struts.xml的配置 1.package的属性与配置 (1)package的使用说明:类似于Java程序里的package,主要用于区分同名的action。在真 正的项目开发中package通常来区分不同的模块。例如: (2)name属性:用于区分不同的package,此属性不能省略不写。 (3)extends属性:用于继承其他的package,继承了某个package就包含了某个package里 的所有配置,此属性可以省略不写,默认继承struts-default。 (4)namespace属性:表示浏览器访问的路径,此属性可以省略不写,默认为空,当此属性 为空时,该package里的action可以匹配浏览的任何请求的action。 (5)abstract属性:此属性的值为false表示此package非抽象的,若为true表示此package

Struts2+Spring3+Hibernate4+Maven整合

Struts2+Spring3+Hibernate4+Maven整合 目录 1.建立Maven工程 2.搭建Spring3 3.搭建Struts2并整合Spring3 4.搭建Hibernate4并整合Spring3 内容 1.建立Maven工程 第一步: 第二步:

第三步:

第四步: 注意:这里的JDK要选择默认的,这样别人在使用的时候,如何JDk不一致的话也不会出错,如下图所示:

第五步: Maven标准目录 src/main/java src/main/resources src/test/java src/test/resources 第六步: 发布项目:Maven install 清除编译过的项目:Maven clean

OK,Mean 工程创建成功! 2. 搭建 Spring3

(1)下载Spring3需要的jar包 1.spring-core 2.spring-context 3.spring-jdbc 4.spring-beans 5.spring-web 6.spring-expression 7.spring-orm 在pom.xml中编写Spring3需要的包,maven会自动下载这些包。 org.springframework spring-core 3.1.2.RELEASE org.springframework spring-context 3.1.2.RELEASE org.springframework spring-jdbc 3.1.2.RELEASE org.springframework spring-beans 3.1.2.RELEASE org.springframework spring-web 3.1.2.RELEASE org.springframework spring-expression 3.1.2.RELEASE org.springframework spring-orm 3.1.2.RELEASE

struts2复习题(含答案)

Struts2复习题 1.以下属于struts2的控制器组件是: 2.以下属于struts2的体系结构的是:(多选) 控制器组件配置文件 3.以下属于struts2配置文件中的配置元素是:(多选) A. B. C. D. 4.关于struts1和struts2对比的说法正确的是: 要求Action类继承struts1框架中的Action父类,struts2中则不一定需要继承,可以是POJO 类 中的Action不是线程安全的,而struts2中的Action是线程安全的 和struts2中都使用ActionForm对象封装用户的请求数据 使用OGNL表达式语言来支持页面效果,struts2通过ValueStack技术使标签库访问值 5.以下关于ValueStack说法正确的是:(多选) A.每个Action对象实例拥有一个ValueStack对象 B.每个Action对象实例拥有多个ValueStack对象 中封装了需要传入下一个页面的值,这些值封装在ValueStack对象中 会在请求开始时被创建,请求结束时消亡 6.关于struts2配置文件说法正确的是: A.必须在WEB-INF/classes目录下 B.名字必须为 C.配置Action时,必须配置包信息 D.使用元素配置转发 7.在struts2配置中用()元素来配置常量: A. B. C. D. 8.关于struts2包的说法正确的是: 框架使用包来管理常量 框架定义包时必须指定name属性 框架中配置包时,必须继承自struts-default包,否则会报错 框架中使用包来管理Action 9.struts2中获取Servlet API的方法正确的是:(多选) A.使用ActionContext对象以解耦合的方法访问Servlet API B.使用ServletActionContext对象以解耦合的方式访问Servlet API C.使用ActionContext对象以耦合的方式访问Servlet API D.使用ServletActionContext对象以耦合的方式访问Servlet API 10.struts2动态调用的格式为: ! 11.如果要实现struts2的数据校验功能 A.普通Action类可以实现 B.继承自Action接口可以实现 C.继承自ActionSupport类可以实现 D.继承自ActionValidate类可以实现

Struts2的工作机制原理分析及实例

Struts2的工作机制分析及实例 一、概述 本章讲述Struts2的工作原理。 读者如果曾经学习过Struts1.x或者有过Struts1.x的开发经验,那么千万不要想当然地以为这一章可以跳过。实际上Struts1.x 与Struts2并无我们想象的血缘关系。虽然Struts2的开发小组极力保留Struts1.x的习惯,但因为Struts2的核心设计完全改变,从思想到设计到工作流程,都有了很大的不同。 Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork 的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。 本章主要对Struts的源代码进行分析,因为Struts2与WebWork的关系如此密不可分,因此,读者需要下载xwork的源代码,访问https://www.wendangku.net/doc/d3391689.html,/xwork/download.action即可自行下载。 下载的Struts2源代码文件是一个名叫struts-2.1.0-src.zip的压缩包,里面的目录和文件非常多,读者可以定位到 struts-2.1.0-src\struts-2.0.10\src\core\src\main\java目录下查看Struts2的源文件,如图14所示。 (图14) 二、主要的包和类 Struts2框架的正常运行,除了占核心地位的xwork的支持以外,Struts2本身也提供了许多类,这些类被分门别类组织到不同的包中。从源代码中发现,基本上每一个Struts2类都访问了WebWork提供的功能,从而也可以看出Struts2与WebWork千丝万缕的联系。但无论如何,Struts2的核心功能比如将请求委托给哪个Action处理都是由xwork完成的,Struts2只是在WebWork 的基础上做了适当的简化、加强和封装,并少量保留Struts1.x中的习惯。

struts2.3.20环境搭建详解

Create Struts 2 Web Application With Artifacts In WEB-INF lib and Use Ant To Build The Application Edit Page Browse Space Add Page Add News You can download this complete example, Basic_Struts2_Ant, from Google Code - https://www.wendangku.net/doc/d3391689.html,/p/struts2-examples/downloads/list. Click on the link for Basic_Struts2_Ant.zip and save the file to your computer. Unzip the file and you should have a folder named Basic_Struts2_Ant. In that folder is a README.txt file with instruction on how to build and run the application. Icon This tutorial assumes you already know how to create a Java web application, use Ant to build the web application archive (war) file, and deploy the war file to a Servlet container such as Tomcat or Jetty. To create a Struts 2 web application with the Struts 2 artifacts added to the the application's class path manually you will need to download the Struts 2 distribution from the Apache Struts website. On the Struts 2 download page, click on the link for the current General Availability release. In that release's section you'll find several links. To get started with a basic Struts 2 web application you need to only download the Essential Dependencies Only zip file, which is approximately 12mb. After downloading this zip file, unzip it. You should have a folder named the same as the current general availability release and in that folder will be a lib folder. The lib folder contains the Struts 2 jar files (e.g. struts2-core-X.X.X.X.jar, where X.X.X.X is the version) and other jar files Struts 2 requires (e.g. xwork-core.X.X.X.jar). As we create our basic Struts 2 web application we will copy from the Struts 2 distribution lib folder just the jar files our application requires. As we add features to our application in future tutorials we will copy other jar files. Step 1 - Create A Basic Java Web Application In your Java IDE create a web application project named Basic_Struts2_Ant. To follow along with this tutorial your web application should have the following folder structure: Remember Struts 2 requires Servlet API 2.4 or higher, JSP 2.0 or higher, and Java 5 or higher. The example project, Basic_Struts2_Ant, which you can download from Google

Struts 2 异常处理的常用的解决方法

一、第一个异常处理 严重: Servlet.service() for servlet jsp threw exception The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location] at org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:60) at org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:44) at https://www.wendangku.net/doc/d3391689.html,ponentTagSupport.doStartTag(ComponentTagSupport.java:48) at https://www.wendangku.net/doc/d3391689.html,_005fstruts2_005flz.YpxxbQuery_jsp._jspx_meth_s_005fdebug_005f0(Ypxxb Query_jsp.java:108) at https://www.wendangku.net/doc/d3391689.html,_005fstruts2_005flz.YpxxbQuery_jsp._jspService(YpxxbQuery_jsp.java:83) 解决的办法:(4种解决方案) 1. web.xml 中添加一个filter struts2 *.jsp struts2 /action/* 2. struts2 /* 注意这里一定要是/* 3. 这通常是由于不经由Filter访问包含struts标签的jsp页面导致的。那么,只要通过配置,使得对jsp页面的访问请求由Filter过滤转发即可。 方法1:在strut.xml中配置一个通用Action,通过这个Action转发到jsp页面。这个时候,原先访问jsp的请求路径就要换成相应的Action路径了。写法如下。 /{1}.jsp 方法2:在web.xml中配置Filter的url-parttern。写法如下。其中struts2-dispatcher 是已定义的Filter。

struts2国际化配置

前提条件:strut2的必须架包已经引入,struts2的配置文件全部配置完成 1.首先创建一个struts.properties在src目录下,服务器启动时候会自动加载该文件,在这个文件中写入struts.custom.i18n.resources=globalMessages,服务器会自动选择前缀为globalMessages资源文件。(或者你在你的struts.xml文件中添加服务器加载struts.xml的时候会加载国际化资源文件); 2.在src目录下创建资源文件英文globalMessages_en.properties 中文globalMessages_zh.properties。globalMessages_en.properties 文件内容为home=home globalMessages_zh.properties文件内容为home=¥u9996¥u9875 3.在页面端获得资源文件信息。<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> My JSP 'test.jsp' starting page struts2的国际化分三种情况 1.前台页面的国际化, 2.Action类中的国际化, 3.配置文件的国际化。 首先指定全局的国际化资源文件: 在配置文件struts.xml中引入 (注意位置)

Struts 2期末考试

1、MVC模式(View-model-controller) 2、MVC模式的优点: (1)低耦合性。视图层、模型层和控制层分离,很容易改变应用程序的数据层和业务规则,只需改变MVC的模型层就可以了。 (2)高重用性。多个视图可以对应一个模型,这样减少了代码的重复性及维护量,一旦模型发生改变,也易于维护。 (3)可实用性。MVC允许使用各种不同的表现层技术来访问同一个服务器端的代码。如jsp、velocity等。 (4)可维护性。3个模块层相分离,是的web应用更易维护和修改。 3、model2模式下,模型用javaBean充当,视图有jsp页面充当,控制器由servlet充当。 4.struts2是在struts1的基础上发展起来的,以webwork 为核心,采用webwork的设计理念。Struts2是webwork 的升级。 5、webwork是基于MVC架构模式的J2EE Web框架,现在的最新版本被拆分为XWork和WebWork2两个项目。WebWork的优点: (1)action不需要与WebWork耦合,提高了代码的重用率。 (2)支持更多表现层技术,从而有更好的适用性。Webwork的特征: (1)灵活的validation框架。运行开发者在XML文件中定义验证内容,在运行时通过interceptor自动应用,这样可以脱离Action类。 (2)Interceptor。在action处理的前后实现动态拦截,简化action代码。 (3)支持I18N (4)支持OGNL表达式语言 (5)Type Conversion.允许类之间很容易实现对象的转换。(6)允许动态对象图表遍历和方法执行,使用valuestack 透明访问多beans的属性。 (7)Ioc容器。管理组件的生命周期,使客户不需要通过创建注册类获得组件实例。 (8)velocity templates .使UI组件可重用,从而允许开发者很容易地定制Web页面的look&feel。 (9)容易和第三方软件集成。例如hibernate、spring和sitemesh。 (10)支持多种视图技术。如jsp、velosity、freemarker 和xml等。 6、struts2框架的大致处理流程: (1)客户端浏览器发送一个请求。 (2)核心控制器filterdispatcher根据请求决定调用合适的action。 (3)webwork的拦截器链自动对请求应用通过功能,如验证。 (4)回调action的execute()方法,该方法根据请求的参数来执行一定的操作。 (5)execute()方法的处理结果信息将被输出到浏览器中,struts2支持多种形式的视图。如jsp、html。 7、web.xml struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* (2) ShowWords.java package action; import com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public class ShowWords extends ActionSupport{ private String name; private String words; public String getName() { return name; } public void setName(String name) { https://www.wendangku.net/doc/d3391689.html, = name; } public String getWords() { return words; } public void setWords(String words) { this.words = words; } public String execute(){ return INPUT; }else{ words = "欢迎您:" + name; return SUCCESS; } } } (3) Struts.Xml /showWords.jsp /inputWords.jsp 8、核心控制器FilterDispatcher: 核心控制器是struts2框架的基础,它包含了框架内部的 控制流程和处理机制。在web应用中,FilterDispatcher作 为一个filter运行,负责拦截所有的用户请求。如果用户 请求以.action结尾,则该请求被转入Struts框架处理。 Struts2框架按模块可以分为Servlet Filters、struts核心模 块、拦截器和用户实现模块。P33 Srtuts2框架处理一个请求的步骤: (1)客户端提交一个请求(HttpServletRequest). (2) 请求被提交到一系列的过滤器(filter),首先提交 ActionContextCleanUp然后提交到其他过滤器(SiteMesh等) 最后提交到FilterDispatcher。 (3) FilterDispatcher询问ActionMapper是否需要调用某个 Action来处理这个请求。如果ActionMapper决定需要调 用某个Action,则FilterDispatcher把请求的处理交给 ActionProxy。 (4) ActionProxy通过Configuration Manager(struts.xml)询问 框架的配置文件,找到需要调用的Action类。 (5) ActionProxy创建一个ActionInvocation实例,同时 ActionInvocation通过代理模式调用Action,在调用之前, ActionInvocation会根据配置加载Action相关的所有拦截 器。 (6)一旦Action执行完毕,ActionInvocation负责根据 struts.xml中的配置找到对应的返回结果。 9、使用元素配置包时可以指定4个属性。 属性名name,必选,指定包的名称,该名称是该包被其他 包引用的key值。 属性名extends,可选,指明该包继承的其他包。 用extends继承包,父包在子包前定义。 Struts.xml /success.jsp /success.jsp

Struts2考试题分析

题目1 以下不属于Struts2中result的type属性( ) A.action B.redirect C.redirectAction D.dispatcher 题目2 下列有关拦截器说法错误的是? A.struts通过拦截器完成执行action请求处理方法前一系列操作。例如:数据封装、文件上传、数据校验等 B.在struts中,直接访问jsp页面,struts将使用默认拦截器栈处理当前请求。 C.在执行action时,struts将执行若干拦截器1、2、3,执行action完成后,将继续执行拦截器3、2、1 D. 默认情况,在一个action没有配置拦截器的引用,说明当前action将不使用拦截器 题目3 以下哪些是Action接口提供的返回值? A.success B.none C.error D.input 题目4

如果要实现struts2的数据检验功能 A普通的Action类可以实现 B继承自Action接口的可以实现 C继承自ActionSupport类可以实现 D继承自ActionValidate类可以实现 题目5 struts2默认的处理结果类型是: A.dispatcher B.redirect C.chain D.forward 题目6 在值栈的上下文Context中,存在一些固定的key表示不同的对象,以下描述正确的是? A.request,表示request作用域的数据 B.session,表示session作用域的数据 C.application,表示application作用域的数据 D.parameters,表示请求参数的所有数据 题目7 以下属于struts2配置文件中的配置元素是:()多选) A.

Java项目(struts2框架)

Java项目(struts2框架) 工具/原料: Eclipse,struts 方法: 1. 打开eclipse新建java项目File-->New-->other;

2. 导入jar包,项目名称上右键-->Build Path--> Configure Build Path...;

红框内就是我们所导入的jar包了; 3. 接下来,配置struts2,首先需要导入struts2的jar包,方法如(2.); 新建一个XML来配置struts2,一般情况下为struts.xml,也可以自定义名称;

struts2配置及项目启动

1,Struts2的配置: 1.1项目的配置: 第一步:导包: 将D:\software\tool\struts2\struts-2.3.16.1\apps\struts2-blank\WEB-INF\lib中的jar 包全部导入项目的lib文件夹中,其中jar包有: xw o rk-co re-2.3.16.1.j ar asm-3.3.j ar asm-co m m o ns-3.3.j ar asm-t ree-3.3.j ar co m m o ns-f i l eup l o ad-1.3.1.j ar co m m o ns-i o-2.2.j ar co m m o ns-l ang3-3.1.j ar co m m o ns-l o g g i ng-1.1.3.j ar f reem arker-2.3.19.j ar j avassi st-3.11.0.G A.j ar l o g4j-1.2.17.j ar o g nl-3.0.6.j ar st rut s2-co re-2.3.16.1.j ar 第二步:导入struts.xml文件 文件中package可以自己定义。 第三步:编写web.xml文件

其内容为struts2的核心拦截器,其他拦截去如果需要,必须写到struts2拦截器 上面,否则,不起作用。 第四步:开发antion 在后面详细描述; 1.2开发action 方式一:继承ActionSupport 如果用struts2数据校验,必须继承此类。 方式二:实现Action 接口 方式三:不继承任何类,不识闲任何接口 1.3访问通配符 通配符:在struts 中配置信息中,可以用*于{1}优化配置 1.4 struts 中路径匹配原则 1,访问路径=命名空间+action 的name 属性: public class UserAction extends ActionSupport{ /{1}.jsp

struts2注解使用

从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定自动配置。如何使用Convention 1. 将struts-Convention-plugin- 2.1.6.jar文件复制到WEB-INF/lib路径下 2. 对于Convention插件而言,它会自动搜索位于action,actions,struts,struts2包下的所有java 类,Convention插件会把如下两种java类当成Action处理: 1)所有实现了com.opensymphony.xwork2.Action的java类 2)所有类名以Action结尾的java类 3. Convention插件还允许设置如下三个常量: 1)struts.Convention.exclude.packges:指定不扫描哪些包下的java类,位于这些包结构下的java类将不会自动映射成Action; 2)struts.convention.package.locators:Convention插件使用该常量指定的包作为搜寻Action的根包。对于actions.fore.LoginAction类,按约定原本应映射到/fore/login;如果将该常量设为fore,则该Action将会映射到/login 3)struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action类。Convention插件除了扫描action,actions,struts,struts2四个包的类以外,还会扫描该常量指定的一个或多个包,Convention会试图从中发现Action类。 注意:struts.convention.package.locators和struts.convention.action.packages两个常量的作用比较微妙,开发者在利用这两个常量时务必小心。 如:下面Action所在包被映射的命名空间如下: com.fun.actions.LoginAction 映射到/ com.fun.actions.myoffice.CarInfoAction 映射到/myoffice com.fun.struts.myoffice.EntINfoAction 映射到/myofiice 4. 映射Action的name时,遵循如下两步规则: 1)如果该Action类名包含Action后缀,将该Action类名的Action后缀去掉。否则不做任何处理。 2)将Action类名的驼峰写法(每个单词首字母大写、其他字母小写的写法)转成中画线写法(所有字母小写,单词与单词之间以中画线隔开) 如:LoginAction映射的Acion的name属性为login,GetBooks映射的Action的name的属性为get-books,AddEmployeeAction映射的Action的name属性为add-employee 5. 默认情况下。Convention总会到WEB应用的WEB-INF/content路径下定位物理资源,定位资源的约定是:actionRUL+resultCODE+suffix。当某个逻辑视图找不到对应的试图资源时,Convention会自动视图使用ActionURL+suffix作为物理视图资源。 如:actions.fore.LoginAction 返回success字符串时,Convention优先考虑使用 WEB-INF/content/fore目录下的login-success.jsp作为视图资源。如果找不到该文件,login.jsp也可作为对应的试图资源。如果返回input字符串,Convention会将WEB-INF/content/fore里面查找login-input.jsp 6. 为了看到struts2应用里的Action等各种资源的影射情况,struts2提供了Config Browser插件。使用方法,将struts2-config-browser-plugin-2.1.6.jar文件复制到struts2应用的WEB-INF\lib目录中。

相关文档