如何将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>
答案 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的内容。