最近略闲,前段时间倒腾了好几个月的flex,好容易项目做完了,结果该死的客户不满意,头儿至今还困在上海整理需求,泪奔。。。回来又是大改。。。
很久没折腾java了,突然想看看struts2,因为公司的平台依旧用的是struts1,所以对2 的了解比较少,所以想了想,先搭个环境吧,网上一搜,类似文章一大片,按照网友们的方法,不到几分钟,就把该建的、该导的弄好了,兴奋地开启tomcat,我擦,居然报错,一大片一大片的有木有,刚开始以为配置文件不对,各种检查各种改,又对照别人的教程逐行看有没有,可是还是不行。无奈之下,继续查资料,时间逐步流逝,正当万念俱灰,准备下班时,终于看到一哥们儿提到可能是包没导够,魂淡呀,明明说只需要导入commons-logging.jar、freemarker.jar、ognl.jar、struts2-core.jar、xwork-.jar(版本号均略去)。其实还应该导入javassist.ga.jar、commons-io.jar、commons-lang.jar、commons-fileupload.jar的,将以上包全部导入后,一切OK,顺利运行。
搭建过程虽然简单,但还在发出来,整理一下,以备日后需要:
1、新建web project,随便命名,例如Struts2Demo,
2、导入需要的struts2需要的包。这里先建立一个user Librarie,方便统一管理,选择菜单Window->Preferences->Java->BuildPath->User Libraries
现在将Struts2的库导入到工程中,右击工程名称弹出快捷菜单,选择BuildPath->Add Libraries
2、好了,包导好了,就该写配置文件以及新建action了,我这里直接粘代码,就不说原理了。。
在web.xml中加入过滤器,web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
在src下新建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>
<package name="default" extends="struts-default">
<action name="test" class="com.**.action.TestAction">
<result name="test">/index.jsp</result>
</action>
</package>
</struts>
新建action类,例如com.**.action.TestAction.java
package com.**.action;
import com.opensymphony.xwork2.ActionSupport;
public class TestAction extends ActionSupport {
@Override
public String execute() throws Exception {
return "test";
}
}
3、整个工程结构如下:
4、OK,开启tomcat,访问http://localhost:8080/Struts2Demo/test.action,应该可以看到吧。。