• 下载的struts2xx-all.zip包对搭建项目的作用

一般情况下,我们下载一个Struts2的full包时,并不知道新建过程中需要哪些包,那么这时我们可以从下载的包中解压出的目录\apps\struts2-blank.war文件找解决方案。

我从http://struts.apache.org/下载的是struts-2.3.28-all.zip包,解压到本地后目录结构如下:

Struts2(三):新建Struts2工程_java-struts2

apps目录下包含文件及作用:

Struts2(三):新建Struts2工程_html_02

struts2-blank.war 它可以告诉你如何搭建一个最最简单的Struts2的项目;它还会告诉你,Struts2至少需要依赖哪些jar包(请以后不要再为jar包错误而苦恼);同时,也给你做出了一些范例,web.xml怎么写,struts.xml又怎么写。

struts2-mailreader.war 给出了注册流程、以及发邮件功能

struts2-portlet.war 则给出了在Portal环境下的Struts2的应用。

struts2-rest-showcase.war 讲述了Restful的用法示例。

struts2-showcase.war 这个项目,你则可以看到Struts2的特性的大杂烩,这对于你看reference是相当有帮助的。比如说,你在看文档时看到了"文件上传"的章节,那么你就可以参考项目中的upload子目录。

怎么使用:

1.可以把这些文件拷贝到tomcat的webapps下,之后访问:http://localhost:8080/struts2-blank,之后去webapps下可以查看具体的发布文件夹;

2.也可以当做压缩包来解压出具体的发布文件夹。

  • 以下将会介绍怎么新建一个struts2的工程:

1、使用eclipse创建一个Dynamic web project.

Struts2(三):新建Struts2工程_java-struts2_03

 

2、添加struts2需要的jar包。

将struts2-blank.war解压后\struts2-blank\WEB-INF\lib下jar包,拷贝到工程\WebContent\WEB-INF\lib文件夹下。

Struts2(三):新建Struts2工程_struts_04

 

3、修改web.xml

将struts2-blank.war解压后\WEB-INF\web.xml拷贝到新建工程MyStruts001的\WebContent\WEB-INF\web.xml中,并修改为:



1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
5
6 <display-name>Struts Blank</display-name>
7
8 <filter>
9 <filter-name>struts2</filter-name>
10 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
11 </filter>
12
13 <filter-mapping>
14 <filter-name>struts2</filter-name>
15 <url-pattern>/*</url-pattern>
16 </filter-mapping>
17
18 <welcome-file-list>
19 <welcome-file>index.html</welcome-file>
20 </welcome-file-list>
21
22 <!-- Restricts access to pure JSP files - access available only via Struts action -->
23 <!--<security-constraint>
24 <display-name>No direct JSP access</display-name>
25 <web-resource-collection>
26 <web-resource-name>No-JSP</web-resource-name>
27 <url-pattern>*.jsp</url-pattern>
28 </web-resource-collection>
29 <auth-constraint>
30 <role-name>no-users</role-name>
31 </auth-constraint>
32 </security-constraint>
33
34 <security-role>
35 <description>Don't assign users to this role</description>
36 <role-name>no-users</role-name>
37 </security-role>
38 -->
39 </web-app>


3、新建struts.xml相关文件到Src下。

把struts-blank\WEB-INF\src\java\下的struts.xml,log4j2.xml,velocity.properties拷贝到MyStruts001的\src下。

Struts2(三):新建Struts2工程_html_05

4、新建一个struts2的Action类。

Struts2(三):新建Struts2工程_html_06

5、修改struts.xml文件如下:



1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
4 "http://struts.apache.org/dtds/struts-2.3.dtd">
5
6 <struts>
7 <constant name="struts.action.extension" value="action" />
8 <constant name="struts.enable.DynamicMethodInvocation" value="false" />
9 <constant name="struts.devMode" value="false" />
10
11 <package name="default" namespace="/MyStruts001" extends="struts-default">
12 <default-action-ref name="index" />
13 <global-results>
14 <result name="error">/WEB-INF/pages/error.jsp</result>
15 </global-results>
16 <global-exception-mappings>
17 <exception-mapping exception="java.lang.Exception"
18 result="error" />
19 </global-exception-mappings>
20 <action name="project-info">
21 <result>/WEB-INF/pages/input.jsp</result>
22 </action>
23 <action name="product-save" class="com.dx.struts001.actions.ProjectAction">
24 <result name="detail">/WEB-INF/pages/result.jsp</result>
25 </action>
26 </package>
27 </struts>


6、新建相关view页面。

default.html



1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Insert title here</title>
6 </head>
7 <body>
8 <a href="project-info.action"> hellword.action </a>
9 </body>
10 </html>


WEB-INF/pages/input.jsp



1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title>Insert title here</title>
8 </head>
9 <body>
10 <form action="product-save.action" method="POST">
11 <label>name:</label>
12 <input type="text" name="name" />
13 <br />
14 <input type="submit" name="submit" />
15 </form>
16 </body>
17 </html>


WEB-INF/pages/result.jsp



1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title>Insert title here</title>
8 </head>
9 <body>
10
11 </body>
12 </html>


7、运行项目,之后访问地址:http://localhost:8080/MyStruts001/

界面为:

Struts2(三):新建Struts2工程_java-struts2_07

点击"helloword.action",界面为:

Struts2(三):新建Struts2工程_html_08

输入信息,点击“提交”按钮.

Struts2(三):新建Struts2工程_struts_09

到此结束。

 



基础才是编程人员应该深入研究的问题,比如:

1)List/Set/Map内部组成原理|区别

2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。

3)JVM运行组成与原理及调优

4)Java类加载器运行原理

5)Java中GC过程原理|使用的回收算法原理

6)Redis中hash一致性实现及与hash其他区别

7)Java多线程、线程池开发、管理Lock与Synchroined区别

8)Spring IOC/AOP 原理;加载过程的。。。

+加关注】。