如果我在JSP文件中包含另一个JSP文件,则JS文件不会触发

时间:2012-10-19 02:37:11

标签: javascript jsp

我有一个主jsp文件,在该JSP文件中,我调用了一个JS文件,并包含另一个名为login.jsp的JSP文件。

在为login.jsp添加include之前,可以调用我的JS文件的函数。添加login.jsp后,它不再有效。

我测试了在login.jsp中调用JS文件,它正是这样工作的。问题是,我不能这样做,因为许多JSP页面都包含login.jsp,我不需要调用每个使用login.jsp的JS文件。

以下是代码:

这是我的主要jsp文件:

<html>
<head>
.. some scriplets with no error ...
<SCRIPT type="text/javascript" src="<%=request.getContextPath()%>/js/pcLotsFrontProcessMaterialRegistration.js" ></SCRIPT>
.. other js files that is included this way ..
</head>
<body>
<div id="login_holder" align="center">
<jsp:include flush="true" page="../admin/login.jsp"></jsp:include>
</div>
... some codes ....

</body></html>

我的login.jsp是这样的:

<div id="login-box">
<table id="login-box-table">
... table contents ...
</table>
</div>
<script>
... functions ...
</script>

这种格式有问题吗?

请不要介意潦草和我打算在其他时间修改它们,我只需要先做这项工作。

非常感谢你。 :d

2 个答案:

答案 0 :(得分:1)

由于您选择省略javascript,因此很难说出正在发生的事情,但是很可能在login.jsp中的javascript中的某些内容与'main'jsp中的javascript相冲突。

我建议使用javascript控制台和调试程序(如Chrome或FireFox中的Developer Tools)来查找问题。

顺便说一下,这不是一种非常好的结构化方法,而且特别容易出现这类问题。

首先,你不应该在你的jsp页面中使用你的javascript - 它应该在外部.js文件中,它应该是名称间隔以避免冲突(我建议阅读Doug Crockford的'Javascript - 好的部分“)。

其次,有更好的方法来组合页面 - 例如,看看Apache Tiles项目。

答案 1 :(得分:-1)

如何使用JSP Scriptlets @include 喜欢

<%@include file="../admin/login.jsp" %>

如果您的网页是静态网页。

相关问题