您的位置:首页 > 编程语言 > Java开发

Struts2-入门案例

2017-05-31 21:44 323 查看

Struts的下载和安装

Struts2是以WebWork为核心的,它采用拦截器的机制来处理用户的请求。

访问官网http://struts.apache.org/。点击Download

Full Distribution:下载Struct2的完整版,通常建议下载该选项,该选项包括Struct2的示例应用、空示例应用、核心库、源代码和文档等。

Example Applications:仅下载Struct2的示例应用。

Essential Dependencies Only:核心库。

Documenttation:相关文档。

Source:源码

我用的是struts-2.3.15.1-all.zip,解压完之后,目录结构

apps:自带的案例

docs:开发文档

lib:所有的jar包(用哪个拷贝哪个)

src:源码

例子

1.创建web项目struts2

2.导入jar包,13个。参考给的例子struts-2.3.15.1-all\struts-2.3.15.1\apps\struts2-blank\WEB-INF\lib,将里边的jar包都添加上。添加到项目的WEB-INF的lib文件中。(把war文件改成jar文件,然后解压)

asm-3.3.jar:操作Java字节码的类库

asm-commons-3.3.jar:提供了基于事件的表现形式

asm-tree-3.3.jar:提供了基于对象的表现形式

commons-fileupload-1.3.jar:Struts2文件上传组件依赖包

commons-io-2.0.1.jar:Struts2的输入输出,传文件依赖的JAR

commons-lang3-3.1.jar:包含一些数据类型工具,是对java.lang包的增强

commons-logging-1.1.3.jar:对日志的扩展

freemarker-2.3.19.jar:Struts2标签模板使用的类库

javassist-3.11.0.GA.jar:Javascript字节码解释器

log4j-1.2.17.jar:日志开源组件

ognl-3.0.6.jar:OGNL表达式

struts2-core-2.3.15.1.jar:Struts框架的核心类库

xwork-core-2.3.15.1.jar:WebWork核心库,Struts2的构建基础。

3.在web.xml配置文件中,配置Struts2的核心过滤器。(去给的例子里去找怎么配)

<!-- 配置Struts2核心过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


4.定义处理用户请求的Action类

package com.eaglezsx.action;
import com.opensymphony.xwork2.ActionSupport;

public class HelloWorldAction extends ActionSupport{
public String execute() throws Exception{
return SUCCESS;
}
}


返回值为SUCCESS,该常量字段是从父类中继承的。execute()方法的返回值对应着struts.xml文件中
<result>
标签中name属性的值,会执行对应处理结果下的资源视图。

5.配置Struts2的配置文件。(去那个例子里边去找怎么配)

在src目录下新建一个名称为struts.xml文件,这个文件必须在classes的根目录下。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<!--Struts2的Action必须放在指定的包空间下定义 -->
<package name="hello" namespace="/" extends="struts-default">
<!-- 定义action -->
<action name="helloWorld" class="com.eaglezsx.action.HelloWorldAction">
<!--定义处理结果和视图资源之间的映射关系-->
<result name="success">/success.jsp</result>
</action>
</package>
</struts>


对于struts.xml的dtd约束可以在struts2-core-2.3.15.1.jar中的struts-2.3.dtd中找到。

使用dtd来获得本地struts.xml提示:开发过程中国如果可以上网,struts.xml会自动缓存dtd,提供提示功能。如果不能够上网,则需要手动配置本地dtd,这样才能够使struts.xml产生提示。

找到struts-2.3.dtd这个文件,在WEB-INF下建个文件夹dtd,把他放进去。Window–Preferences,搜索xml,找到XML Catalog,User Specified Entries,点击Add,在Location中找到刚才添加的文件,Key type选择URI,Key填写http://struts.apache.org/dtds/struts-2.3.dtd

6.创建视图文件

在WebRoot目录下创建一个index.jap,在其中编写一个超链接,用于访问Action对象

<body>
<a href="${pageContext.request.contextPath }/helloWorld.action">Hello Struts2</a>
</body>


然后再在WebRoot目录下创建一个success.jsp,作为Action对象处理成功后的返回页面

<body>
欢迎学习第一个Struts2程序
</body>


7.执行流程的分析



在客户端浏览器上单击index.jsp中的超链接,会发送一个helloWorld.action请求,该请求被核心控制器拦截到,通过匹配struts.xml文件中的配置,找到请求对应的HelloWorldAction,并默认调用HelloWorldAction中的execute()方法,返回逻辑视图名。然后再通过匹配找到并转发到对应的视图页面success.jsp中,最后响应并输出返回结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2.0