카테고리 없음

0224 사이트 메쉬

logloglog 2021. 2. 24. 17:26

사이트메쉬는 기본이 필터임

필터는? 매번그래야하는것

 

타일즈는 필터가 아니고 오브젝트형임

 

자바는 거의없음

그냥 계속 xml 만 나옴

어려운게 아니구 외울게많아짐

외우는게아니고 외워지는거임

 

 

로그인화면이랑 인덱스는 제외해야함 우리는

webinf에서 사이트매쉬 xml이랑 데코어쩌구 xml 찾음

 

html파서는 탬플릿디자인을 입혀주는녀석임

 

데코레이터xml에 뭐는 제외할거고 이런게 들어잇음

 

템플릿을 어느유알엘에 적용하고 어느유알엘은 제외할건지에 대한 내용임

탬플릿으로 사용할 jsp만 만들어주고 어떤유알엘에 적용할건지 어떤유알엘은 제외할건지만 주면 된다.

 

지난번에 application context  만든것처럼 만들면 끝임

탬플릿의 구성도 태그라이브러리인 데코레이터를 지원해주기떄문에

우리는 해당탬플릿의 보여주고자하는 내용의 헤드/타이틀/바디를 심으면 여기에 담겨서 나간다

 

 

만약 내가 main jsp를 포워드햇다면

mainjsp의 헤더가

main jsp 의 바디가

여기에

 

이런식임

 

탬플릿jsp를 만들떄는 어떻게?

디렉티브인클루드헤더, 디렉티브인클루드푸터...

 

 

직접해보기


mvnrepository.com/artifact/opensymphony/sitemesh/2.4.2

 

Maven Repository: opensymphony » sitemesh » 2.4.2

SiteMesh is a web-page layout and decoration framework and web- application integration framework to aid in creating large sites consisting of many pages for which a consistent look/feel, navigation and layout scheme is required. opensymphony sitemesh 2.4.

mvnrepository.com

 

sitemesh-2.4.2.jar
0.17MB

 

 

lib에 넣고

 

 

필터에 건다

web.xml

  <filter>
  	<filter-name>sitemesh</filter-name>
  	<filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
  </filter>
	<filter-mapping>
		<filter-name>sitemesh</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

웹inf밑에

sitemesh.xml 만들기

 

<?xml version="1.0" encoding="UTF-8"?>


<sitemesh>
	<property name="decorators-file" value="/WEB-INF/decorators.xml" />
	<excludes file="${decorators-file}" />

	<page-parsers>
		<parser content-type="text/html"
			class="com.opensymphony.module.sitemesh.parser.HTMLPageParser" />
	</page-parsers>

	<decorator-mappers>
		<mapper
			class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
			<param name="config" value="${decorators-file}" />
		</mapper>
	</decorator-mappers>

</sitemesh> 

사이트매쉬필터가 이걸 읽으면서

decorators.xml을 끌어땡기고 configdemapperConfigDecoratorMapper에게 넘긴다

그담부턴 파서HTMLPageParser가 함

 

/board/replies/엿음

 

<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/views/decorators">
	<decorator name="main" page="main_decorator.jsp">
		<pattern>/index.do*</pattern>
	</decorator>
	
	<decorator name="openWindow" page="open_decorator.jsp">
		<pattern>/**/*</pattern>
		<pattern>/main.do</pattern>
	</decorator>
	
	<excludes>
		<pattern>/common/login*</pattern>
		<pattern>/board/replies/*</pattern>
		<pattern>/resources/*</pattern>
	</excludes>
</decorators>

 

main_decorator.jsp만들자

 

이녀석이 탬플릿역할을하고

index.do일떄 띄워짐

 

뭐가중복될까?

아이프레임 빼고 전부임

indexpage.jsp의 내용을

아이프레임만 빼고 다 긁어와야한단소리임

 

 

 

 

 

 

이런 마크업은 이제 구분자에 불과하기떄문에 indexpage와 중복되어도 상관없음

 

 

지금부터는 바디태그를 구분자로 반드시넣어준다.

indexpage

그래서 $를 못쓰게됨 쓰면 언디파인드 터짐

제이쿼리라이브러리가 밑에잇어서!

그래서 펑션콜을 써야됨

 

 

이게

위로올라갓다

이게 indexpage jap의 내용이고 나머지는 decorator의거임

이제 $ 선택자해서 온ㅌ클릭못함

펑션콜밖에못씀

 

그럼 순서바꾸면 되지않나

안됨!!~!~!

그걸 밑에두는이유가잇음

그게잘못되머ㅕㄴ 페이지하나도안나오고 위로 올리면 속도도 저하되기때문에

 

암튼 이벤트는 펑션콜로한다!!!기억