下面给大家分享一下如何从零开始,搭建一个简单的struts2项目。这个是我的个人经验,请高手指出不足之处。
STEP 1:
ECLIPSE下载:https://www.eclipse.org/downloads/eclipse-packages/
TOMCAT下载:http://tomcat.apache.org/
STRUTS2下载:http://struts.apache.org/download.cgi#struts23163
ECLIPSE有很多种类型,选择JAVA EE,JAVA EE点进去以后也有很多版本,随便选择一个。
TOMCAT自己要确保已经安装成功,而且启动一下,在浏览器输入:http://localhost:8080/ , 如果可以正常显示TOMCAT欢迎页面,那就成功,当然你的端口号不一定是8080,这个看你安装时候的配置,详细的TOMCAT安装,这里不再重复。
STRUTS2的下载,是要下载那个带有-all的那个:
下面给出我的版本:
ECLIPSE:Version: Mars.2 Release (4.5.2);TOMCAT:apache-tomcat-7.0.68;STRUTS2:struts-2.3.32
你们的版本不一定要和我的相同,因为你们看到我这篇文章的时候,可能已经更新了很多新版本了。
好,我假设大家已经安装好一个ECLIPSE,一个TOMCAT,下载好STRUTS2所要的JAR包。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
STEP 2:
新建一个WEB项目,如下图点击菜单:
如果你的eclipse没有Dynamic Web Project这个选项,你看下是不是插件没有装好,通常JAVA EE都是有的,详细请百度。
然后输入项目名字,我这里起的是Struts2HelloWorld,名字随便起,然后你们配置一下Target runtime,如果有,就不用了。
选择自己安装好的TOMCAT版本,我是TOMCAT7:
按下一步,选择TOMCAT安装的根目录,什么是安装的根目录?就是当你看到bin这个文件夹的上一级目录:
之后按确定,然后按next,不要直接按finish,否则你创建出来的项目可能会没有WEB.XML,一直按NEXT,去到最后那步,勾上那个checkbox:
最后按finish,你应该看到如下项目:
最后在WebContent下面的WEB-INF下的lib中加入如下9个jar包,这9个jar包在你下载的struts2.zip里面的lib文件下应该都有,可能版本号不一样,但没有关系。
有的人说直接把下载的所有struts2的jar全部加进去进去,我不建议这样,因为有些jar包还依赖其它jar包,但其实你下载的struts2.zip里面并没有它所依赖的其它jar包。
如果你已经做到这步,那么成功了一半了。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
STEP 3 :
配置WEB.XML,其实除了圈红的那些代码,其它都是ECLIPSE生成的,如果想知道它们的意思和作用,可以再去百度一下,我们主要添加的就是圈红的那组代码:
<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>之后就要写一个action,action其实就是一个java类:
先在src文件夹下new一个package,我的命名是:com.kevin.action...然后按finish...
然后再在这个package下建一个class,这个class就是action:
输入类名,输入名字以后,先不急着按finish,按一下add:
在输入框中打“action”,然后选择第一个:
最后按finish,然后在生成的action中,加一个String的变量,记得给出get,set方法,然后在excute方法中,给它一句话,以后用来传去前台,再system.output一句话,当我们输入网址以后,方便在cosole那里看一下,是否进入到action的excute方法,方便定位,最后return SUCCESS:
然后我们在WEB-INF文件夹下建一个JSP文件,注意编码方式为UTF-8,然后加个${information},获取后台的变量值:
<%@ 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>欢迎来到KEVIN的世界</title> </head> <body> <h2>${information}</h2> </body> </html>最后在src文件夹下,建一个struts2.xml,然后添加如下代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="HelloWorld" extends="struts-default"> <action name="HelloWorldAction" class="com.kevin.action.HelloWorldAction" method="execute"> <result name="success">/WEB-INF/HelloWorld.jsp</result> </action> </package> </struts>这里要注意了,action里面的name属性,你可以随便写,但是后面的那个class,一定要对应上:包名+action类名,然后那个method,要对应到刚才action里面的那个excute,不能乱写,然后relust那里就是返回的页面,如果你的JSP是放在/WEB-INF下面,那前面就要加上/WEB-INF,否则404...到这里,我们基本搭建完了,一个action,一个web.xml,一个jsp,一个struts2...一共4样东西...
----------------------------------------------------------------------------------------------------------------------------------------------------
STEP 4 :
最后部署在tomcat上:
部署完以后,直接用debug运行起来:
这里要注意了,看下concole,有没有报错,如果报错,就检查前面的步骤,下面是其中一种报错,缺jar包:
报错的原因有很多,一个个排查,直到完全跑起来,并不报任何错:
最后在浏览器中输入网址,试一下,按照我的配置,我的网址应该是:http://localhost:8080/Struts2HelloWorld/HelloWorldAction,其中Struts2HelloWorld是我们的项目名字,HelloWorldAction是我们的action名字,网址打到这里,就已经OK了,因为我们配置了struts.xml,它会找到HelloWorldAction这action,然后进到对应的类,对应的excute方法,执行java代码,然后return到我们指定的jsp页面:
最后,看下console,确实输出了方法excute里面的那句话,货真价实地进入了action类,然后转跳到JSP页面:
如果有错,请各位大神指出...小弟在此抛砖引玉....