刷新添加额外参数

时间:2010-12-01 10:24:27

标签: java jsp servlets jstl

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

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

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

由于

2 个答案:

答案 0 :(得分:4)

如果已转发JSP,您可以通过${requestScope['javax.servlet.forward.request_uri']}获取原始请求URL,并按原样获取原始请求查询字符串 ${requestScope['javax.servlet.forward.query_string']}

您可以查看所有“隐藏”前向属性herehere的概述。

答案 1 :(得分:2)

基于BalusC's answer

你可以尝试这两个,

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

JavaScript方法

您的意思是地址栏中的网址吗?如果是这种情况,您可以编写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框架),它会短得多。