如何将Javascript变量传递给<jsp:setproperty>和JSTL?</jsp:setproperty>

时间:2010-08-18 17:49:14

标签: javascript jsp jstl

如何将Javascript变量传递给JSTL?

<script>

    var name = "john";  

    <jsp:setProperty name="emp" property="firstName" value=" "/>   // How do I set javascript variable(name) value here ?

    <c:set var="firstName" value=""/>  // How do I set javascript variable (name) value here ?     

  </script>

3 个答案:

答案 0 :(得分:5)

您需要将其作为请求参数发送。其中一种方法是填充隐藏的输入字段。

<script>document.getElementById('firstName').value = 'john';</script>
<input type="hidden" id="firstName" name="firstName">

这样,您可以在提交表单时将其作为请求参数在服务器端获取。

<jsp:setProperty name="emp" property="firstName" value="${param.firstName}" />

另一种方法是使用Ajax,但这本身就是一个全新的故事/答案。

另见:

如果您似乎无法找到之前提出的问题,请前往user profile

答案 1 :(得分:2)

AFAIK你不能以这种方式从JavaScript向JSTL发送数据。因为JSTL标记是在服务器端处理的,所以<jsp:>标记将在服务器上解析并由HTML替换。因此<jsp:>标签不会成为发送回客户端的响应的一部分;它只包含HTML /文本。因此,您无法从JavaScript访问<jsp:>标记,因为它们不会存在于文档中。

编辑:抱歉,<jsp:>标签不可见。

答案 2 :(得分:0)

<script>
var name = "<jsp:getProperty name="emp" property="firstName" />";
</script>

JSP代码在JavaScript之前执行,因此在处理JavaScript时,标记将被替换为emp.firstName的内容。