配置Struts-2.5.10

最近在学习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的企业已经不多了,新项目都不用这个了。但是书上按这个顺序来,我也就这么学了,不管有没有用,新技术总是从老技术的基础上发展过来的,所以继续学吧。

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值