Select Model , OptionModel
--------------------------------------------------
Select 구현방법
--------------------------------------------------
<t:select t:value="" t:model="" t:encoder=""/>
-t:encoder 는 옵션임. (EnumSelectModel을 사용시에는 Encoder필요없음)
0) ValueEncoder
- 실제 UI에서 나타낼 Client 값과 객체를 지정한다.
*EnumSelectModel 사용시에는 Encoder필요없음.
- 생상자를 통해 Datasource를 받는다.
- ValueEncoder<V>(Inteface)를 구현한다.
- public String toClient(Person value) : UI에 나타낼 값이라 해야하나?
- public Person toValue(String clientValue) : UI에 나타낼 Key값을 이용해 객체를 가져옴.
*UI리프레쉬 댈때마다 DB/Java에서 목록을 가져와야한다는 말인데..
*보통 Select 목록을 자바에 구현하거나, DB에 구현해야한다는말인가??
1) OptionModel 구현하기.
- Select Option에 대한 구현을 의미한다.
- OptionModel(interface)를 구현한다.
- 생성자를 통해 값(or Object)를 받고,
- public String getLabel()
- public Object getValue()
- public boolean isDisabled() : 보통 false
- public Map<String, String> getAttributes() : 보통 null
2) SelectModel 구현하기.
- AbstractSelectModel 상속받아 구현.
- 생성자를 통해 List<V> 를 받는다.
- public List<OptionGroupModel> getOptionGroups() : 보통 null.
- public List<OptionModel> getOptions() : List<V>를 List<OptionModel>로 변형하여 return한다.
*문득 드는 생각
-> Java 위주의 Tapestry 컴포넌트 개발이냐.
-> Javascript를 통한 컴포넌트 개발이냐.
두가지 방법의 장점과 단점을 파악해야할듯.
두가지 방법의 조화할 수 있는지 파악.
*무조건 Tapestry 컴포넌트로만 가도, 너무 UI가 구리고,
Javscript로 하기에는 소스가 너무 더러움. 관리가 안됨.
*기본(Pure) HTML을 태피스트리를 쓰고, Javascript를 덧입히는 방법으로 사용해야할듯.
즉, Javascript Component 사용법을 익혀야함,
*일단 validataion은 나중에,,
'Workspace > Web Dev' 카테고리의 다른 글
[Tapestry 5] Select Component - CustomSelectModel(2) (0) | 2013.11.04 |
---|---|
[Tapestry 5] Select Component - EnumSelectModel(1) (0) | 2013.11.04 |
[Tapestry5- Building Web Application] Chapter4장(기본컴포넌트)까지 정리. (0) | 2013.10.10 |
JDBC 사용시 - Dynamic컬럼명 구하기, 컬럼갯수 확인하기. (0) | 2013.09.24 |
Spring JSON View 구현하기(2) - @ResponseBody (0) | 2013.09.24 |