关于Struts框架下由浏览器访问WEB-INF目录下的jsp文件
技术小白、初来乍到、请多指教 [捂脸~~]
WEB-INF目录下的jsp文件,在浏览器中是不能直接访问的,浏览器没有访问的权限。
在Struts框架下必须用action来实现页面的跳转,才能访问WEB-INF里面的jsp文件。
——————————————如何解决—————————————
在struts配置文件中添加如下代码:
<action name="*">
<result>/WEB-INF/content/{1}.jsp</result>
</action>
代码表示页面的所有action将跳转到/WEB-INF/conent/下对应action的jsp页面。
{1}:这里使用的通配符,{1}是匹配的第一个*
举个栗子:
<action name="*_*_*" class="com.{1}" method="{2}">
<result>/WEB-INF/content/{3}.jsp</result>
</action>
一个请求,http://zhidao.baidu.com/question/Baidu_add_success.action
可通过此action处理:class=“com.Baidu” method=“add”,
其中<result>/WEB-INF/content/successjsp</result>
另外struts2的WEB-INF路径下的jsp文件是受保护的,禁止客户端的浏览器直接对jsp文件进行访问。
所以在struts.xml中的配置action的返回结果result时,应该配置全路径。
<action name="regist" class="org.action.RegistAction">
<result name="success">/WEB-INF/content/success.jsp</result>
</action>
那么我们在浏览器中键入http://localhost:8888/ValidateTest/index、http://localhost:8888/ValidateTest/success实质上是键入的index、success两个action,并且在struts.xml配置文件下利用通配符访问到了WEB-INF目录下的index.jsp、success.jsp页面。