当前位置: 代码迷 >> Java Web开发 >> 请问个JQUERY.HTML()的小疑点
  详细解决方案

请问个JQUERY.HTML()的小疑点

热度:118   发布时间:2016-04-17 10:16:18.0
请教个JQUERY.HTML()的小问题
trhidden.jsp

HTML code
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";//String isproxystr = request.getParameter("isproxy");boolean isproxy = false;session.setAttribute("Power",5);%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">    <title>My JSP 'trhidden.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <script type="text/javascript" src="js/jquery.js"></script>    <script type="text/javascript" src="js/trhidden.js"></script>  </head>    <body>    <table id="tt" border="1 red solid" > </table>  </body></html>


trhidden.js
JScript code
function showtt(){    $("#tt").html(            '<tr <%=session.getAttribute("Power").equals(5)?"style=\'display:none\'":"" %> >'            +'<td colspan="12" style="text-align: right"><input type="button" id="excel" value="excel" onclick="alert(\'haha\')"/></td>'    +"</tr>"    +"<tr>"    +"<td>name</td><td>age</td><td>sax</td>"    +"</tr>"    +"<tr>"    +"<td>tys</td><td>22</td><td>nan</td>"    +"</tr>"        ); }


返回到浏览器的源码为什么是
<tr <%=“session.getAttribute("Power").equals(5)?"style=\'display:none\'":"" ” %> >
好像是将表达式里面的内容变成了一个String了

------解决方案--------------------
你得搞清楚页面加载的顺序,并且js文件内的服务器代码是不可能被读取到的

加载一个jsp页面->
服务器部分:读取jsp->转换jsp代码为servlet->获取处理结果到html格式->
客户端部分:加载head中的远程代码,包括css,js->执行js代码->浏览器展示页面

读取js文件的动作发生在客户端,所以里面的服务器代码不会被执行

解决方案:
1.把js代码写到jsp文件的<script>标签里
2.用ajax后置加载数据,用js返回数据
------解决方案--------------------
JS是下载到客户端,由浏览器进行解析的!

JSP是服务端通过应用服务器转换成class二进制代码进行操作的。

你使用JSP中的内置对象SESSION,在JS中肯定不识别的!

如果你想获得SESSION值,可以在JS使用AJAX间接访问调取JSP或者ACTION中的SESSION值咯!
  相关解决方案