日期:2014-05-17  浏览次数:20621 次

简单问题:关于jsp执行顺序.
<%String msg = (String)request.getAttribute("wrongmsg") == null ? "" : (String)request.getAttribute("wrongmsg");%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>客户端下载</title>
<link rel="stylesheet" type="text/css" href="../css/apkDownLoad/allApkDownLoad.css">

  <script type="text/javascript">
if('N' == '<%=msg%>'){
alert("对不起,信息输入有误,请检查!");
window.close();
return;
}
</script>
  <head>
  <body>
  <bean:write name="XXX" property="YYY" />
  </body>

=================================================================
这样的一个样子,action跳转进来后,不去script,而先走的body,由于没有XXX,所以会报错.

想问问各位老鸟, jsp的执行 不应该是由上而下么?????

------解决方案--------------------
<bean:write> 像这种非原始HTML标签 有可能是在执行JSP
也就是<%%>这种段
JSP里是先<%%>把整个页面代码弄出来,再自上而下执行
------解决方案--------------------
script放在head里面是对的,但是jsp运行的时候不会主动去运行js代码的,只有你在body里面的元素设置了id或者class……一些事件之类的,并且在你的js代码中有对相应事件的处理 ,这个时候才会运行js
------解决方案--------------------
jsp的执行顺序并不一定是自顶而下的,其虽然是脚本语言,但最终转化为servlet类中的java方法
------解决方案--------------------
建议你把JS代码放到JSP页面的最下面,你会发现,平时经常犯的小错误现在很少犯了//