我想大部分的问题都源于我们对于陌生东西的恐惧,不敢直面惨淡的人生。
----序言
我想大部分人不太里面我标题的含义—“Struts的Action访问不了资源”。是因为我找不到合适的语言去描述这个问题。
1、问题描述
这里贴出我的jsp资源文件的目录结构:
我在做一个“用户登录”功能,就是从“login.jsp”界面跳转到“page/body.jsp”界面。正常访问“localhost:8080/***/page/bady.jsp”,可以看到其他的资源(可以显示其他jsp和png),使用action的跳转的时候,进入“page/body.jsp”界面,关于jsp引用部分全部都是资源不能访问,“page”路径消失了。
我知道这样说,很多人不清楚什么意思,我给出这样的效果图和部分源码:
Login.jsp的提交表单:
Struts.xml的action配置:
Page/body.jsp的引用:
出来的结果:
这也就是我说的失去了”page”路径的意思。
2、问题尝试解决一(方法不可行):
既然界面上面提示了找不到资源文件的路径,那我自己就加上不久OK了,我也是这样做的:
修改page/body.jsp
然后结果:
看上去是解决问题了,实际上呢?
直接从URL上面访问page/bady.jsp
这里看到除了title.jsp可以正常访问,其他的都访问不了。
3、问题尝试解决二(方法可行):
这里的解决方式就是使用struts的namespace,关于namespace的介绍和说明这里不做过多说明,定义package命名空间 该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action。
Login.jsp
Struts.xml
page/body.jsp
与上面“问题描述”里面的图文进行,发现问题了么?
4、最后的结果:
Action跳转访问page/body.jsp与直接url访问page/body.jsp的结果是一样的,也都是正常的。
直接访问url
Action跳转访问: