Как связать значение h: inputText с пользовательским объектом - PullRequest
0 голосов
/ 30 августа 2011

Я использую JSF 2.0 (JEE6, Glassfish 3.1) и застрял с такой проблемой:

Я хочу связать свои значения h: 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
...

В управляемом бине у меня есть:

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

, который построен как HashMap.Теперь я хотел бы со своей страницы JSF привязать значение h: inputText к объекту IDX, что-то вроде этого:

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

, что, очевидно, выглядит не очень хорошо.Есть идеи?Это возможно, или я должен использовать только строки или целые числа?

1 Ответ

0 голосов
/ 30 августа 2011

Если вы пытаетесь привязать экземпляр Idx к h:inputText, ваш управляемый компонент должен выглядеть следующим образом:

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

Вам понадобится конвертер для Idx, который преобразует экземпляр Idx в (и изСтрокаЧто-то следующее -

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

А на странице -

<h:inputText value="#{myBean.idx}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...