2011-11-28 79 views
0

实际上,当我运行一个特定的JSP页面时,它完全运行(使用外部样式表),但是当servlet通过RequestDispatcher返回控件时,页面不能正确显示意味着它不接受css文件路径。 在我的程序中,样式表存在于css目录中,页面出现在另一个名为JSP的目录中。如何在JSP编程中提供完整路径名称?

,其中包括在该计划是 -

<link rel="stylesheet" href="../css/stylesheet.css" type="text/css"/> 
+0

并在浏览器到底有哪些路径可达看到了CSS? – Thilo

+0

@thilo:抱歉,我不明白你的问题。浏览器显示的地址是该servlet的路径 – sujoy

+1

浏览器尝试从哪个URL加载样式表?路径是否正确?标记中的相对路径必须与包含它的页面的URL(如浏览器所示)匹配。 – Thilo

回答

0

可能是你必须使用<base/> HTML标记来解决相对路径的CSS代码。

<head> 
<base href="/testfolder/" /> 
<link rel="stylesheet" type="text/css" href="../css/stylesheet.css"/> 
+0

是父目录的“testfolder”名称? – sujoy

+0

@sujoy - 没有它是web-app(context)根目录下的子目录。 – adatapost

+0

它不能正常工作 – sujoy

1

你能访问浏览器中的css url吗?您可以使用在JSP上下文路径的完整路径。(你可以在JSP中得到使用request.getContextPath()上下文路径)

0
<link rel="stylesheet" href="<%=cssFilePath%>" type="text/css" /> 

在你的JSP声明一个String cssFilePath =“YOUR_CSS_FILE_PATH”试试这个。

2

尝试使用URL编码您的CSS文件位置。如果您使用标签库,这可能看起来像:

<link href="<c:url value="/path/to/stylesheet.css"/>" rel="stylesheet" 
    type="text/css" /> 

在其中定义路径从您的应用程序的Web根目录样式表。

如果你要使用多个样式表,你做这样的事情:

<c:set var="stylePath" value="/path/to/cssFolder" /> 
... 
<link href="<c:url value="${stylePath}/stylesheet.css"/>" rel="stylesheet" 
    type="text/css" /> 
相关问题