解决自定义拦截器导致默认的拦截器不起作用的问题

网友投稿 584 2022-09-01

解决自定义-导致默认的-不起作用的问题

解决自定义-导致默认的-不起作用的问题

在​​上篇文章​​中我们留下了这个问题。在这里我们一点一点的解决。

问题一

由于我们写了自己的-,默认的-不起作用了。

解决办法一

把默认-加入到配置文件中

问题二

解决方法一中存在的问题:当有多个-,多个action动作时,需要配置的地方太多。

解决办法二

抽取公共的包,把全局配置放入公共包中

每次我们在Struts.xml编写包时都会将其继承于struts-default,这是struts2核心jar包里面为我们提供的。

想去看的同学可以解压Struts2的核心包, 里面有struts-default.xml,打开就能看到,第128行。

这里的继承和javase里面的继承一样,我们当然也可以继承于自己新建的包,有个前提就是,我们新建的包一定要是抽象的,即未配置任何action动作。

一定要仔细看注释,否则可能看不懂。

简而言之就是:

这样似乎解决了很多-的问题,但是还没解决很多action动作仍然需要配置的问题,到底能不能不配置呢?

问题三

解决方法二还没解决很多action动作仍然需要配置的问题,到底能不能不配置呢?

解决办法三

在my-default包里面设置默认的-栈删除解决方法二action里面配置的自定义-栈

配置后的代码如下:

这样配置 似乎我们完成了我们的目标,无论有多少个自定义-都可以配置到my-default包里面,无论都多少个action只要它继承于my-default就可以。可是你有没有发现,这样连我们的登录页面也被拦截了。

问题真是一个接着一个出现 。累觉不爱啊

问题四

解决方法三把我们的登录界面都被拦截了

解决办法四

excludeMethods配置哪些动作方法不拦截includeMethods配置那些动作方法拦截我们都可以在struts.xml中通过注入的方式进行配置。根据自己的需求为不同的参数注入。

问题五

解决办法五

到此全部结束。。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:后端开发PHP入门必备(php入门开发实战)
下一篇:struts2实现文件的上传
相关文章

 发表评论

暂时没有评论,来抢沙发吧~