2010-12-20 3 views
0

최신 Liferay Portlet 또는이 포틀릿에서 사용중인 JSP에 문제가 있습니다. 삭제 버튼이있는 페이지에 표시된 문자열이 포함 된 문자열 배열을 사용하고 있습니다. 이 버튼들 각각은 actionURL을 호출하여 선택된 데이터를 다른 함수에 제출합니다. 는 어쩌면 난 그냥 내 예제 코드를보고 수행 할 작업을 이해하기 쉽게 다음 actionURL에서 VAR-속성은 문자열이어야한다 : 어쩌면 당신은 이미 내 문제가 무엇인지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> 

나타났습니다. 이것이이 예가 효과가없는 이유입니다. 내 질문은 지금 : $ name 변수를 동적으로 캐스팅하여 int를 actionURL로 설정 한 다음 나중에 아이콘으로 호출 할 수 있습니까?

감사합니다.

+1

위의 예나 실제 코드입니까? 'items = "<%=myNames%>"는'c : forEach'에서 작동하지 않습니다. 기본적으로'List '이나'String []'과 같이'String.valueOf (myNames)'를'items' 속성에 넘겨 주므로'c : forEach'가 반복적으로 반복 할 수 없습니다 . EL과 스크립틀릿을 섞지 마십시오. EL 만 사용하십시오. – BalusC

+0

글쎄, 올바르게 작동하고 예상대로 표시되기 때문에이 기능이 작동하지 않는다는 것을 알고 있습니다. ;) 그리고 Liferay에서 EL만으로 actionURL을 정의하는 대안을 모르겠습니다. – Bob

답변

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> 

이 기능이 작동합니까?

관련 문제