728x90

<c:forEach var="itm" items="${lst}" varStatus="status">
<td id="dataNm_${status.count}" class="l">
<c:choose>
<c:when test="${fn:length(result.datanm) > 21}">
<c:out value="${fn:substring(result.datanm,0,20)}"/>....
</c:when>
<c:otherwise>
<c:out value="${result.datanm}"/>
</c:otherwise>
</c:choose>
</td>
</c:forEach>

c 태그를 쓰기위해서는 아래의 taglib를 추가해 주어야하고
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

글자를 자를때 쓰이는 fn 태그를 쓰려면 아래와같이 c 와 더불어 추가해주어야 한다
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

음... javascript로 하는 것이 쉽지 않다는 말을 드리고 싶습니다.

쉽게 해서 적용하셔도, 글자마다 자간간격이 일정하지가 않기 때문입니다.

실제 인터넷에 공개해둔 방법으로도 해결이 어려우실 겁니다.

사실 어느정도는 자간 길이를 맞추는 것은 가능합니다.

다만, 로직이 조금은 조잡한 부분이 있습니다.

실제 님께서 작성하시고 계신 웹페이지의 요소들의 관계를 하나하나 확인하고 다소 꽁수를 부려서 처리를 해야 하는 부분이 있기 때문에 어려운 부분입니다.


이런 것보다는 css를 활용하셔 보셨으면 좋겠습니다.
text-overflow:ellipsis; 라는 것이 있습니다.


웹브라우저 별로 다르니 확인을 해보시고요..
파이어폭스의 경우는 ellipsis.xml 이런 파일들을 인터넷에 검색해보시면 있습니다.


적용하시기 어렵더라도 해보셨으면 좋겠네요..
개발자는 고생 안하고 머리 안쓰고 살수는 없잖아요..^^;;

참고로 테이블에 TD와 같은 요소에 문자열을 출력하시는 식이라면..
높이와 같은 것을 overflow로 적용해야하는 일이 있을 때는 주의를 하셔야 합니다.

크로스브라우징이 안된답니다. TD에 직접 overflow를 적용하면 안되고 TD안에 DIV와 같은 태그로 감싸고 적용하셔야 하는 문제가 있습니다.

728x90

'JAVA' 카테고리의 다른 글

refresh 후 데이터 재전송 문제  (0) 2012.07.29
IBATIS 연산요소  (0) 2012.07.29
SQLMaps를 이용한 객체-관계 맵핑  (0) 2012.07.29
class 파일 디컴파일러  (0) 2012.07.29
maven install 중 mojo : annotations are not supported  (0) 2012.07.29

+ Recent posts