목록의 첫 번째 항목과 마지막 항목에 특수 클래스가 할당 된 JSP 파일이 있습니다.JSTL c : set 문에서 공백을 피하십시오.
이<c:set var="liclass">
<c:if test="${rowStatus.first}">first</c:if>
<c:if test="${rowStatus.last}"> last</c:if>
</c:set>
<%-- not very pretty --%>
<li<c:if test="${not empty liclass}"> class="${liclass}"</c:if>>
이 경우 문제는 경우에 하나 개의 결과 만있을 때,이다
는, 클래스가 (어떤 작품) '최초의 마지막'이되어야하지만, first [...] last
된다 : 나는 현재 그것에 대해 다음과 같은 비트를 사용 , 여기서 [...]는 SO가 제거하는 많은 공백을 나타냅니다.
<c:set>
은 사용 된 들여 쓰기로 인해 발생하는 공백을 사용하는 것처럼 보입니다. 그냥 공백없이 입력하여 해결할 수 있습니다 :
<c:set var="liclass"><c:if test="${rowStatus.first}">first</c:if><c:if test="${rowStatus.last}"> last</c:if></c:set>
그러나 나는 읽을 수있는 변형을 선호합니다. 또 다른 대안은 초과 공백을 제거하는 함수를 통해 결과를 가져 오는 것입니다.
질문 : 공백을 <c:set>
태그에서 이와 같이 설정하지 않도록하는 방법이나 기술이 있습니까?
아주 좋은 답변입니다. 감사합니다. EL 표현식에서 조건부 연산자 (삼항 연산자)를 알지 못했습니다. 그런 식으로 검색했지만 어디서나 찾을 수 없었습니다. JSP/JSTL 문서가 더 좋을 수 있습니다. 쓸모없는 계급에 관해서는 - 나는 신경 쓰지 만 D. Firebug로 코드를 살펴보면, 죽은 속성이 나를 겁나게 만듭니다. trimDirectiveWhitespaces 속성은 내가 알지 못했던 또 다른 것입니다.이 경우도 다른 프로젝트/케이스에서나 도움이 될 것입니다. 고마워요! – fwielstra