Struts2框架下载
Struts官网的title虽然不是按照如题目一般翻译,但是我希望能够用这样的方式吸引自己及读者去进入Struts2的世界。
Struts2下载页面中,可以看到apache还在支持Struts1(作为一个优秀的人或者优秀的IT工作者,就应该学习国外同行责任感和态度,把自己负责的项目做到极致,时刻考虑未来的扩展性、可维护性及可阅读性,只有这样才能使程序更能够生存的茁壮。)
忽略掉Struts1直接下载我们的Struts2的内容。
下表注明了各个压缩包的作用。
压缩包名称
作用
struts-2.3.20-docs.zip
文档,包含了Struts2API
struts-2.3.20-lib.zip
构建Struts2工程所需要的包
struts-2.3.20-src.zip
Struts2的所有源代码
struts2-blank-2.3.20.war
空白工程
struts-2.3.20-all.zip
大集成,包括上面所有的内容
Struts2框架解压内容
下载以后解压得到我们的全部内容:
这就是Struts2的世界。许多程序员都喜欢直接找到搭建教程照猫画虎一番,也有喜欢看着各位程序员老师们的教学视频。本人来讲,比较愚钝,喜欢刨根问底儿,也许与本人性格有关,喜欢偏执,喜欢较真,也一直认为只有学到手的才是知识。看完其他人的教程,如果不说细节为啥如此,整个人就不爽了。马士兵老师在教学视频中讲过:一个好的程序员就应该不停的翻阅这些源码资料。从中受到启发。就此认为只有学会方法之道,万物皆可触类旁通。
整个包中包括几部分内容:
apps:struts2-blank.war、struts2-mailreader.war、struts2-portlet.war、struts2-rest-showcase.war、struts2-showcase.war。为官方打包好的自带项目,我们可以部署到web服务器,参看框架开发者们的代码示例,值得一看。
docs:Struts2帮助文档以及流程图,涉及到Struts2问题多看看帮助文档总是没错,里面的流程图对我们理解Struts2框架工作流程至关重要,目标成为框架师就应该去做至极致,只有细处才能见真章。
lib:Struts2的核心部分 jar包。
src:当然是源码啦。之前的jar包都是封装好滴,只有在IDE设置好jar包关联的源码路径,我们才能从源码底层一窥究竟。
搭建Struts2 Demo 环境准备
WEB服务器 | apache-tomcat-7.0.56 |
Struts版本 | struts-2.3.20 |
JDK版本 | JDK1.7 |
J2EE版本 | Java EE 6.0 |
准备好环境后。使用MyEclipse10新建 javaweb工程:
展开刚才新建的工程:
引入Struts2 FrameWork 配置及资源
之前我们在已经下载完成的Struts2资源包中的apps文件夹下,会存在一个war包:
struts2-blank-2.3.20.war | 空白工程 |
我们本可以直接把其部署至web服务器下。但是我们因为要自己配置Struts2工程,所以我们解压war包:
①添加jar包至工程
从struts2-blank\WEB-INF\lib路径下找到以下jar包
copy至新建的工程 \WEB-INF\lib 下
②添加Struts2配置文件
struts2-blank\WEB-INF\classes 目录下找到struts.xml文件 copy至新建工程的src文件夹下。
③配置新建工程web.xml Struts.xml文件
Struts.xml
<?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>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<!-- <package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>
<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>
</result>
</action>
</package>
<include file="example.xml"/>
Add packages here -->
<package name="default" namespace="/" extends="struts-default">
<action name="hello">
<result>
/Hello.jsp
</result>
</action>
</package>
</struts>
中间注释掉的代码可以以作参考。
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">
<display-name></display-name>
<welcome-file-list>
<welcome-file>Hello.jsp</welcome-file>
</welcome-file-list>
<span style="color:#FF0000;"><strong> <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></strong></span>
</web-app>
加粗字体为从Struts2空白工程中拷至新建项目的web.xml代码段。
在WebRoot下新建一个jsp页面,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>HelloStruts2.</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
HelloStruts2. <br>
</body>
</html>
那现在呢,一个Struts2 很简单的Demo 已经完成。但是目前还少Struts2真正核心的内容比如action等。
部署运行程序
在浏览器中输入地址,终于看到了第一个小demo
你好。strut2