我有一个jsp文件,它将参数传递给另一个jsp文件。此参数的类型为字符串,并采用Web服务器路径中的文件夹名称的值(即http://myserver.com/Page/Folder_Name)。
在第二个jsp文件中,我分别使用脚本和链接标记附加了很多js和css文件。我需要使他们的路径相对于传递的参数。我的思维过程是使用jsp标签和javascript构造动态源(src)路径。
<head>
<link rel="stylesheet" type="text/css" href="Folder_Name/css/style.css" />
<script type="text/javascript" src="Folder_Name/js/script.js"></script>
</head>
除了Folder_Name将是动态的,以某种方式利用JSP。至少,那是我的心态 问题是我怎么能做到这一点?我对其他建议持开放态度,将所述参数的初始条件传递给第二个jsp页面。
谢谢。
答案 0 :(得分:2)
为什么用JavaScript?如果它已经是JSP页面,那么您已经在进行服务器端处理,因此您似乎想要使用Java。例如,一旦你在变量中有文件夹名称(比如folderName
),就这样做输出链接:
<head>
<link rel="stylesheet" type="text/css" href="<%=folderName%>/css/style.css" />
<script type="text/javascript" src="<%=folderName%>/js/script.js"></script>
</head>
(注意<%=folderName%>
位,它在服务器上运行并输出服务器端folderName
变量的值。)或者,如果您使用的是支持{{3}的容器},改为使用${folderName}
:
<head>
<link rel="stylesheet" type="text/css" href="${folderName}/css/style.css" />
<script type="text/javascript" src="${folderName}/js/script.js"></script>
</head>
如果你愿意,你肯定可以使用JavaScript来完成任务,但我不确定它是否有意义。当然,您可以在服务器上使用Rhino(JVM的JavaScript)。如果您正在谈论客户端,那么您基本上必须将文件夹名称回显到客户端JavaScript可以找到它的位置(因此,将其输出到动态生成的全局变量 - <script>var folderName = '<%=folderName%>';</script>
示例 - 或隐藏的input
或其他),然后让您的JavaScript通过document.createElement
添加必要的脚本标记,设置其src
,并将它们附加到head
}或body
(无论在哪里),但如果您已经在进行服务器端处理,那么这似乎是一种非常圆润的方式。