2013-07-09 27 views
0

我需要的僅僅是JSTL(或JSP)中的<script>location.href</script>值。需要JSTL(或JSP)中的`location.href`值

與網頁瀏覽器顯示一樣。但這並不容易。

我使用Tiles2request.getRequestURL()節目,如/WEB-INF/tiles/base.jsp...

tiles基地JSP的位置,我發現<%=request.getAttribute("javax.servlet.forward.request_uri")%>顯示我想要的東西。 https://stackoverflow.com/a/11387378/411615

但仍然不夠。它沒有顯示協議和域名。 我再次搜索。

http://${pageContext.request.localName}<%=request.getAttribute("javax.servlet.forward.request_uri")%>

它看起來髒髒的,不包含參數。我會這樣做...

Map<String, String[]> parameters = request.getParameterMap(); 
    for(String parameter : parameters.keySet()) { 
     ... 
    } 

但它很奇怪。在JavaScript中非常簡單,但在JSP中非常困難。

有沒有什麼整潔的方法?

我的環境是Spring 3.1, Tiles2

回答

2

Request對象是您在服務器端獲得的所有內容。沒有辦法知道原始href鏈接中的內容,因爲瀏覽器會將完全組裝的URL發送到服務器。你的選擇是1)在客戶端使用一些JavaScript欺騙來發送原始的href作爲參數或頭部值,或者2)在Request對象中查找以獲得你所需要的。 2)更好。