在JavaScript中获取请求属性
Get Request Attributes in JavaScript
加载页面时,我的控制器中有以下内容:
request.setAttribute("myAtt", "Testing");
我想在JSP文件中访问它。在HTML部分,我熟悉使用如下内容:
${myAtt} ${requestScope.myAtt}
等。然而,我从来没有确定如何在JavaScript中访问请求参数。我尝试了很多方法,比如:
var jsAtt = ${myAtt};
var jsAtt = '${myAtt}';
var jsAtt = eval(${myAtt});
var jsAtt = eval('${myAtt}');
等,但似乎都不起作用。
是否有办法通过JavaScript抓取请求属性?请不要使用jQuery、servlet等。我想要纯JavaScript代码。
我有点惊讶,我没有发现这个已经被问到。很抱歉,如果这是一份副本,我只是没有看到原件。
使用以下内容应该可以工作。
var jsAtt = '${myAtt}';
我想我偶然发现的问题,因为试图根据我的需要动态生成字符串,JavaScript似乎不喜欢。例如,这会产生以下问题:
var counter = 1;
var jsAtt = '${myAtt' + counter + '}';
JavaScript似乎可以识别请求参数语法,但只有在它完全预先确定的情况下。
对于GET请求,您可以从QueryString中获取值。查看此页面:http://www.thimbleopensource.com/tutorials-snippets/get-request-parameters-using-javascript
我不确定POST请求。
将以下代码放入jsp页面的header标签中(不在js文件中):
<script type="text/javascript">
var jsAtt = '<%= request.getAttribute("myAtt") %>';
</script>
但是你的字符串一定不能包含简单的引号,因为它会破坏jsp对字符串的解释。
如果你需要带简单引号的字符串,你需要,例如,在服务器端用"';":
request.setAttribute("myAtt", myAtt.replaceAll("'", "'"));
并在JSP中重新替换它:
<script type="text/javascript">
var jsAtt = '<%= request.getAttribute("myAtt") %>';
jsAtt = jsAtt.replace(/'/g, "'");
</script>
对于Object而不是String,您可以使用JSON将它们作为String传递。
我还没有测试过这个,但你试过吗?
${pageContext.request.myAtt}
相关文章:
- 哪个 JavaScript 库在请求对象上设置 _parsedUrl 属性
- Ember:当子控制器同时观察到父控制器触发请求的相同属性时
- 错误:在 Firefox 中访问 AJAX 请求的属性“nodeType”的权限被拒绝
- 使用Javascript重定向并设置请求属性
- 尝试更改HTML属性时出现奇怪的get请求
- 如何在JavaScript中将JSP请求属性转换为字符串并将其分配给对象
- 在提交表格时IE8赢得了't将来自输入的属性以外的属性添加到请求中
- 如何在 ajax 请求的回调中设置 ngInclude 元素的 src 属性
- 从 XMLHttpRequest 对象获取请求属性
- Drupal 7 Field API:如何以编程方式发送表单元素属性 #ajax 指定的AJAX请求
- 在 Laravel 5.2 的发布请求中传递 Algolia id 属性而不是 Name Atributre
- 来自 jsp 和 javascript 中的请求属性的对象索引数组
- 当对服务器的 ajax 请求失败时如何使用 defaults 属性
- 从数据属性动态获取 JQuery Ajax 请求的 URL
- Javascript/JQuery:设置一个请求属性
- 在JavaScript中获取请求属性
- 覆盖自动计算的TileWMS请求属性在开放层3
- 检查是否使用jQuery设置了请求属性
- jQuery JavaScript请求属性
- 通过请求属性访问存储在var中的列表元素