html
  • spring
  • jsp
  • spring-mvc
  • jstl
  • 2013-08-16 4 views 0 likes 
    0

    JSTL에서 html 요소를 조건부로 래핑해야합니다.JSTL에서 조건부로 html 요소 래핑

    예를 들어 텍스트의 일부를 아래 조건과 같은 조건에 따라 링크로 변환해야합니다.

    <c:if test="${not empty link}"> 
        <a href='${link)" target="_blank"> 
    </c:if> 
        ${value} 
    <c:if test="${not empty value.link}"> 
        </a> 
    </c:if> 
    

    분명히 위 코드는 유효하지 않습니다. 나는 이것을 실제로하는 깔끔한 방법을 찾고있다.

    <c:wrap_if element="a" href="${link}" target="_blank"> 
        ${value} 
    </c:wrap_if> 
    

    이미 사용 가능한 태그가 있습니까? 나 자신을 써야 하나? 아니면 더 좋은 방법으로 이것을 할 수 있을까요?

    +0

    왜 유효한 코드가 아니다? 두 번째'not empty value.link'를'not empty link'로만 변경하십시오. – Gunslinger

    +0

    유효한 xml이 아니므로 내 코드가 유효하지 않습니다. value.link를 사용하고 있기 때문에가 아닙니다. –

    +0

    나는 최적의 솔루션을 이미 사용하고 있다고 생각합니다. – Gunslinger

    답변

    1

    당신은 같은 구조로 작업을 수행 할 수 있습니다

    <c:choose> 
        <c:when test="${not empty link}"> 
         <a href="${link}" target="_blank">${value}</a> 
        </c:when> 
        <c:otherwise> 
         ${value} 
        </c:otherwise> 
    </c:choose> 
    
    +1

    나는 한 번 이상 가치를 산출하는 논리를 반복해야하기 때문에이 접근법에 만족하지 않습니다. $ {value}가 그렇게 간단하지 않다면 정말 고통 스러울 것입니다. –

    +0

    단순하지 않은 $ {value}가있는 경우 전에 계산하여 변수로 설정할 수 있습니다. . – yname

    +0

    아마도이 경우 값으로 범위를 생성하는 것이 좋습니다. 그리고 $ {empty link}가 span에 특별한 class를 할당하면. 그런 다음 해당 클래스의 범위를 검사하고 "a"요소로 래핑하는 작은 jquery 코드를 작성하십시오 – yname

    0

    당신이이 사용할 수 있습니다 -

    <c:set var="myHtml" value="${value}" /> 
        <c:if test="${not empty link}"> 
         <c:set var="myHtml" value="<a href='${link)' target='_blank'>${value}</a>" /> 
        </c:if> 
        ${myHtml} 
    
    관련 문제