附加了contextpath

时间:2010-05-04 09:11:32

标签: java jsp contextpath

我创建了一个超链接,通过点击我将页面重定向到另一个JSP,但是我没有得到正在传递的URL,URL附加了另一个字符串,页面没有被重定向,< / p>

请任何人对此有所了解,帮助我

  <td align='<%=lstrColAlign%>' class="<%=tdclass%> Label2"  
   style="<%=rb.getDataStyleString(rvo,data)%>">
   <a  href="#" onclick="JavaScript:window.open( '<%=columnUrl%>','newwindow','top=0, left=0,   
             scrollbars=yes,status=1,resizable=yes,height= (screen.availHeight - 10),
             width= (screen.availWidth-5)')"> <%=rb.getDataValue(data)%></a>
   </font></td>

我应该去哪里

...Project1-context-root/servlet/Reports.controller.ReportController?ActionFlag=get.............

但不是我得到了

...Project1-context-root/servlet/servlet/Reports.controller.ReportController?ActionFlag=get.....

因此,附加了额外的单词servlet/

2 个答案:

答案 0 :(得分:1)

没有前导斜杠的相对URL是相对于当前上下文的。即如果浏览器地址栏中的当前网址为http://example.com/context/index.jsp且要从当前上下文打开的相对网址为context/page.jsp,则最终网址为http://example.com/context/context/page.jsp

有几种方法可以解决这个问题:

  1. 删除相对网址中的相同内容,使其以page.jsp结尾。
  2. 添加一个前导斜杠,使其相对于域根目录:/context/page.jsp
  3. 改为使其成为绝对网址:http://example.com/context/page.jsp
  4. 将相对网址的上下文退后一步:../context/page.jsp
  5. 它的工作方式与磁盘文件系统路径完全相同。

答案 1 :(得分:0)

好像你的&lt;%= columnUrl&gt;变量正在变得

servlet/Reports.controller.ReportController?ActionFlag=get.....

从你的调用JSP中,它会自动附加上下文路径..

首先调试你的columnUrl变量并将该变量值更改为relative,方法是将其更新为../context/page.jsp应该适合你。