2013-12-16 36 views
1

我有一個頁面,是JSTL得到FORWARD_REQUEST_URI(表達式語言)

mypage/whatever.jsp 

但其實我是想顯示在瀏覽器的網址:

foo/bar/index.jsp 

我可以用得到它:

<%= request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI) %> 

但我需要將它設置爲一個變量使用jstl。

我嘗試:

<c:set var="topic" value="${request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI)}" /> 
<c:out value="${topic}" /> 
+0

你在哪裏使用RequestDispatcher.forward。 – Loc

+0

我在我的.jsp頁面上使用它... – redconservatory

回答

1

${request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI)}表示表達式語言(EL),作爲旨在不工作。首先,你不能簡單地把請求對象的方法調用。 request是隱式對象,.是正確的運算符,但getAttribute不被EL識別。其次,你不能從EL引用常量 - RequestDispatcher.FORWARD_REQUEST_URI不能被EL識別。如果您想使用EL,請嘗試${requestScope["javax.servlet.forward.request_uri"]}

+0

不是$ {request [「javax.servlet.forward.request_uri」]}。它必須是$ {requestScope [「javax.servlet.forward.request_uri」]} – Loc

+0

是的,你是對的,謝謝。 – Kojotak

0
<c:set var="myString" value="${requestScope['javax.servlet.forward.request_uri']}"/> 
+1

其他方法可以做同樣的事情