카테고리 없음

websquare 고급

신방동불주먹 2023. 4. 13. 09:05
반응형

<환경설정>

-- 클라이언트 설정 (config.xml)
프로그램 스튜디오 디자인:
PROPERTISE - WEBSQUER - ENGINE configuration  에서 CSS 확인 해야한다. -> 웹브라우저와는 상관없음. 
브라우저 디자인 설정:
리소스 config.xml
earlyimport 는 두군데를 맞춰줘야 한다. 
sp4 개발가이드 config.xml 참고
window - engine modification 에서 전역 설정 가능 -> 없음

-- 서버설정 (websquare.xml)
websquare.xml
sql4개발가이드 참고 
서버 - wrm 더블클릭 - open lunch configuration -> vm arguments 마지막줄 : dwebsquare_home 으로 설정되어있음.websqruar_home 경로 확인이 가능하다. 

--websuqre - jsp (popup.jsp, websquare.jsp)
모든 페이지는 websquare.xml을 사용.  서블릿 형태로 변환해서 전역 변수등을 담아서 관리가 가능하다. 
websquare.html을 변형해서 url 길이를 줄일수도 있다. 
일반화면 xml을 웹브라우저를 통해 html로 변환해준다. 
팝업화면 xml을 html 형태로 바꿔주는 것. 

--test.xml 
source -> lazy="false" -> 페이지 로드순서에 관한 설정. (기본 설정으로 들어가있다)
websquare5부터 디자인부터 그리지 않음. 
script탭을 읽기도 전에 화면을 그려버리기 때문에 laze=false를 선언. 
그러면 script를 먼저 읽은 후에 (이벤트나 함수를실행) 후에 
이미 만들어진 함수, 속성을 적용하여 디자인을 그릴수 있다. 

project - propertises- websquear- design editer - 다섯번째 체크되어있으면 안된다. 
USE JAVASCRIPT SECTION LASY LODINGFLAG 체크 풀어야 lazy false 부분이 자동으로 생성. 

로딩순서:
scirpt읽고 - 화면그리기 - 속성 적용 - onpageload 순서 (사실상 init 함수 기능)
하지만 scwin.init 으로 함수를 실행시켜버리면 없는 것에 값을 넣을 수 없기 때문에 함수를 만들어도 상관없지만
init()으로 실행 해버리면 안되고 onpage 안에 넣어서 관리해주어야 함. 

<config.xml을 이용한 공통적인 설정>
config.xml 에서 innit scritp 모든 페이지에 onpage가 로딩되기 직전에 공통적으로 실행되어야 하는것. 그이후 공통은 post scritp 로 설정. 
순서:
init script -> onpage -> postscript

<wframe의 scope속성> 
IFrame 안쓰고 Wframe을 사용. 
jsp의 page include 와 같은 개념. 
wframe의 scope는 config.xml 에 기본 true로 적용되어있음.  -> 렌더링 시 같은 input id 를 알아서 바꿔주는 속성 
single page로 구성이 가능해졌다. 성능, 안정성 up

tab -> tabcontrol로 구성 

자신의요소 : id.getvalue
자식요소 접근  :getWindow() api를 사용.
부모페이지 접근 : $p.parent().id.getvalue()사용 ($p.parent()나보다 한단계위)
최상단으로 접근: $p.top().id.getValue() / $p.main() 비슷한 개념

tab도 동일하게 적용 가능하다. (탭의 인덱스로 접근)
ex) t1.getWindow(1).ipt1.getValue();
getSeletedTabIndex() -> 선택된 탭으로 접근

최상단의 데이터맵을 사용하고 싶을 때 : 부모페이지 데이터 객체를 바라본다. Alias DataMap을 사용.
항목 추가 삭제가 불가능하다. 
studio src : 부모페이지
scope: 바라보고싶은 데이터 객체 (부모페이제의 소유표시 상대경로로 표시 ex)../dma_dataMap1 )../1단계 ../../2단계

config, propertise 맞춰서 사용. 
<spa>
<onpageunload value=""/>
<variable clone="com" value="scwin"/>
<scriptCache value="true"/>
<autoReload count="50" value="true"/>
</spa>


===================================3시간====================================

<spring과 연동된 부분>
공통 개발자 가이드_20210616 word 파일
1.4 개발환경과 같을 필요는 없음

2. 프레임워크 연계 <spring>
-message converter를 이용한 연계

----> 스프링 기능
-접근할 Resource 매핑 설정 : servlet-context.xml
-로그인 여부를 체크하기 위한 Interceptor : 모든 트랜젝션이 발생하기 직전 먼저 수행.
ex) 세션 유무 확인 (sessionCheckIntercepter.java 참고)


-jackson converter를 이용하기 위한 부분 (message converter를 이용하기 위함)

<beans:bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" p:order="1">
<beans:property name="messageConverters">
<beans:list>
<beans:ref bean="mappingJackson2HttpMessageConverter" />
</beans:list>
</beans:property>
</beans:bean>

<beans:bean id="mappingJackson2HttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<beans:property name="supportedMediaTypes">
<beans:list>
<beans:value>application/json;charset=UTF-8</beans:value>
</beans:list>
</beans:property>

- jackson json library 파일 세개 필요하다. 
pom.xml jar 추가
core, anntation, databind 

---------화면과 servlet 과의 연계 end

- 화면 url 축소시키기
1) root 로 호출 
common.controller / 
initController ("/" 루트로 들어오는 부분에서 getLoginPage로 담아준다)
- getLoginPage에서도 세션먼저 체크
2) util 패키지의 pageURLUtil 에서 getLoginpage -> 프로퍼티를 이용
3) config에서 websquareConfig.properties에서 이동될 페이지가 정의되어있음.
다시 결국 3번을 얻어서 pageURLUtil을 통해 movePage에 담아 websquare.jsp로 이동
 websquareConfig.properties : w5xml.main.win=/cm/main/index_windowContainer.xml
4) 내가 움직일 경로까지 받아서 처리

servlet-context.xml에 정의된 WEB-INF/views 찾아 간다. (/websquare/websquare)  
wq(엔진) 


===================================4시간====================================

코드관리~프로그램관리 :  두개의 그리드뷰
프로그램관리 : drilldown 
릴리즈관리 : 기본적 마스터 디테일 구조 그리드뷰, 테이블 레이아웃 

드릴다운 형태의 인덱스 구하는 API : getRealRowIndex() 펼쳐진 상태를 기준으로 인덱스 반환
getDisplayRowIndex() : 보여지는 인덱스 

인사- 사원관리 : layerpopup 예시 확인가능

공통 관리 부분(전체페이지 전역자원)
<engine>
<module src="/cm/js/commonGlobal.js"/>
<module src="/cm/js/commonScope.js"/>
</engine>


다운로드 부분 다시 듣기 


**다운로드
-엑셀 전체 데이터 다운로드 :  Provider
downloadGridViewExcel에 useProvider = true 옵션
- splitProvide -> commonScope => commonGlobal.js => iexternalSplitProvider 
- 최대 다운로드 가능 건수 -> websquare.xml 에 정의 (default 50만건)

**대량데이터 조회 

===================================5시간====================================

샘플화면 
-Display Format : 포맷 값 적용시키는 방법
Common_Validation.xml
validateGridView()
validateGroup()
->구현형태 commonScope.js

5.서버 다국어 적용
-config.xml
<pageURLPrefix> getI18NUrl(global에 정의) -> 디렉토리 경로를 바꿔줌


- websquard.xml 
: i18N을 통해 기본디렉토리, 언어팩 위치를 관리한다. 
<baseDir value>

- WINDOW SHOWBIEW SERVER LOCALE 을 통해 enproperties/ko_propertises를 확인할 수 있다

6. 공통코드 
- CommonCode.xml 
setCommonCode()
commonScope-> json array형태로 받음

반응형