java web中,js外部文件如何获取后台的变量呢?
项目使用spring MVC框架,
IDE:eclipse;
使用maven构建
控制器(OsTypeController.java)如下:
package com.ct.web.controller; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.SessionAttributes; import com.ct.dao.OsTypeDao; import com.ct.entity.OsType; import com.time.util.TimeHWUtil; @Controller @RequestMapping("/osType") @SessionAttributes("practiceWay") public class OsTypeController { private OsTypeDao osTypeDao; private String redirectViewAll="redirect:/osType/viewAll"; @RequestMapping(value = "/add") public String addInputOsType(String practiceWay,Model model){ model.addAttribute("practiceWay", practiceWay); System.out.println("practiceWay:"+practiceWay); return "osType/addOSType"; } /******************************************************************/ public OsTypeDao getOsTypeDao() { return osTypeDao; } @Autowired public void setOsTypeDao(OsTypeDao osTypeDao) { this.osTypeDao = osTypeDao; } }
控制器方法addInputOsType 对应的页面(addOSType.jsp)如下:
<?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <base href="<%=basePath%>"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Insert title here</title> <script type="text/javascript" src="<%=path%>/static/js/Module.js"></script> <script type="text/javascript" src="<%=path%>/static/js/common_util.js"></script> <script type="text/javascript" src="<%=path%>/static/js/test.js"></script> </head> <body> <center> <h1><span id="titleSpan">add </span> </h1> <input type="hidden" value="${sessionScope.practiceWay}" name="hidpracticeWay" /> <a href="javascript:history.go(-1)" >return </a> | <a href="index.jsp" >index</a> | <a href="osType/viewAll">view all</a> <form action="osType/save" name="inputform" > <table> <tr> <td>os name:</td> <td><input type="text" name="name" /></td> </tr> <tr> <td colspan="2" ><input type="submit" value=" o k " id="submit_btn" /></td> </tr> </table> <div id="hidden_div"></div> </form> </center> </body> </html>
其中外部js文件(test.js)如下:
alert("111:${sessionScope.practiceWay}"); window.onload =function a() { alert("method:a"); alert("444:${sessionScope.practiceWay}"); alert("hid:"+document.getElementsByName("hidpracticeWay")[0].value); };
在浏览器中输入http://localhost:8088/demo_channel_terminal/osType/add?practiceWay=random
运行结果:
对应的是外部js文件(test.js)的执行结果。
所以我们可以得出结论:
在外部js文件获取后台变量的方式就是通过获取页面隐藏域的值。
具体步骤:
(1)把后台变量设置到页面隐藏域中,例如
<input type="hidden" value="${sessionScope.practiceWay}" name="hidpracticeWay" />
(2)在外部js文件中获取隐藏域的值,例如
alert("hid:"+document.getElementsByName("hidpracticeWay")[0].value);
那么在jsp页面中的js代码中如何获取后台变量的值呢?
请参阅我的下一篇日志
附件是项目,采用maven构建
相关推荐
6. **异步编程**:JavaScript的非阻塞特性使得它非常适合处理异步任务,如Ajax请求、定时器(setTimeout、setInterval)和Promise,这些都用于处理后台通信和复杂交互。 7. **ES6新特性**:ECMAScript 6(ES6,也...
在thymeleaf网页中,js获取后台model传递过来的对象很重要,这对减少数据库...获取model传过来的简单变量很简单,但是获取它传过来的对象不容易。 本例是js获取后台通过model传过来的数组列表,希望对同人们有所帮助。
针对ajax异步回调函数中给外部变量赋值的问题,还可以使用一些现代JavaScript的特性来解决。例如,Promise对象提供了一种管理异步操作的方法。通过创建一个Promise实例,我们可以将异步操作的结果与相关联的then()或...
3. **闭包**:闭包是JavaScript中的一个重要概念,它允许函数访问并操作外部作用域的变量,同时保持自身的独立性。 4. **异步编程**:JavaScript是单线程执行的,因此异步处理(如回调函数、Promise、async/await)...
闭包则是函数内部能够访问其外部作用域变量的能力,是JavaScript中实现数据封装和模块化的重要手段。 4. **事件处理**:在Web开发中,JavaScript通过监听和响应用户或浏览器的事件(如点击、滚动、加载等)来实现...
闭包是一种特殊的函数,它可以访问并操作外部作用域的变量,即使在其外部函数已经执行完毕的情况下。 3. **原型与继承**:JavaScript的继承基于原型链,每个对象都有一个[[Prototype]]内部属性,可以通过__proto__...
闭包是JavaScript中的一个重要概念,它允许函数访问并操作其外部的变量,即使在其外部函数已经执行完毕后。 事件和事件处理是JavaScript与用户交互的关键。点击、鼠标移动、键盘输入等都是常见的浏览器事件,...
2. **保护私有变量**:虽然JavaScript没有真正的私有变量,但可以使用伪私有变量(如在变量名前加下划线 `_myPrivate`)来遵循编程约定,限制外部访问。 3. **模式与封装**:学习和应用常见的设计模式,如模块模式...
10. **闭包**:闭包是函数和其词法作用域的组合,允许函数访问和操作外部作用域的变量,即使在其外部定义的函数已经执行完毕。 11. **正则表达式**:JavaScript的RegExp对象支持正则表达式,用于模式匹配和字符串...
闭包是JavaScript的另一个重要特性,它能访问并操作外部作用域的变量,即使该作用域已关闭。 总之,“javascript帮助文档”涵盖了JavaScript的基础到高级概念,包括变量、数据类型、流程控制、函数、对象、类、DOM...
通过`XMLHttpRequest`对象或者现代浏览器的`fetch` API,可以实现后台数据的获取和提交。 5. **面向对象编程**:JavaScript支持基于原型的面向对象编程,通过`Object.create`, `prototype`, `constructor`等特性,...
5. **闭包**:JavaScript中的闭包是函数和其相关的词法环境的组合,它允许函数访问和修改外部作用域的变量,即使在函数执行后,这些变量仍然存在。 6. **原型链**:JavaScript的对象继承基于原型链机制,每个对象都...
7. **闭包**:闭包是JavaScript中的一个重要概念,它允许一个函数访问并操作其外部作用域的变量,即使在其外部函数已经执行完毕后。 8. **异步编程**:JavaScript是单线程的,但通过回调函数、Promise和async/await...
在这种情况下,可以利用Laravel的`asset`或`elixir`函数引用外部JS文件,然后在服务器端生成一个包含PHP变量的JSON文件,供JS文件加载和解析。 5. **使用`vue-resource`或`axios`库**:如果应用使用Vue.js或其他...
6. **闭包**:闭包是JavaScript中的一个重要概念,它可以访问并操作外部作用域的变量,即使外部函数已经执行完毕。 Ajax核心技术: 1. **XMLHttpRequest对象**:Ajax的核心是XMLHttpRequest,它是一个浏览器内置的...
外部 JavaScript 文件的文件扩展名是 .js。 以下是 JavaScript 的一些重要知识点: * 变量声明:JavaScript 中的变量声明使用 var 关键字,例如 var x = 2; * 数据类型:JavaScript 中有多种数据类型,包括数字、...
4. **闭包**:JavaScript的闭包特性允许函数访问和修改外部作用域的变量,是实现模块化和封装的重要工具。 5. **定时器**:setInterval和setTimeout函数可以让JavaScript在特定时间间隔执行任务,常用于动画效果或...
3. **作用域和闭包**:理解变量的作用域(全局、局部、块级),以及闭包如何在函数内部访问外部作用域的变量,这是JavaScript中重要的高级特性。 4. **异步编程**:包括回调函数、Promise、async/await等,用于处理...
2. 文件上传:了解PHP的`$_FILES`全局变量,以及如何安全地处理文件上传,防止恶意文件注入。 3. 图片处理:可能需要对上传的图片进行缩放、裁剪等操作,可以使用GD库或Imagick扩展。 4. JavaScript基础:编写动态...