通过最近的学习和对网上资料的参考,Gd发现SSH是Java框架学习中很重要的一部分,学过ORM之后,对Hibernate有了浅层的了解,但是如果要完成一个完整的项目光靠Hibernate是不够的,于是Gd自己琢磨了一下Struts2,现在就把Struts2的入门案例分享给大家,也希望有前辈能够帮忙指出其中的不足。
首先给大家推荐一个慕课网的Struts2入门的视频:点击打开链接,里面对配置方面讲的很简洁,但是从Struts2的下载安装到最后的运行示例都十分全面,细心跟着做,出现错误就认真看错误说明,配置起来还是很简单的。
下面Gd来说说自己的配置过程:
首先就是Struts2的下载和安装:
我是跟着传智播客高教产品研发部出版的《SSH框架整合实战教程》这本书来做的,所以就直接选择了和书上版本相同的sturts-2.3.24-all版本的Struts2来学习(如需下载此版本可以在浏览器的地址栏中直接输入archive.apache.org/dist/struts/2.3.24/struts-2.3.24-all.zip之后回车,浏览器便会弹出下载链接),其他版本可以去Apache官网下载:点击打开链接,官网界面如下图:
Struts2是绿色版免安装的,所以下载完直接解压就可以了,详细下载安装步骤可以参考网上的教程,很全面和详细,Gd在这里就不多嘴了。
要测试运行Web程序,还要下载配置Tomcat,网上的教程也有很多,很全面,很详细,看一看就明白了。
下面就进入正式配置阶段了:
首先强调一下eclipse的版本问题,配置Struts2的eclipse需要支持Web程序,有些版本的eclipse可能需要另外添加插件才可以,Gd的版本是Eclipse Java EE IDE for Web Developers,可以支持Struts2的配置。
1.
在eclipse中新建一个Web项目,打开eclipse,依次单击File-->New-->Dynamic Web Project,新建一个Web项目。
之后直接点下一步,到了下图所示的这一步要注意:
将Generate web.xml deployment description那一行打上勾可以自动生成web.xml配置文件,省去了手打代码的麻烦。
2.
添加Struts2的JAR包:
全部的JAR包在struts-2.3.24-all\struts-2.3.24\lib目录下,这里我们只需要添加此项目所需要的JAR包就可以。
JAR包要添加到项目的WebContent(我的文件夹名跟着视频改成了WebRoot)/WEB-INF/lib目录下:
如果JAB包没有被开发工具自动添加到classpath中,我们还需要选中所有的JAR,点击鼠标右键,进行Build Path-->Add to Build Path 操作。
3.
在WEB-INF目录下新建一个名称为web.xml的文件,配置Struts2的核心过滤器。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>HelloStruts</display-name> <!-- 配置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> </web-app>
4.
定义处理用户请求的action类:
package com.Gdstruts.action; import com.opensymphony.xwork2.ActionSupport; //继承ActionSupport类并重写execute()方法 public class HelloStrutsAction extends ActionSupport { @Override public String execute() throws Exception { System.out.println("执行Action"); return SUCCESS; } }
此类要继承ActionSupport类并重写其execute()方法,execute()方法的返回值是SUCCESS,此常量字段是从父类中继承的,用于表示执行成功并返回结果页面。
5.
编写Struts2的配置文件struts2.xml:
注意,struts2.xml文件一定要放在src目录下!!!
<?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> <package name="default" namespace="/" extends="struts-default"> <!-- 定义了请求路径,以及与其对应的Action类的映射关系 --> <action name="hellostruts" class="com.Gdstruts.action.HelloStrutsAction"> <!-- 定义了处理结果和视图资源之间的映射关系 --> <result>/result.jsp</result> </action> </package> </struts>
6.
创建视图文件result.jsp:
在WebContent目录下创建一个result.jsp页面,作为Action对象处理成功后的返回页面。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>你好Struts2</title> </head> <body> This is result.jsp </body> </html>
7.最后就要进行验收了,右击项目名,Debug As-->Debug On Server,如果配置好了Tomcat,应该出现如下界面:
点选Tomcat v7.0 Server at localhost之后点击Finish就可以看到如下界面:
哈哈哈,是不是以为配置失败了,因为从来没有过Web基础,Gd当时也是一头雾水,后来还是在视频找到了答案,要具体到action文件上才可以出现运行结果,所以要在地址栏后面加上action文件的名字,那我的就是hellostruts.action了。
在浏览器上的运行结果:
到这里,Struts2的配置就大功告成了,Gd也是又进步了一点点了,加油吧!