2010-12-01 19 views
6

मैं वेबपेज ताज़ा करने की आवश्यकता है, लेकिन रीफ्रेश अनुरोध में मैं एक अतिरिक्त पैरामीटर जोड़ना चाहते हैं, तो मैं की तरह कुछ में हालांकि है:ताज़ा जोड़ने के लिए एक अतिरिक्त पैरामीटर

<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) के साथ। मेरे पास $ {pageContext.request.requestURL} की तरह कुछ है, लेकिन यह jsp का यूआरएल देता है, अनुरोध यूआरएल नहीं।

धन्यवाद

उत्तर

4

यदि जेएसपी अग्रेषित किया गया है, तो आप मूल अनुरोध URL ${requestScope['javax.servlet.forward.request_uri']} और मूल अनुरोध क्वेरी स्ट्रिंग ${requestScope['javax.servlet.forward.query_string']} द्वारा प्राप्त कर सकते हैं।

आप उन सभी "छिपे हुए" आगे की विशेषताओं here और here का अवलोकन ढूंढ सकते हैं।

+0

@ धन्यवाद, यह मुझे पैरा के बिना यूआरएल प्राप्त करने देता है, लेकिन यह उपयोगी है – Javi

+0

आप वास्तव में इसे गहराई से जानते हैं :) +1 –

+0

@Javi: इसके साथ प्रयास करें, '$ {requestScope ['javax.servlet.forward.query_string ']} ' –

2

BalusC's answer

के आधार पर आप इन दो,

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

जावास्क्रिप्ट दृष्टिकोण

आप पता बार में URL मतलब है की कोशिश कर सकते हैं? यदि ऐसा है तो आप पैरामीटर प्राप्त करने के लिए एक जावास्क्रिप्ट फ़ंक्शन लिख सकते हैं और फिर प्रश्न में अपने 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

हाँ, मैंने पहले ही इसके बारे में सोचा था, धन्यवाद, लेकिन मैंने सोचा कि जेएसपी पर आधारित समाधान क्लीनर होगा। जावास्क्रिप्ट में इसे बदलने की समस्या यह है कि मैं टैग का उपयोग नहीं कर सका, इसलिए मुझे मैन्युअल रूप से "?" यह देखने के लिए कि "urparam = value" या "और newParam = value" जोड़ने के लिए यूआरएल में पैराम हैं या नहीं। क्या जावास्क्रिप्ट में कुछ ऐसा है जो यूआरएल के साफ तरीके से पैरा जोड़ देगा? – Javi

+0

@Javi: 'window.location.href + = window.location.href.split ("? ") लंबाई> 1? "? नया पैराम = वैल्यू": "? नया पैराम = वैल्यू" ' –

+0

जो काम करेगा, हालांकि मैं अभी भी उत्सुक हूं अगर इसे जावास्क्रिप्ट के बिना किया जा सकता है, लेकिन वैसे भी धन्यवाद। – Javi

संबंधित मुद्दे