2010-12-01 1 views
6

나는 웹 페이지를 새로 고침 할 필요가 있지만, 리프레시 요구에 내가 추가 매개 변수를 추가 할, 그래서 내가 좋아하는 뭔가 생각이 :새로 고침 추가하는 추가 매개 변수

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

가 어떻게이 CURRENTURL를 얻을 수 있습니다 jsp의 암시 적 객체의 요청의 매개 변수 (예 : http://localhost:8080/mywebapp?param1=var1&param2=var2)을 사용합니다. 나는 $ {pageContext.request.requestURL}과 같은 것을 가지고 있지만 이것은 요청 URL이 아니라 jsp의 url을 반환한다.

감사

답변

4

JSP가 전달 된 경우 원래 요청 URL을 ${requestScope['javax.servlet.forward.request_uri']}, 원래 요청 쿼리 문자열을 ${requestScope['javax.servlet.forward.query_string']}까지 가져올 수 있습니다.

"숨겨진"앞으로 속성 herehere의 개요를 찾을 수 있습니다.

+0

@ 고마워요. 매개 변수가없는 URL을 가져 오지만 유용합니다. – Javi

+0

당신은 정말로 그것을 깊이 알고 있습니다. +1 –

+0

@Javi : 이것도 같이 해보세요. $ {requestScope [ 'javax.servlet.forward.query_string ']}' –

2

당신은

하면 주소 표시 줄에 URL을 의미합니까이 두,

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

자바 스크립트 접근을 시도 할 수 있습니다 BalusC's answer

을 바탕으로? 이 경우 매개 변수를 가져 오는 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를 사용하는 경우.

+0

그래, 나는 그것에 대해서 이미 고마워했다.하지만 jsp를 기반으로하는 솔루션이 더 깨끗할 것이라고 생각했다. 자바 스크립트에서 그것을 변경의 문제는 태그를 사용할 수 없다는 것입니다, 그래서 나는 수동으로 "?" 문자를 추가하여 "? newParam = value"또는 "& newParam = value"라는 URL에 params가 있는지 확인하십시오. URL에 깨끗한 방법으로 params를 추가 할 자바 스크립트가 있나요? – Javi

+0

@ Javi :'window.location.href + = window.location.href.split ("?"). 길이> 1입니까? "? newParam = value": "? newParam = value"' –

+0

그것이 효과적 일지 모르지만 나는 자바 스크립트없이 할 수 있다면 여전히 궁금하지만 어쨌든 고맙다. – Javi