2011-08-30 3 views
0

내가 JSF 2.0 (JEE6, 글래스 피시 3.1)를 사용하고 있는데 이러한 문제에 붙어 :시간 바인딩 방법 : 사용자 지정 개체에 InputText]를 값을

내 시간을 바인딩 할

: inputTexts 값을뿐 아니라 단순한 문자열로 또는 정수 그러나 나의 목적 : 관리 빈에서

public class IDX { 

int d; 
int k; 
int w; 

IDX(int d, int k, int w) { 
    this.d = d; 
    this.k = k; 
    this.w = w; 
} 

//getters&setters 
... 

내가 가지고는 HashMap으로 구성되어

private Map<IDX, Object> values; //with getters&setters 

. 이 같은 객체 IDX, 뭔가 InputText]를 값 : 지금은 시간을 바인딩 내 JSF 페이지에서 원하는 분명히 좋아 보이지 않습니다

.... 
<h:form> 
    .... 
    <h:inputText value="#{myBean.values[1,1,1]}" /> 
    .... 
</h:form> 
.... 

합니다. 어떤 아이디어? 가능한가 또는 Strings 또는 Integers 만 사용해야합니까?

+0

당신은 당신의 개체에 대한 변환이 필요합니다. –

답변

0

당신이 h:inputText로하고 Idx 인스턴스를 결합하려는 경우 당신은 거이다 (그리고)에서 String으로하고 Idx의 인스턴스를 변환하고 Idx위한 컨버터를 필요

@ManagedBean 
public class MyBean { 
    private Idx idx; //getter/setter 

follows-로 관리 빈을 보일 것입니다.

@FacesConverter(forClass=Idx.class) 
public class IdxConverter implements Converter { 
    public String getAsString(...//provide implementation 
    public Object getAsObject(...//provide implementation 

그리고 페이지에 - - 뭔가 다음과 같이

<h:inputText value="#{myBean.idx}"/> 
+0

좋아,하지만 다른 idxes와 함께 많은 inputTexts 있고 좋은 방법으로 그것을 원하는 모든지도 에 바인딩. 내가 찾은 한 가지 방법은 내 IDX를 Map의 String으로 변경 한 다음이 관리되는 bean에서이 문자열을 IDX로 변환하는 것입니다. – drops

+0

기능 요구 사항은 무엇입니까? 무슨 말을하든, 내가 알기로는 당신이 관리 빈의 맵에있는 각 키에 대해'h : inputText'를 시도하고 있는데 지금까지 나에게 이해가되지 않는다는 것입니다. –

+0

나는 첫 번째 코드 샘플에서와 같이 1,1,1 또는 1,1,2 등처럼 보이는 사용자 정의 키에 inputTextes를 바인딩하려고합니다. 유일한 요구 사항은 jsf 페이지로 구현할 수 있도록 템플릿을 준비했기 때문입니다. 그러나 나는 그것들을 변환하는 것이 더 쉬울 것이라고 생각한다. (어쨌든 그것을 할 필요가있다.) 단순한 키를 대신 사용할 것이다. 단점 만 - 나중에 읽고 관리하기가 더 어려울 것입니다. 어쨌든 고마워, 너 나 많이 도와 줬어! – drops

관련 문제