2010-12-20 84 views
0

我對我最新的Liferay Portlet或我在此portlet中使用的JSP存在問題。 我正在使用一個字符串數組,其中包含使用刪除按鈕顯示在頁面上的字符串。每個按鈕都會調用一個actionURL將選定的數據提交給另一個函數。 也許它更容易明白我想通過看我的例子代碼做:如何在Liferay JSP中將JSTL變量轉換爲字符串?

<c:forEach var="name" items="<%=myNames %>">  
    <liferay-portlet:actionURL name="deleteName" var="${name}"> 
     <liferay-portlet:param name="myName" value="${name}" /> 
    </liferay-portlet:actionURL>  
    <c:out value="${name}" /> 
    <liferay-ui:icon-delete label="<%= true %>" url="${name}"/> 
</c:forEach> 

也許你已經注意到了我的問題是什麼:在actionURL了var屬性必須是一個字符串。這就是爲什麼這個例子不起作用。 我現在的問題是:我怎樣才能動態地將我的$ name變量設置爲int int actionURL,稍後再調用它的圖標?

謝謝。

+1

這是一個非常好的例子或* actual *代碼嗎? 'items =「<%=myNames%>」'不會在'c:forEach'中工作。基本上,你將'String.valueOf(myNames)'傳遞給'items'屬性,而不是一個完整的'List '或者'String []',所以'c:forEach'永遠不能遍歷它。不要將腳本與EL混合使用。只使用EL。 – BalusC 2010-12-20 21:23:25

+0

嗯,很高興知道這不起作用,因爲它顯示正確並且如預期的那樣。 ;)我不知道用EL來定義Liferay中的actionURL的替代方案。 – Bob 2010-12-20 21:38:16

回答

2
<% 
List<String> names = new ArrayList<String>(); 
names.add("me"); 
names.add("myself"); 
names.add("I"); 

pageContext.setAttribute("names", names); 
%> 

<c:forEach var="name" items="${names}"> 
    <portlet:actionURL var="deleteURL"> 
     <portlet:param name="myName" value="${name}" /> 
    </portlet:actionURL> 

    <liferay-ui:icon-delete label="<%= true %>" url="${deleteURL}"/> 
</c:forEach> 

這是否適合您?