内部js代码获取后台变量

简介:

Java Web中,内部js代码如何获取服务器后台的变量呢?

根据jsp页面使用的标签不同有一下几种情况:

(1)页面使用EL表达式,使用spring MVC

内部js代码:

Js代码   收藏代码
  1. alert("222:${sessionScope.practiceWay}");  
  2. var practiceWay=String("${sessionScope.practiceWay}");  

 

(2)页面使用struts标签

Js代码   收藏代码
  1. var length=Number("<s:property value="list.size"  />");  
  2.   alert("length:"+length);  
  3. var isEdit = "<s:property value="isEdit"  />";  
  4.         var id = "<s:property value="goods.id"  />";  
  5. var supermarkets_size = Number("<s:property value="supermarkets.size"  />");  

 

(3)页面使用jstl标签:

Js代码   收藏代码
  1. var sum_question=Number("${fn:length(studentPages.list)}");  

 

错误的做法

 

var length=Number("<s:property value=\"list.size\"  />");

 

js外部文件中写<%=com.dict.Constant2.COOKIE_KEY_PASSWORD %> 是不对

Js代码   收藏代码
  1. $(function(){  
  2.     var $username=$("#username");  
  3.     var $password=$("#password");  
  4.     var $issavePasswd=$("input[name=issavePasswd][type=checkbox]");  
  5.       
  6.     var usernameVal=null;  
  7.     var passwordVal=null;  
  8.     usernameVal=com.whuang.hsj.getCookie("<%=com.dict.Constant2.COOKIE_KEY_USERNAME %>");  
  9.     passwordVal=com.whuang.hsj.getCookie("<%=com.dict.Constant2.COOKIE_KEY_PASSWORD %>");  
  10.     if(com.whuang.hsj.isHasValue(usernameVal)){  
  11.         $username.val(usernameVal);  
  12.     }  
  13.     if(com.whuang.hsj.isHasValue(passwordVal)){  
  14.         $password.val(passwordVal);  
  15.         com.whuang.hsj.setSelectedCheckbox($issavePasswd.get(0));  
  16.     }  
  17. });  

 

 

总结:在js 代码中可以直接写JSP代码,上述代码中,不要对引号转义。

 

示例:

Html代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  3.     pageEncoding="UTF-8"%>  
  4. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
  5. <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>  
  6. <%  
  7.     String path = request.getContextPath();  
  8.     String basePath = request.getScheme() + "://"  
  9.             + request.getServerName() + ":" + request.getServerPort()  
  10.             + path + "/";  
  11. %>  
  12. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  13. <html xmlns="http://www.w3.org/1999/xhtml">  
  14. <head>  
  15. <base href="<%=basePath%>">  
  16.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
  17.     <title>Insert title here</title> <script type="text/javascript"  
  18.         src="<%=path%>/static/js/Module.js"></script>  
  19.     <script type="text/javascript" src="<%=path%>/static/js/common_util.js"></script>  
  20.     <script type="text/javascript" src="<%=path%>/static/js/test.js"></script>  
  21.     <script type="text/javascript" >  
  22.      window.onload = function() {  
  23.         var isEdit = "${isEdit }";  
  24.         if (isEdit != null && isEdit == "yes") {  
  25.             //alert("edit");  
  26.             var inputform = com.whuang.hsj.$$one("inputform");  
  27.             //modify the target action fo form  
  28.             inputform.action = "osType/update";  
  29.             var titleSpan = document.getElementById("titleSpan");  
  30.             //alert(titleSpan);  
  31.             titleSpan.innerHTML = "edit os";  
  32.             var hidden_div = document.getElementById("hidden_div");  
  33.             hidden_div.innerHTML = '<input type="hidden" name="id" value="${os.id }" ></input>';//id of goods for update   
  34.   
  35.             var osTypeName=com.whuang.hsj.$$one("name");  
  36.             osTypeName.value=String("${os.name}");  
  37.               
  38.         }  
  39.         //alert("222:${sessionScope.practiceWay}");  
  40.         var practiceWay=String("${sessionScope.practiceWay}");  
  41.         alert("333:"+practiceWay);  
  42.         a();  
  43.     };  
  44.     </script>  
  45. </head>  
  46. <body>  
  47.     <center>  
  48.     <h1><span id="titleSpan">add </span> </h1>  
  49.     <input type="hidden" value="${sessionScope.practiceWay}" name="hidpracticeWay" />  
  50.     <a href="javascript:history.go(-1)" >return </a>&nbsp;|&nbsp;  
  51.     <a href="index.jsp" >index</a>&nbsp;|&nbsp;<a href="osType/viewAll">view all</a>  
  52.         <form action="osType/save" name="inputform" >  
  53.             <table>  
  54.                 <tr>  
  55.                     <td>os name:</td>  
  56.                     <td><input type="text" name="name" /></td>  
  57.                 </tr>  
  58.                 <tr>  
  59.                     <td colspan="2" ><input type="submit"  
  60.                         value="&nbsp;&nbsp;o&nbsp;k&nbsp;&nbsp;" id="submit_btn" /></td>  
  61.                 </tr>  
  62.             </table>  
  63.             <div id="hidden_div"></div>  
  64.         </form>  
  65.     </center>  
  66. </body>  
  67. </html>  
相关文章
|
4月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
6月前
|
JavaScript 前端开发 算法
流量分发代码实战|学会用JS控制用户访问路径
流量分发工具(Traffic Distributor),又称跳转器或负载均衡器,可通过JavaScript按预设规则将用户随机引导至不同网站,适用于SEO优化、广告投放、A/B测试等场景。本文分享一段不到百行的JS代码,实现智能、隐蔽的流量控制,并附完整示例与算法解析。
174 1
|
7月前
|
JavaScript 前端开发
怀孕b超单子在线制作,p图一键生成怀孕,JS代码装逼娱乐
模拟B超单的视觉效果,包含随机生成的胎儿图像、医疗文本信息和医院标志。请注意这仅用于前端开发学习
|
7月前
|
JavaScript
JS代码的一些常用优化写法
JS代码的一些常用优化写法
129 0
|
9月前
|
存储 JavaScript 前端开发
在NodeJS中使用npm包进行JS代码的混淆加密
总的来说,使用“javascript-obfuscator”包可以帮助我们在Node.js中轻松地混淆JavaScript代码。通过合理的配置,我们可以使混淆后的代码更难以理解,从而提高代码的保密性。
869 9
|
10月前
|
前端开发 JavaScript
【Javascript系列】Terser除了压缩代码之外,还有优化代码的功能
Terser 是一款广泛应用于前端开发的 JavaScript 解析器和压缩工具,常被视为 Uglify-es 的替代品。它不仅能高效压缩代码体积,还能优化代码逻辑,提升可靠性。例如,在调试中发现,Terser 压缩后的代码对删除功能确认框逻辑进行了优化。常用参数包括 `compress`(启用压缩)、`mangle`(变量名混淆)和 `output`(输出配置)。更多高级用法可参考官方文档。
724 11
|
10月前
|
JavaScript 前端开发 算法
JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
Array.sort() 是一个功能强大的方法,通过自定义的比较函数,可以处理各种复杂的排序逻辑。无论是简单的数字排序,还是多字段、嵌套对象、分组排序等高级应用,Array.sort() 都能胜任。同时,通过性能优化技巧(如映射排序)和结合其他数组方法(如 reduce),Array.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
10月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
10月前
|
移动开发 运维 供应链
通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
array.some()可以用来权限检查、表单验证、库存管理、内容审查和数据处理等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
10月前
|
供应链 JavaScript 前端开发
通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
array.every()可以用来数据验证、权限检查、一致性检查等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~