본문 바로가기

Frontend/jQuery & JSTL

[Tile&JSP] Template 및 Tile에 Custom한 페이지 적용

반응형

기존에 국문으로만 작성된 페이지를 영문 페이지도 생성하는 작업을 하려고 한다.

데이터 외에 메뉴 등 HardCording된 Text들만 먼저 수정해놓으려고 했다. ( 전체적인 컨셉 파악용)

그러면서 페이지 구성을 뜯어보게 되어 기록에 남기려고 한다. 예시로 작성하는 코드들이라 참고만 하기 바란다.

 

먼저 Controller에서 페이지 불러오게 한다.

// indexController.java
/**
* 영문 메인
* @param locale
* @param model
* @return
* @throws Exception 
*/
	
@RequestMapping(value = "/en")
public String indexEng(HttpServletRequest request,
	HttpServletResponse response, 
	@RequestParam HashMap hMap, 
	Model model,SearchCriteria cri,
	HttpSession session) throws IOException, Exception {
		
	String returnPage;
	returnPage = ".eng.main.tiles.index";
	return returnPage;
}

 

JSP파일을 생성한다.

body에 적용될 mainEng.jsp

header에 적용될 mainEngHeader.jsp

top에 적용될 mainEngTop.jsp

footer에 적용될 mainEngFooter.jsp

을 경로에 맞게 생성한다.

 

타일을 적용한다.

<!-- tiles-definition.xml -->

...

<!-- Eng Main Template with left menu -->
<definition name="engMainTemplate" template="/WEB-INF/jsp/tiles/mainTemplate.jsp" preparer="menuPreparer" >
	<put-attribute name="header" value="/WEB-INF/jsp/tiles/mainEngHeader.jsp" />
	<put-attribute name="top" value="/WEB-INF/jsp/tiles/mainEngTop.jsp" />
	<put-attribute name="footer" value="/WEB-INF/jsp/tiles/mainEngFooter.jsp" />
</definition>
	
...
    
<!-- ENG Site main--> 	
<!-- 이쪽으로 와서 body에 mainEng.jsp를 가져오면서 그 외의 요소들은 engMainTemplate를 따른다 -->
<definition name=".eng.main.tiles.index" extends="engMainTemplate">
	<put-attribute name="body" value="/WEB-INF/jsp/mainEng.jsp" />
</definition>

...

<!-- Eng Main Template with left menu -->
<definition name="engMainCompanyTemplate" template="/WEB-INF/jsp/tiles/mainSubTemplate.jsp" preparer="menuPreparer" >
	<put-attribute name="header" value="/WEB-INF/jsp/tiles/mainSubHeader.jsp" />
	<put-attribute name="top" value="/WEB-INF/jsp/tiles/mainSubTop.jsp" />
	<put-attribute name="navigation" value="/WEB-INF/jsp/tiles/companyNav.jsp" />
	<put-attribute name="footer" value="/WEB-INF/jsp/tiles/mainSubFooter.jsp" />
</definition>
	
...
    
<!-- ENG main service 페이지 -->
<!-- 그 외 링크에 대한 template적용 -->
<definition name="/en/main/company/*" extends="mainCompanyTemplate">
	<put-attribute name="body" value="/WEB-INF/jsp/main/en/company/{1}.jsp" />
</definition>
...
<!-- Eng 페이지 설정 끝 -->
반응형

'Frontend > jQuery & JSTL' 카테고리의 다른 글

[jQuery] 회고 7/8  (0) 2024.07.08
[jQuery] 검색시 enter입력 방법  (0) 2024.06.04
[JSTL] ajax 사용시 변수 업데이트  (0) 2024.04.29
[JSTL] 옵션값 선택  (0) 2024.04.24
[jQuery] 문자 변환  (0) 2024.03.18