如何在javascript中设置JSTL变量值?

IT技术 javascript jsp jstl
2021-01-18 10:23:08

如何在java脚本中设置JSTL变量值?

<script>

 function function1()

 { 

  var val1 = document.getElementById('userName').value;

  <c:set var="user" value=""/>  // how do i set val1 here?   

 }
 </script>

如何从“ val1 ”(Java 脚本设置“用户”变量 ( JSTL ) 值

6个回答

这是不可能的,因为它们在不同的环境中执行(服务器端的 JSP,客户端的 JavaScript)。因此它们不会按照您在代码中看到的顺序执行。

var val1 = document.getElementById('userName').value; 

<c:set var="user" value=""/>  // how do i set val1 here? 

这里 JSTL 代码在服务器端执行,服务器将 JavaScript/Html 代码视为简单文本。从 JSTL 代码(如果有)生成的内容将与您的其他 JavaScript/HTML 代码一起呈现在生成的 HTML 中。现在浏览器在执行 Javascript 代码的同时呈现 HTML。现在请记住,浏览器没有可用的 JSTL 代码。

现在例如,

<script type="text/javascript">
<c:set var="message" value="Hello"/> 
var message = '<c:out value="${message}"/>';
</script>

现在对于浏览器,此内容已呈现,

<script type="text/javascript">
var message = 'Hello';
</script>

希望这可以帮助。

对不起!我不记得点击了否决按钮,但显然我这样做了。不幸的是,除非修改答案,否则此时我无法撤消投票。再次,对不起!
2021-03-17 10:23:08
'user' 变量是服务器端的范围属性,输入元素在客户端可用。要更新服务器中的某些内容,您需要通过表单提交将数据发布到服务器。如果您想显示来自服务器的一些数据,您可以将其作为生成响应内容的一部分,如我的示例所示。此外,容器是否在脚本标签内执行 JSTL 并不重要,因为它只是解析 JSTL,执行并呈现来自标签的结果响应(如果有);它按原样呈现其他文本(HTML/JavaScript)。
2021-03-28 10:23:08
感谢您的回复。如何在脚本标签外设置值。示例 以下代码段位于 <script> 标记之外。<input type="hidden" name="userName" value="Administrator"/> <c:set var="user" value=""/> // 我如何在这里设置隐藏变量值(用户变量)?
2021-04-09 10:23:08

另一种使用方法。

首先,在页面上的某处定义以下内容:

<div id="valueHolderId">${someValue}</div>

然后在 JS 中,做类似的事情

var someValue = $('#valueHolderId').html();

它适用于所有脚本都在 .js 文件中并且显然没有可用的 jstl 的情况

<script ...
  function(){
   var someJsVar = "<c:out value='${someJstLVarFromBackend}'/>";

  }
</script>

这个工程,即使你没有一个隐藏/非隐藏输入字段集在JSP的某个地方。

只是不要。不要用代码写代码。在某处编写 JSON 对象或变量,但出于对合理 HTTP 划分的热爱,不要编写使用 JSTL 提供的变量/属性硬编码的 JavaScript 函数或方法。生成 JSON 很酷。到此结束,否则您的 UI 开发人员讨厌您。

想象一下,如果您必须深入研究 JavaScript 才能找到在源自客户端的类的中间设置参数的东西。这太可怕了。来回传递数据。处理数据。但不要尝试生成实际代码。

您必须使用普通的字符串连接,但您必须确保该值是一个有效的 XML 字符串,您会发现在此源http://oreilly.com/pub/h/2127 中编写 XML 的好做法,或者如果例如,您可以使用 javascript 中的 API 将 XML 编写为helma