jsp里循环赋值的问题

来源:百度知道 编辑:UC知道 时间:2024/05/01 19:56:06
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<script language="javascript">
function load(){
<% for(int i=0;i<3;i++){
%> aa()
<% }%>
}
function aa(){
<%
int n = session.getAttribute("n")==null?0:Integer.parseInt(session.getAttribute("n").toString());
%> alert(<%=n%>);
<% n++;session.setAttribute("n",n);
if(n==3){
session.removeAttribute("n");
}
%>
}
</script>
<body onload="load()"></body>
</html>
这个页面运行后n的值只有在刷新页面才会显示被加上1后的值,求解怎样才能让每次弹出的值为+1后的值。
++n,n++,n=n+1我都试过了,不行。
第3位的回答虽然能实现,但是我现在项目上要求的就是通过循环调用aa(要不然的话我没有必要用session了),为了这个问题我想了半天的时间,看看有没有办法。

jsp在javascript函数里面 不会随着外面的循环执行

你可以去试试 aa()里面的<%%>里面只执行了一次
所以他的值不会增加
你应该在aa()函数里面循环

可以参考一下我的

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<html>
<script language="javascript">
function load(){
aa();
}
function aa(){
<%

int n =0;
for(int i=0;i<3;i++){
Object o=session.getAttribute("n");
if(o==null || o.equals(null)){
n=0;
}else{
n=Integer.parseInt(session.getAttribute("n").toString());
}
n++;
%>
alert(<%=n%>);
<%
session.setAttribute("n",n);

if(n==3){
session.removeAttribute("n");
}
System.out.println("N"+n);
}
%>
}
</script>
<body onload="load()"