当前页面: 开发资料首页 → JSP 专题 → jsp与JavaScript可以嵌套写不?
jsp与JavaScript可以嵌套写不?
摘要: jsp与JavaScript可以嵌套写不?
我在做一个东西时。要把通过jsp访问数据库的结果传递给JavaScript的数组。究竟该怎么做呢,望各位帮帮我。我是这样做的,不知道是哪个错了哦?帮我看看,一定重谢!
<script language=JavaScript>
var bannerAD=new Array();
var bannerADlink=new Array();
var bannerADtitle=new Array();
<%
List v7=(List)session.getAttribute(Constants.TPXW1_LIST_KEY);
Tpxw tpxw=null;
int j=0;
if(v7!=null){
for(int i=0;i
tpxw=(Tpxw)v7.get(i);
%>
bannerADlink[<%=j%>]=<%=tpxw.getId()%>;
bannerAD[<%=j%>]=<%=tpxw.getImage()%>;
bannerADtitle[<%=j%>]=<%=tpxw.getTitle()%>;
<% j++;
}
}%>
</script>
耶!!沙发
楼主我支持你
-----------------
松自萧萧云自飘
风中独酌亦逍遥
抚却凡愁与尘念
琴韵未解恨已销
问题是什么呢??
没有发现有什么明显的代码错误
而且这么写的思路是没有问题的
好像没看出什么异常,代码应该没问题吧?会不会错在别的地方,把报错信息也发出来啊
数组里是空的,它们可不可以嵌套写呢?
以前我asp里面写过,可以的。。。
肯定可以嵌套的
哈哈,我也想知道
怎么不把错误信息说一下? 我没环境,运行不了
可以嵌套写.不知道是不是你要的效果:
jsp页面:
<input type="button" stype="Image" class="button_style" value="生成计划单" onclick="goBOM('
','','',tabstemp);"></td>
脚本:
<script>
function goBOM(pid,quant,pro_id,mycode,obj) { document.all.bomframe.src="../XXX.do?my_pid="+pid+"&myquant="+quant+"&opt=bigentree&pro_id="+pro_id+"&mycode="+mycode;
}
</script>
你的Tpxw tpxw=null;是什么?是不是错在这里?
如果能通过JAVA环境编译,那基本不是JSP代码的问题了。
你看看运行后的页面的源代码,如果JS代码有问题页面是会报错的。
你根据错误找到源代码的地方,看看是不是生成的代码不符合JAVASCRIPT的语法。
可以把JSP代码嵌入到JAVASCRIPT中,
不能把JAVASCRIPT代码嵌入到JAVA中
我发现个严重问题。我把javascript代码去了以后就可以执行jsp代码了,不知道怎么回事哦。
我发现上面的程序根本就没执行jsp程序,不知道是什么问题啊?各位帮帮我。一定重谢
另外我在前面还加了
<%@ page import = "news.*,zntt.*,sqmy.*,tpxw.*,jsgy.*,jsfc.*,czyz.*,announce.*,config.Constants" %>
<%@ page import = "java.util.List" %>
<%@ page contentType="text/html;charset=GBK" %>
这三句呢!是不是他们的问题呢
那是你的javascript的问题 两者嵌套使用肯定是没有问题的 关键是你的javascript中的方法只有被调用以后才会起作用
javascript本身是不会自动调用自己的。需要你触发一个事件才能去使用。
那嵌套在里的jsp程序也要调用才会执行吗?
对,他们算作一个函数,一定要在其它的地方调用,比如搞个什么按钮触发一下
那也太难了吧。我把从数据库中的东西传给javascript数组,还要经过这样啊。那该怎么办呢?
我这段代码就是不执行啊!
<%@ page import = "news.*,zntt.*,sqmy.*,tpxw.*,jsgy.*,jsfc.*,czyz.*,announce.*,config.Constants" %>
<%@ page import = "java.util.List" %>
<%@ page contentType="text/html;charset=GBK" %>
<script language=JavaScript>
<%
List v7=(List)session.getAttribute(Constants.TPXW1_LIST_KEY);
Tpxw tpxw=null;
if(v7!=null){
for(int i=0;i tpxw=(Tpxw)v7.get(i);
out.print(tpxw.getImage());
out.print(tpxw.getTitle());
}
}%>
</script>
但只要去掉<script language=JavaScript>这个就能执行这段程序了。我给怎么改呢?谢谢!
你先搞清楚再做什么!
1、out.print只是jsp中把内容输出到浏览器中,至于放到什么位置就看你的需要了。放到javascript中那办出的要一定是javascript语法!
2、你的out.print出来的要是javascript语法吧,否则会出错,要么你你的out.print不要写在
javascript中。
<%
List v7=(List)session.getAttribute(Constants.TPXW1_LIST_KEY);
Tpxw tpxw=null;
%>
<script language=JavaScript>
var a=new Array();
<%
int j=0;
if(v7!=null){
for(int i=0;i tpxw=(Tpxw)v7.get(i);
%>
a[<%=j%>]=<%=tpxw.getTitle()%>;
<% j++;
}
}%>
</script>
我这样写有错没呢?
应该没有错呀,保证你用到的java类都import正确了。
把js程序放在jsp开始的地方,当页面打开的时候,会被执行的。
我写了一个简单的jsp如下,你放在tomcat的目录下执行一下,就知道了。
<%@ page import = "java.util.List" %>
<%@ page import = "java.util.ArrayList" %>
<%
List v7= new ArrayList();
v7.add("1");
v7.add("2");
%>
<script language=JavaScript>
var a=new Array();
<%
if(v7!=null){
for(int i=0;i%>
a[<%=i%>]=<%=v7.get(i).toString()%>;
<% }}
%>
alert(a);
</script>
对的啊
if(v7!=null){
for(int i=0;i tpxw=(Tpxw)v7.get(i);
%>
a[<%=i%>]=<%=tpxw.getTitle()%>;
我试了很多次。我就是觉得上面这几句有问题,我的目的就是从List中取出一个对象马上转换成Tpxw对象,再通过getTitle()方法取出想要的东西后付给数组a,但我每次运行时,都说网页有错误,不知道是啥错误,我去了所有的javascript代码后程序没的问题,可以输出结果。v7的确不为空,那为什么就是不把值传给a呢,还抱什么错啊?
但我还是不明白alley_zhan(晓柯)的程序能实现,我只是对了个对象转换,结果就出错,郁闷!
帮帮我啊,谢谢你们了!
这句错了:bannerADtitle[<%=j%>]=<%=tpxw.getTitle()%>;
tpxw.getTitle()假设值是aaa,那么你的script就是: bannerADtitle[0]=aaa;明显是错的嘛,
改成这样:bannerADtitle[<%=j%>]="<%=tpxw.getTitle()%>";
所有返回出来是字符串的都加上引号.
学习了。
呵呵。谢了,我忘了加引号,感谢所有的人,谢谢!!
我记得是可以的
修改一下看看
bannerADlink[<%=j%>]='<%=tpxw.getId()%>';
有个问题请教一下
为何数组的下标不用i呢!