我有两个名为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>
我试过A.jsp
但这不起作用。任何人都可以帮忙??
答案 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>
这应该适合你。