Struts2学习(一):创建一个Struts2应用

Struts1.*都还没有怎么玩,Struts2的时代就已经来临了,在网上查了很多资料,结果显示Struts2Struts1相关性不高,即使没有用过Struts1,也可以直接使用Struts2框架,实际上Struts2可以说是WebWork的翻版。于是俺就在网上down了一个Struts2中文文档,是一个网友自己做的chm文件,他的blog地址是http://www.blogjava.net/max/^_^

下面简单说下我的实践经历吧,我用的开发工具是MyEclipse_ 5.5.1 。首先当然是去Apache下一个Struts的发布包咯,然后创建一个Web工程,我的工程名字叫Struts,这个过程在Max的教程上都有详细的描述,接下来的三个步骤就比较重要了:

1. 配置web.xml文件

我的web.xml文件内如如下,

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "web-app_2_3.dtd" >

<web-app>

<filter>

       <filter-name>Struts2</filter-name>

       <filter-class>

org.apache.struts2.dispatcher.FilterDispatcher

</filter-class>

    </filter>

    <filter-mapping>

       <filter-name>Struts2</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

    </welcome-file-list>

</web-app>

红色突出显示的部分是使用Struts2的关键,它表明所有的请求都将交给FilterDispatcher这个控制器来进行“分流”,这个原理和Struts1中的一样,只不过Struts1中使用的servlet映射而不是filter映射,至于servletfilter是如何对url进行映射的请参考这篇文章http://blog.csdn.net/delez/archive/2007/05/05/1596936.aspx

2Struts.xml

这个文件的作用就和Struts1中的Struts-config.xml文件的作用一样了,我们对所请求的url进行映射时都需要这个文件的帮助,它里面详细指定了一个路径经过映射后进入哪个action里面去。我的Struts.xml文件的内容如下:

<!DOCTYPE struts PUBLIC   

     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   

     "http://struts.apache.org/dtds/struts-2.0.dtd">  

<struts>

</struts>  

因为我目前还没有配置任何action,所以我的struts.xml文件的内容是空的。

3.把Struts发布包中lib目录下的jar文件全部都拷贝到web工程的WEB-INF/lib目录下面去;

现在我们启动Tomcat,,这个时候如果不出意外的话Tomcat启动会报如下的错误:

unable to load bean: type:com.opensymphony.xwork2.ObjectFactory

class:org.apache.struts2.spring.StrutsSpringObjectFactory - bean - jar:file:/E:/workspace/Struts/WEB-INF/lib/struts2-spring-plugin- 2.0.8 .jar!/struts-plugin.xml:8:132

很莫名奇妙的一个错误,因为我根本没有使用Spring啊!我后来尝试放了一个spring.jarWEB-INF/lib下面去,上面的错误虽然没有了但是又出现了一个新的错误,并且还提示我在web.xml中加上这句:

<listener>

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

总之Struts应用就是加载不了,Tomcat显示如下的错误信息:Context [/Struts] startup failed due to previous errors

后来我根据错误提示在网上进行搜索,发现导致这些错误的原因可能是因为Struts发布包中lib目录下面的jar文件中很多都是插件,并不是构建Struts应用所必须的,于是我试着把所有名字中包含有pluginjar文件从WEB-INF/lib中删掉,然后再次重新启动TomcatOK,一切正常了,原来那些被删除的jar文件才是真正的“元凶“啊!在搭建好Struts2的运行环境之后就可以开始Struts应用的开发了,^_^

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值