在struts中必须用action来实现页面的跳转,才能访问WEB-INF里面的jsp文件。
如何访问WEB-INF目录下的文件:只有通过转发才能访问(forward),而通过redirect是不能访问的
方法一:把文件放在WEB-INF目录下,该项目一般都是整合了struts框架的,从而利用struts框架的转发功能来实现跳转到WEB-INF目录下的页面。struts.xml配置文件中的配置如下,<result name="success">没有添加type="redirect"属性时,默认转发
<package name="qiandl" extends="struts-default">
<action name="TestJbpmAction" class="TestJbpmAction">
<result name="success">/WEB-INF/web/main.jsp</result>
</action>
</package>
这样,就可可访问WEB-INF目录下的文件了
方法二:直接在jsp页面中,使用jsp的转发标签,即 <jsp:forward page="WEB-INF/web/main.jsp"/> 就可以访问了 注意:不能这样写:<jsp:forward page="WEB-INF/web/main.jsp">test</jsp> 这样写,相当于给转发的main.jsp页面传递参数,而这种写法不符合传递参数时的jsp:forward的写法,因此会报错如下:org.apache.jasper.JasperException:
带参数的写法:
<jsp:forward page="WEB-INF/web/main.jsp"> <jsp:param value="" name=""/> </jsp:forward>
另外,如果WEB-INF目录下的文件要访问外面,即webRoot目录下的css、js文件,则在WEB-INF目录下的文件中需要使用绝对路径,才能正确的引用。
摘自百度文库(http://wenku.baidu.com/link?url=UWCq3CJPdeNI86P-BuAdu7EuDivNl75yZc0Z9xgKAGX3vj7nkdbJHRwaKl6OMp_wd0m0zILhXE9kTPCOMlneftUAKqZlQinP6iS4VrucfJm)