说实在的,随着Java学习的不断深入,特别是Java web框架部分,调bug让人很心累,但是每征服一个bug,内心的成就感也是难以言说的。第一个struts2应用的配置,我昨天折腾了快2个小时,最后还是放弃了,今天在摸索之下,终于打通了第一个struts2的任督二脉,下来就把我个人的配置过程写下来,希望后面学习的java友少走的弯路。
一、创建web工程(eclipse k kepler版本):
直接上图:
二、导入struts2关键包
1、需要导入的关键包,不导入这些包会导致报错,我就知bug在这里了:
我没有导入log4j-api-2.7.jar然后tomcat就无法启动了,这里还要注意的是,在2.5之前的版本中导包时还需要导入xwork这个包,在2.5中该包已经包含在struts的核心包中了,我们也就省去了这一步,不相信的java友可以打开核心包看下包结构:
2、导包过程:
如上图,添加9个必须包;下面的操作是添加一个struts2的个人包库,方便后面创建struts2,总不能每一次都导入一次:
导包到此结束,后面开始最麻烦的web.xml的配置
三、action编码:
必须继承com.opensymphony.xwork2.ActionSupport,并重写execute()方法:
package com.sysker.main;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport{
/**
* action test
*/
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("执行Action");
return SUCCESS;
}
}
四、配置文件
1、web.xml的配置:
注意:其中
这就是java的包管理,其他的配置也可以参考这个方式。
完整配置文件
1 xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 6 id="WebApp_ID" version="3.0"> 7 <display-name>struts2001display-name> 8 9 <filter> 10 <filter-name>struts2001filter-name> 11 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilterfilter-class>
12 filter> 13 14 <filter-mapping> 15 <filter-name>struts2001filter-name> 16 <url-pattern>/*url-pattern> 17 filter-mapping> 18 19 <welcome-file-list> 20 <welcome-file>index.jspwelcome-file> 21 <welcome-file>default.jspwelcome-file> 22 welcome-file-list> 23 web-app>
2、struts.xml配置文件:
首先路径和web.xml是不一样的,struts.xml是在src下面的:
配置如下:
1 xml version="1.0" encoding="UTF-8"?> 2 DOCTYPE struts PUBLIC 3 4 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 5 "http://struts.apache.org/dtds/struts-2.3.dtd"> 6 7 <struts> 8 9 <package name="default" namespace="/" extends="struts-default"> 10 <action name="helloworld" class="com.sysker.main.HelloWorldAction"> 11 <result>/result.jspresult> 12 action> 13 package> 14 15 16 struts>
到这里,第一个struts2就可以顺利执行了,欢迎交流!