2012-08-30 4 views
1

동적 매개 변수가있는 파일을 포함하려고합니다. 매개 변수는 배열에서옵니다.<jsp:include> 태그 본문에 JSTL 태그를 사용할 수 있습니까?

이 내가 쓴 코드입니다 :

<jsp:include page="${jspName}"> 
    <c:if test="${paramList != null}"> 
     <c:forEach var="paramPair" items="${paramList().getList()}"> 
      <jsp:param name="${paramPair.getName()}" value="${paramPair.getValue()"/> 
     </c:forEach> 
    </c:if> 
</jsp:include> 

는하지만이 날 오류가 있습니다 :

Expecting "jsp:param" standard action with "name" and "value" attributes. 

누군가가 제가에서 파일을 동적으로 이러한 매개 변수를 보낼 수있는 방법을 알아내는 데 도움 주실를 매개 변수 배열?

답변

1

당신은 <jsp:include> 태그의 신체 내부에 표현 또는 JSTL 태그를 포함 할 수 없습니다, 당신은 단지 JSP documentation에 따라, 신체 내부 <jsp:param> 태그를 가질 수있다. 당신은 어떻게 ${jspName}으로 표시 JSP 파일 내부에 이러한 매개 변수를 얻을 생각합니까, 매개 변수 이름부터
또한 동적 :

는 귀하의 요구 사항에 더 나은,이 질문에 대답하십시오 이해하기?


아직도 여기 내 제안의 일부입니다 : 내가 디자인의 다시 생각을 제안하고 include 지시문 (<%@ include file="myJsp.jsp" %>) 대신 표준 작업을 사용 할
.

또는

당신이 <jsp:include>를 사용하려면

는 다음 중 하나를 수행 : 두 <jsp:param>

  • 패스; 하나는 쉼표로 구분 된 name 목록 (name1,name2,name3)이고 다른 항목은 쉼표로 구분 된 value 목록 (value1, value2, value3)입니다. 귀하의 inlcuded jsp ${jspName}에서 간단한 문자열 조작을 수행하여 이름과 값을 얻으십시오. [name1=value1,name2=value2,name3=value3] 같은 쉼표로 구분 nameValue리스트

    <c:set name="nameList" value="" /> 
    <c:set name="valueList" value="" /> 
    
    <c:if test="${paramList != null}"> 
        <c:forEach var="paramPair" items="${paramList().getList()}"> 
         <c:set name="nameList">${nameList},${paramPair.getName()},</c:set> 
         <c:set name="valueList">${valueList},${paramPair.getValue()},</c:set> 
        </c:forEach> 
    </c:if> 
    
    <jsp:include page="${jspName}"> 
        <jsp:param name="nameListToBePassed" value="${nameList}" /> 
        <jsp:param name="valueListToBePassed" value="${valueList}" /> 
    </jsp:include> 
    
  • 통과 한 <jsp:param>.

    <c:set name="nameValueList" value="" /> 
    
    <c:if test="${paramList != null}"> 
        <c:forEach var="paramPair" items="${paramList().getList()}"> 
         <c:set name="nameValueList">${nameValueList},${paramPair.getName()}=${paramPair.getValue()},</c:set> 
        </c:forEach> 
    </c:if> 
    
    <jsp:include page="${jspName}"> 
        <jsp:param name="nameValueListToBePassed" value="${nameValueList}" /> 
    </jsp:include> 
    

희망이 어떤 방향을 제공합니다.

관련 문제