2013-04-08 33 views
4

在一個JSP頁面中,我包括另一個JSP頁面,並傳遞一個參數:使用OGNL得到參數

<jsp:include page="/WEB-INF/somepage.jsp" flush="true"> 
    <jsp:param name="location" value="menu"/> 
</jsp:include> 

在被包含的頁面,我可以使用EL訪問參數。這工作:

${param.location} 

但我不能使用OGNL等價物獲得相同的參數。這些工作都沒有:

#parameters.location 
#parameters['location'] 
%{#parameters.location} 
%{#parameters['location']} 

我知道有一個變通使用<s:set var="location">${param.location}</s:set><c:set var="location">${param.location}</c:set>,然後使用OGNL:#location但我想避免這種情況。我也不想使用scriptlets。

+0

你是如何*實際上*嘗試使用OGNL? – 2013-04-08 20:22:39

+0

@dave_newton我需要在很多地方使用它,例如:''但即使我試圖顯示參數值在JSP上它不起作用。 – Tanvir 2013-04-08 20:42:22

+0

在結果中設置參數。 – 2013-04-08 21:22:19

回答

2

與包含標記等效的Struts2是<s:include這就是您應該在代碼中替換的內容,然後應用<s:param來對其進行參數化。

<s:include value="/WEB-INF/somepage.jsp"> 
    <s:param name="location" value="menu"/> 
</s:include> 

之後,您可以使用OGNL。

+0

就行了。它適用於我的同事。我可能在某處做錯了事。無論如何,感謝您的幫助! – Tanvir 2013-04-10 21:34:16

+0

以及如何閱讀它:?#parameters.location #parameters ['location']%{#parameters.location}或%{#parameters ['location']}? – 2016-06-22 14:49:50