通过 JSP 直接往 JavaScript 程序中放数据。解答百度知道的一个问题。
2012-04-17 02:21
295 查看
zhaoyunxiang72 的问题:http://zhidao.baidu.com/question/410944469.html
我看了问题,看了追问的内容。在这里总结回答一下。
JavaServerPages ,也就是 JSP ,可以在表面上看起来把 Java 运行时变量的值直接写入发给客户端的文件。利用这种特性,令其动态生成 JavaScript 或者 HTML 都是很方便的开发方法。虽然我觉得运行效率不太好吧……怎么能够把 Java 变量保存的数据,通过 JSP 机制写入 JavaScript ,然后用起来呢?
首先,如果要在 JavaScript 中获取值,那么就应该是一个变量,或者有返回值的函数。
然后,在 js/admins.js 里边,只需要用 _config.name 就可以取到 Java 运行时候的 username 值了。
我看了问题,看了追问的内容。在这里总结回答一下。
JavaServerPages ,也就是 JSP ,可以在表面上看起来把 Java 运行时变量的值直接写入发给客户端的文件。利用这种特性,令其动态生成 JavaScript 或者 HTML 都是很方便的开发方法。虽然我觉得运行效率不太好吧……怎么能够把 Java 变量保存的数据,通过 JSP 机制写入 JavaScript ,然后用起来呢?
首先,如果要在 JavaScript 中获取值,那么就应该是一个变量,或者有返回值的函数。
<% String username = ......; %> <html> <head> ... ... <script language="JavaScript"> var _config = { name: <%=username%> }; </script> <script src="js/admins.js" type="text/javascript"></script> ... </head> <body> ... <input type="text" id="nameField"/> ... </body> </html>注意这里边 <script> 标签引入的顺序。必须先把变量 _config 赋值,再引入外来的 .js 文件。不然有可能会有加载顺序不对带来的 _config == undefined ,造成对其 .name 报“找不到属性”错误。另外一半引用外界 .js 文件,要用 type="text/javascript" 方式而不是 language="JavaScript" 。
然后,在 js/admins.js 里边,只需要用 _config.name 就可以取到 Java 运行时候的 username 值了。
var showUserName = function() { var nameField = document.getElementById("nameField"); nameField.value = _config.name; };然后给一个按钮注册 onClick="showUserName();" ,或者给 <body> 注册 onLoad="showUserName();" 。点击按钮或刷新页面之后就会发现对应的 <input> 里边的值变成了 username 。
相关文章推荐
- 通过 JSP 直接往 JavaScript 程序中放数据。解答百度知道的一个问题。
- 关于JSP不能通过浏览器直接访问,要通过servlet跳转,但一个jsp文件里面用<iframe>标签包含了另一个jsp的访问问题
- Python:通过自定义系统级快捷键来控制程序开始或停止记录日志(使用小技巧解决一个貌似无解的问题)
- 使用javascript写一个小的程序,通过年月来显示当月中的星期
- 练习2-1 编写一个程序一确定分别由signed及unsigned限定的char,short,int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现。通过直接计算来确定浮点类型的取值范围是一项难度很大的任务。
- mysql 通过程序插入数据乱码问题
- 一个C程序的数据类型对齐问题
- 解决IOS通过HTML5播放Video或者Audio直接输出数据的问题
- JS中关于call()方法的一个问题(转自百度知道,解答非常详细清楚)
- 【JSP开发】通过response的writer流输出数据的问题
- 通过jsp页面向mysql数据库插入中文数据时乱码问题
- 今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说
- 通过一个登陆程序来理解几个jsp内置对象的使用
- 编写一个程序,可以通过次程序完成一个表的创建操作,输入表的名称,各个列的名称及类型,输入完成后直接通过JDBC创建指定的表。
- oracle 数据泵 通过表空间导入导出的时候遇到的一个问题
- linux中一个通过管道读取大量数据的程序源代码
- 问题:设计一个大学教师和学生管理程序, 教师包括 编号、姓名、职称和教研室 数据的输入输出; 大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算平均分; 研究生包
- Lua和C程序通过一个堆栈交换数据
- 编写一个程序,可以通过次程序完成一个表的创建操作,输入表的名称,各个列的名称及类型,输入完成后直接通过JDBC创建指定的表。
- mysql通过直接复制数据库文件夹来还原数据时需要注意的问题