配置Struts-2.5.10

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cairo123/article/details/65629216

最近在学习JavaEE开发,今天学了下Struts2, 发现和书上略有不同,麻痹,新手学这个,感觉还真是有点操蛋,搞了TM一上午,终于把书上的第一个Struts2程序跑出来了,骂了隔壁,记录一下,要是以后再碰到,就有个参考了。

Filter的配置

在web.xml中,配置Filter,如果没有web.xml,在项目上单击右键,选择”JavaEE Tools”-“Generate Deployment Descriptor Stub”则会自动生成web.xml。在该文件中的配置如下:

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

我完全按照书上的步骤来,第一个坑就出现了。书上使用的类是

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

但是搞来搞去也搞不成,总是抛出java.lang.ClassNotFoundException,于是我把包打开一看,发现Struts2.5.10已经修改了路径,正确的路径如下:

org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

为防止输入出错,建议打开struts2-core-2.5.10.jar,然后进入到org.apache.struts2.dispatcher.filter包,找到下面的类,然后右键选择“Copy Qualified Name”,这样可确保不会出错。

struts.xml

在Eclipse中生成xml文件,麻痹,不知道是不是我方法有问题,反正我生成的就是一个空白的xml文件,除了一个version声明,从structs目录下打开apps目录,里面有两个war文件,解压出来,依次打开”WEB-INF”-“src”,里面有一个struts.xml,可以从里面复制出DOCTYPE,如下:

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">

这样,Eclipse才会有提示。而且名字文件名字必须叫struts.xml,我在搞的时候写成了struts2.xml,结果TM又搞了好久才发现。

依赖包的问题

书上说要把依赖包加到”WEB-INF”-“lib”目录下,于是我右键选择”Import”,然后按书上导入依赖包,如下:
Struts2依赖包

但是却出现了问题,经过百度,最终发现,原来需要手动把文件Copy到lib目录下,然后再Import才有用。麻蛋,搞个东西这么麻烦,可能是我初学,所以觉得真TM坑爹。

动态Action的问题

动态Action会出现两个很操蛋的问题,一个是
动态Action-问题1
这个问题真TM操蛋,我TM大网上找了好多,全部都是说什么struts.xml文件名写错了,要么就是类名写错了什么,或者是位置一定要在src下,我检查一下,发现情况全部都符合,但还是出问题了,原来是要在struts.xml下加一句代码:

<constant name="struts.enable.DynamicMethodInvocation" value="true" />

第二个问题是
动态Action-问题2

这个问题的解决方案是在package节点下添加一个允许方法列表

<global-allowed-methods>add, update</global-allowed-methods>

这样,动态Action就能正式跑起来了。

吐槽

麻痹,老子忍不住要说赃话,谁TM想出来的这种反人类的配置,简单直操蛋的一逼。搞了一天,身边也没什么人懂,就搞出来这样一个东西,日了狗了。

结束

好像听说现在企业用Struts2的企业已经不多了,新项目都不用这个了。但是书上按这个顺序来,我也就这么学了,不管有没有用,新技术总是从老技术的基础上发展过来的,所以继续学吧。

没有更多推荐了,返回首页