我有一个 servlet,它使用 requestdispatcher() 转发到我的一个 jsp 页面
request.getRequestDispatcher("/WEB-INF/view/mypage.jsp").forward(
request, response);
目标 mypage.jsp 有一些 jquery 优点,需要做一些显示/隐藏的东西,但由于某些原因,当显示 jsp 时,jquery 没有被触发从servlet转发过来后,直接通过地址栏访问页面就可以了(我把页面放在web-inf之外直接访问)。
即使是一个简单的<body onload="alert('Testing')">
也不工作。
我也在我的 jsp 中使用 HTML5 和 jquerymobile。
任何填补我知识空白的回复都会很棒。 谢谢
以下是我的jsp页面:
<!DOCTYPE html>
<html>
<head>
<title>My App</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
</head>
<body onload="alert('Even this is not popping up')">
-- Stuff--
</body>
</html>
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
</head>
<body onload="alert('Even this is not popping up')">
-- Stuff--
</body>
</html>
最佳答案
问题可能出在您访问 mypage.jsp 的方式上。由于它位于/WEB-INF 文件夹中,因此不能直接从浏览器访问。如果页面仍在/WEB-INF 文件夹中,我认为您无法通过地址栏直接访问该页面。
如果您从/WEB-INF 外部访问它并且它可以工作,但是在您的 servlet 将请求转发给它之后,它没有,最可能的原因是您的 JSP 页面在发送到浏览器后试图加载一些东西并且服务器拒绝提供服务——也许该资源也在/WEB/INF 中。您还可以找到 this链接有帮助。
关于javascript 无法处理从 servlet 重定向的 jsp 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10522420/