如何使用href从另一个jsp调用1个jsp的javascript函数

时间:2015-03-30 07:39:13

标签: jsp

我有两个名为jsp的{​​{1}}个文件 我想从A.jsp and B.jsp调用B.jsp的javascript函数 A.jsp内的代码是

a.jsp

<%@include file="dbconnection.jsp"%> <HTML> <HEAD> <TITLE> </TITLE> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> </HEAD> <BODY> <TABLE> <%ResultSet rs = statement.executeQuery("select * from something;") ;%> <% int counter=0; while(rs.next()){ String link=rs.getString(1); counter++; %> <TR> <TD> <p> <a href="B.jsp" onclick="displayData(<%=counter%>)"><%=link%></a> </p> </TD> </TR> <% } %> </TABLE> <div id="myDiv"></div> </BODY> </HTML> 内的代码

B.jsp

如何从<%@include file="dbconnection.jsp"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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=UTF-8"> <title>Insert title here</title> </head> <body> <b> Hello</b> <script language="JavaScript"> function displayData(ctr) { switch (counter) { case 1: $("p").hide(); <%ResultSet rs = statement.executeQuery("select value from abc;") ; %> <% int c=0; while(rs.next()){ String link=rs.getString(1); c++; %> <% } %> $('#myDiv').append('<table><tr><td>'); $('#myDiv').append('<INPUT TYPE="button" VALUE="Back" onClick="window.history.go(-1);">'); $('#myDiv').append('</td></tr></table>'); break; case 2: $("a").hide(); <%ResultSet rs1 = statement.executeQuery("select value from xyz;") ; %> <% int c1=0; while(rs1.next()){ String link=rs1.getString(1); c1++; %> <% } %> break; case 3: alert("aaa"); break; } } </script> </body> </html>

调用名为displatData(ctr)的函数

我试过A.jsp 但这不起作用。任何人都可以帮忙??

2 个答案:

答案 0 :(得分:0)

javascript方法在调用时必须可用。因此,您必须在自己的.js文件中提取该方法,并在A.jsp上引用它或将其移动到A.jsp。

例如A.jsp:

<%@include file="dbconnection.jsp"%>

<HTML>
<HEAD>
<TITLE>
</TITLE>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="myScripts.js"></script>

</HEAD>
<BODY>
 <TABLE>
       <%ResultSet rs = statement.executeQuery("select * from something;") ;%>
        <% 
        int counter=0;

         while(rs.next()){ 
            String link=rs.getString(1);
            counter++;
        %>
        <TR>
           <TD>

           <p>    <a href="B.jsp" onclick="displayData(<%=counter%>)"><%=link%></a> </p>
           </TD> 
        </TR>
        <% } %>
 </TABLE>
<div id="myDiv"></div>
</BODY>
</HTML>

B.jsp:

<%@include file="dbconnection.jsp"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">

<title>Insert title here</title>
<script type="text/javascript" src="myScripts.js"></script>

</head>

<body>

<b> Hello</b>

</body>

</html>

最后是myScripts.js:

function displayData(ctr) {

switch (counter) {

case 1:
$("p").hide();
<%ResultSet rs = statement.executeQuery("select value from abc;") ;  %>
<% 
int c=0;
 while(rs.next()){ 
    String link=rs.getString(1);
    c++;
%>

<% } %>
$('#myDiv').append('<table><tr><td>');
$('#myDiv').append('<INPUT TYPE="button" VALUE="Back" onClick="window.history.go(-1);">');

 $('#myDiv').append('</td></tr></table>');
break;

case 2:
$("a").hide();
<%ResultSet rs1 = statement.executeQuery("select value from xyz;") ;  %>
<% 
int c1=0;
 while(rs1.next()){ 
    String link=rs1.getString(1);
    c1++;
%>

<% } %>

 break;
case 3:
alert("aaa");
break;

 }
}

答案 1 :(得分:0)

A.jsp中,而不是使用以下链接:

<a href="B.jsp" onclick="displayData(<%=counter%>)"><%=link%></a>

您可以使用B.jsp<%@ include file="B.jsp" %>添加到顶部 然后使用以下内容:

<a href="javascript:displayData(<%=counter%>)"><%=link%></a>

这应该适合你。