Notice
Recent Comments
행복한 아빠
Struts 태그에서 자동생성되는 TD 태그 없애기 본문
동기
<tr>
<td><span id="re">+</span> 회원명</td>
<td><s:textfield name="name" size="20" maxlength="10"/></td>
</tr>
<td><span id="re">+</span> 회원명</td>
<td><s:textfield name="name" size="20" maxlength="10"/></td>
</tr>
테이블이 깨지는 현상이 목격되었습니다. 브라우저 소스 보기를 통해 렌더링된 결과를 살펴보았습니다.
<tr>
<td><span id="re">+</span> 회원명</td>
<td><tr>
<td class="tdLabel"></td>
<td
><input type="text" name="name" size="20" maxlength="10" value="" id="save_name"/></td>
</tr>
</td>
</tr>
<td><span id="re">+</span> 회원명</td>
<td><tr>
<td class="tdLabel"></td>
<td
><input type="text" name="name" size="20" maxlength="10" value="" id="save_name"/></td>
</tr>
</td>
</tr>
스트러츠2의 form 관련 태그들은 친절하게 알아서 자동으로 <table>관련 태그들을 렌더링해 줍니다(이 때 tag의 label속성을 사용하면 태그의 제목(레이블)까지 꾸며서 출력합니다). 그러나 이건 우리가 원하는 결과가 아니었습니다.
이런 자동 태그 렌더링은 다음과 같이 간단히 해결할 수 있습니다.
해결방법
struts2 태그들은 태그를 렌더링할 때 특정 테마를 이용하여 html 태그를 생성합니다. 다음과 같이 simple 테마를 사용하면 별다른 추가 태그 없이 해당 input 태그(select나 다른 것도 동일)만 출력합니다.
<tr>
<td><span id="re">+</span> 회원명</td>
<td><s:textfield name="name" size="20" maxlength="10" theme="simple"/></td>
</tr>
원하는 데로 아래와 같이 렌더링됩니다.<td><span id="re">+</span> 회원명</td>
<td><s:textfield name="name" size="20" maxlength="10" theme="simple"/></td>
</tr>
<tr>
<td><span id="re">+</span> 회원명</td>
<td><input type="text" name="name" size="20" maxlength="10" value="" id="save_name"/></td>
</tr>
<td><span id="re">+</span> 회원명</td>
<td><input type="text" name="name" size="20" maxlength="10" value="" id="save_name"/></td>
</tr>
정리
물론 Strtus2 테마는 개발자가 고유의 것을 만들 수도 있으며 이 테마는 위와 같이 tag 렌더링 방법뿐만 아니라 스트러츠의 validation에서 렌더링하는 client side validation java script도 조정할 수 있습니다.
이를 잘만 활용한다면 일관성 있는 UI를 쉽게 만들 수도 있겠습니다. 이걸 잘 만들려면 UI 디자이너와 많이 논의할 필요가 있겠군요.
뭐 저도 theme을 만들어 본 적은 없고 문서만 읽었을 뿐 아는 지식이 별로 없어 더 이상 할 말은 없습니다. :)
'웹기술들' 카테고리의 다른 글
jQuery의 이벤트 ajax 핸들러에서의 scope 문제 해결책 (8) | 2011.07.19 |
---|---|
Java 웹애플리케이션에서 Flash scope 구현 - 메시지 출력 문제 (0) | 2011.06.23 |
Struts 태그에서 자동생성되는 TD 태그 없애기 (4) | 2010.03.22 |
스프링 프레임워크 3.0 GA 릴리즈 - 기능 요약 (0) | 2009.12.30 |
Flex에서 ExternalInterface 사용시 동기화 문제 (1) | 2009.12.23 |
Java로 엑셀 다운로그 구현하기 (1) | 2009.12.20 |
4 Comments
-
유리망치 2009.07.10 11:17 퍼가염 , 많은 도움됬습니다.
-
꼼즈 2010.04.06 23:32 스트러츠2를 쩜 써보니.. 쓸만하더이다.. 난두 잘 몰라서.. 이정도로 패쑤~~ ^^
-
석방이 2010.06.11 14:46 퍼가겠습니다~ 좋은 정보 감사합니다.
-
미나미 2011.04.07 15:38 자꾸 테이블이 왜 밀리나 계속 html 소스쪽만 봤는데, 스트럿츠가 너무 똑똑해서 벌어진 일이었군요 ^-^;; 감사합니다. ㅎ