struts2.5版使用通配符遇到的问题总结

struts2.5版使用通配符遇到的问题总结

最新接触到struts,闲来无事,做了个小demo,简单配置如下:


index.jsp首页

在首页写好跳转的url

struts2.5版使用通配符遇到的问题总结

struts.xml配置文件

在xml中配好相关配置

struts2.5版使用通配符遇到的问题总结
struts2.5版使用通配符遇到的问题总结

在action类中写好相关方法,启动服务,并在运行好的index.jsp页面点击相关链接。在后台看到如下输出。

struts2.5版使用通配符遇到的问题总结
struts2.5版使用通配符遇到的问题总结

这是一个简单的struts小demo。当然这样子要是完成了也不会写下这篇博客进行记录了。

在struts.xml中我们发现有很多重复的配置。使用通配符配置可以让自己的项目看起来更加精简。而且完全等价于以下配置。

struts2.5版使用通配符遇到的问题总结

使用通配符配置,只需要修改struts.xml中的配置。其他地方并不需要进行修改。
配置如下:

struts2.5版使用通配符遇到的问题总结

没错,就是这么简单的一段代码就代替了刚刚很长的那段代码。

name=”userAction-*”,中的”*”是一个通配符。相对应的“{1}”,指的是第一个“*”,如果name=”*-*”,那{2}指的就是后面的第二个”*”。

struts2.5版使用通配符遇到的问题总结

userAction-“*”,“*”表示的就是“test,save,delete,update,query”,“.do”在这里当做一个后缀名就好了。影响不大。

struts2.5版使用通配符遇到的问题总结

这里返回值对应的是在UserAction类中的对应方法的返回值。

struts2.5版使用通配符遇到的问题总结

上下文对应的时候,即可成功跳转到相应的页面。

本来通配符的配置到这里就完成(struts2.3版本),接下来运行应该是出现成功的界面,但是我在做这个小demo的时候,不小心导入了struts2.5版本,导致出现如下情况:

struts2.5版使用通配符遇到的问题总结

我相信很多小白会遇到同样的问题。

插播一则信息,

struts2.5版使用通配符遇到的问题总结

本来遇到这样404问题,应该是地址不对。但是要命的是我在做这个小demo的时候,不知道是电脑中邪了还是怎么了,在这五个链接中,struts2.5版使用通配符遇到的问题总结

我点击save和delete,是可以成功跳转进入成功的页面。

也间接的让我一直抓狂,以为是自己哪里的配置出现了问题。

自己也在网上找了很久的答案,其中包括:

struts2.5版使用通配符遇到的问题总结

在添加这段代码之后,依旧不能成功跳转。心如死灰的我莫名其妙的打开了lib文件夹,鬼使神差的看到了:

struts2.5版使用通配符遇到的问题总结

啊!这个struts版本和我之前用的2.3不一样啊。然后,熟悉的操作开始了——百度。

最后找到了问题的所在!

原来在struts2.5 中为了增加安全性,在 struts.xml 添加了这么个属性:regex:.*,添加完成之后就可以正常运行通配符的配置了。

像这样:

struts2.5版使用通配符遇到的问题总结

我也不知道这段话是什么意思。反正加上之后,就正常了。

当然,还有一个方法,就是:

struts2.5版使用通配符遇到的问题总结

这种方法也是可以的。最后,世界和平了!