Struts2(三):新建Struts2工程
- 下载的struts2xx-all.zip包对搭建项目的作用
一般情况下,我们下载一个Struts2的full包时,并不知道新建过程中需要哪些包,那么这时我们可以从下载的包中解压出的目录\apps\struts2-blank.war文件找解决方案。
我从http://struts.apache.org/下载的是struts-2.3.28-all.zip包,解压到本地后目录结构如下:
apps目录下包含文件及作用:
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.
2、添加struts2需要的jar包。
将struts2-blank.war解压后\struts2-blank\WEB-INF\lib下jar包,拷贝到工程\WebContent\WEB-INF\lib文件夹下。
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下。
4、新建一个struts2的Action类。
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/
界面为:
点击"helloword.action",界面为:
输入信息,点击“提交”按钮.
到此结束。
基础才是编程人员应该深入研究的问题,比如:
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 原理;加载过程的。。。
【+加关注】。