嗨,我是jQuery的新手,正在尝试向现有jsp页面中添加一个简单的jQuery选项卡组件,该页面从servlet调用。如果我直接访问该页面,则会显示jQuery组件,但是当从servlet调用该页面时,将显示该页面,但jQuery效果不起作用。看来jQuery从未被调用。
下面的示例代码:
我只是得到以下内容,而不是标签效果
*Tabs * First * Second * Third This is tab one This is tab two. This is tab three*
谁能帮忙,我已经在网上搜索了好几天才能找到答案,但是还没有运气。任何帮助将不胜感激
我添加了一个弹出窗口,当直接从浏览器调用页面时,该弹出窗口会出现,但是从servlet调用页面时,不会弹出该弹出窗口。
public class SBServlet extends HttpServlet { public SBServlet() { super(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // redirecting to test.jsp getServletContext().getRequestDispatcher("/JSP/test.jsp").forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <link type="text/css" href="../css/hot-sneaks/jquery-ui-1.8.10.custom.css" rel="stylesheet" /> <script type="text/javascript" src="../js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="../js/jquery-ui-1.8.10.custom.min.js"></script> <script type="text/javascript"> $(document).ready(function() { alert('jQuery is accessible'); $("#tabs").tabs(); }); </script> <title>Jquery test</title> </head> <body> <h2 class="demoHeaders">Tabs</h2> <div id="tabs"> <ul> <li><a href="#tabs-1">First</a></li> <li><a href="#tabs-2">Second</a></li> <li><a href="#tabs-3">Third</a></li> </ul> <div id="tabs-1">This is tab one</div> <div id="tabs-2">This is tab two.</div> <div id="tabs-3">This is tab three</div> </div> </body> </html>
好吧,我使用的是tomcat服务器,因此它的localhost:8080 / Test / JSP / test.jsp与jQuery一起显示。从servlet中,我正在调用初始jsp文件,该文件将调用servlet,该servlet会转发到test.jsp。URL是localhost:8080 / Test / SBServlet?handler = login
您已声明相对于当前请求URL的脚本URL。
<script type="text/javascript" src="../js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="../js/jquery-ui-1.8.10.custom.min.js"></script>
如果您使用Firebug等调试了HTTP流量,您将注意到在servlet URL上加载了脚本,http://localhost:8080/js/jquery-1.4.4.min.js并且http://localhost:8080/js/jquery- ui-1.8.10.custom.min.js每个脚本显然返回未找到的404页面。
http://localhost:8080/js/jquery-1.4.4.min.js
http://localhost:8080/js/jquery- ui-1.8.10.custom.min.js
您想从上下文路径加载它们/Test。您需要修复脚本URL,以使它们相对于域根而不是当前请求URL。
/Test
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-ui-1.8.10.custom.min.js"></script>
然后这将最终生成为HTML
<script type="text/javascript" src="/Test/js/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="/Test/js/jquery-ui-1.8.10.custom.min.js"></script>