首先这是一个练习,目的是从页面A跳转至页面B,使用的标签是<html:link page="*******">
问题就在于当我给定了JSP页面B所在的位置后,页面还是无法正常跳转过去,请问这是为什么呀?
以下是页面A的源码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/struts-html.tld" prefix="html" %>
<HTML>
<HEAD>
<TITL>
首页
</TITL>
</HEAD>
<BODY>
<html:link page = "/com/WEB-INF/Register.jsp">
Sin
</html:link>
</BODY>
</HTML>以下是报的错误信息:type Status reportmessage /StrutsTest/com/WEB-INF/Register.jspdescription The requested resource (/StrutsTest/com/WEB-INF/Register.jsp) is not available.备注:Register.jsp这个页面在设为首页的情况下是能够正常显示跳转的

解决方案 »

  1.   


    <html:link page = "/com/WEB-INF/Register.jsp"> 不知道这个WEB-INF跟访web.xml的那个是一个不是?如果是一个WEB-INF下的东西不对外发布的,只能应用本身去访问。如果不是,请确认路径是否正确
      

  2.   

    <html:link page="/Register.jsp">link</html:link>
      

  3.   

    首先我感谢各位热心的朋友,我还想请教一下1楼的回复者。你说得没错,我将页面B放在了“web.xml”的相同路径下面了。也就是不对外发布的“WEB-INF"文件夹下面,但是,后来我听你的,在WEB-INF外重新建立一个文件夹后,然后将JSP页面放入其中后,结果还是报错需要跳转到的路径没问题,但是为什么页面还是报相同的错呢?
      

  4.   

    再次感谢1楼回复者,问题解决了!谢谢!
    问题在于,我将起始页放在了WEB-INF文件夹下,就像1楼回复者说的那样WEB-INF文件夹下的内容,应用是不会发布的,所以,应该将起始页放到WEB-INF文件夹以外,这样跳转就正常了。可是,我还是没能知道原理我想知道虽然WEB-INF下的内容虽然是不对外发布,但是当设为起始页的时候为什么能访问,而当有跳转的时候为什么就无法访问了呢?
      

  5.   

    web-inf是不对外发布,设为起始页之所以可以,是因为在浏览器请求起始页的时候,tomcat按照web.xml的路径信息访问web-inf里的jsp页面,但是当你是用跳转的时候,是根据struts.xml的配置去寻找路径,你仔细看下配置的路径,不包括web-inf的文件,也就是此时web-inf文件就只是一个服务器上的普通文件夹而已。