刷新添加额外参数

发布于 2024-10-05 04:48:50 字数 528 浏览 1 评论 0原文

我需要刷新网页,但在刷新请求中我想添加一个额外的参数,所以我有类似的内容:

<c:url value="currentUrl" var="newUrl">
    <c:param name="newParam" value="newValue"/>
</c:url>
<a href="${newUrl}">Refresh</a>

如何获取带有参数的 currentUrl (例如 http://localhost:8080/mywebapp?param1=var1&param2=var2)来自 jsp 隐式对象的请求。 我虽然有类似 ${pageContext.request.requestURL} 的内容,但这返回的是 jsp 的 url,而不是请求 url。

谢谢

I need to refresh the webpage, but in the refresh request I want to add an extra parameter, so I have though in something like:

<c:url value="currentUrl" var="newUrl">
    <c:param name="newParam" value="newValue"/>
</c:url>
<a href="${newUrl}">Refresh</a>

How can I get the currentUrl with the params (for instance http://localhost:8080/mywebapp?param1=var1¶m2=var2) of the request from the implicit objects of the jsp.
I have though in something like ${pageContext.request.requestURL}, but this returns the url of the jsp, not the request url.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彼岸花ソ最美的依靠 2024-10-12 04:48:50

如果JSP已经被转发,则可以通过 ${requestScope['javax.servlet.forward.request_uri']} 获取原始请求URL,通过以下方式获取原始请求查询字符串:
${requestScope['javax.servlet.forward.query_string']}

顺便说一下,您可以在 此处找到所有这些“隐藏”转发属性的概述此处

If the JSP has been forwarded, you can get the original request URL by ${requestScope['javax.servlet.forward.request_uri']} and the original request query string by
${requestScope['javax.servlet.forward.query_string']}.

You can by the way find an overview of all those "hidden" forward attributes here and here.

寄离 2024-10-12 04:48:50

基于BalusC的回答

你可以尝试这两个,

${requestScope['javax.servlet.forward.request_uri']}
${requestScope['javax.servlet.forward.query_string']}

JavaScript Approach

你指的是地址栏中的URL吗?如果是这种情况,您可以编写一个 JavaScript 函数来获取参数,然后修改相关的 href

例如,

<a id="refresh" href="${newUrl}">Refresh</a>
...

var url = window.location.href;
url += url.split("?").length > 1 ? "&newParam=value" : "?newParam=value";
document.getElementById("refresh").href = url;

如果您使用 jQuery 或 PrototypeJS(如 JavaScript 框架),它会短得多。

Based on BalusC's answer

You can try these two,

${requestScope['javax.servlet.forward.request_uri']}
${requestScope['javax.servlet.forward.query_string']}

JavaScript Approach

Do you mean the URL in address bar? If that’s the case you can write a JavaScript function to get the parameters and then modify your href in question.

For example,

<a id="refresh" href="${newUrl}">Refresh</a>
...

var url = window.location.href;
url += url.split("?").length > 1 ? "&newParam=value" : "?newParam=value";
document.getElementById("refresh").href = url;

It would much shorter, if you are using jQuery or PrototypeJS like JavaScript framework.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文