JSF 2.0 + редактор текстовых файлов Primefaces - PullRequest
0 голосов
/ 12 апреля 2011
<p:editor value="#{editorBean.value}"  widgetVar="editor" width="686"
height="390" language="en" align="center">
</p:editor>

Ниже приведен мой bean-текстовый редактор, взятый из простых чисел

@ManagedBean(name = "editorBean")
@SessionScoped
public class EditorBean {
    private static final String MANAGED_BEAN_NAME = "editorBean";
    private String value;
    public static EditorBean getCurrentInstance() {
        return (EditorBean) FacesContext.getCurrentInstance()
            .getExternalContext().getRequestMap().get(MANAGED_BEAN_NAME);
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
}

Помимо этого, у меня есть еще один компонент, скажем A. У меня есть метод внутри A, который заполняет таблицу HTML. Я хочу, чтобы, когда пользователь открыл редактор, он был предварительно заполнен данными таблицы HTML, и, конечно, изменения должны быть отражены в (String: value). Таким образом, вы можете сказать, что я пытаюсь связать оба значения вместе. Я думаю, что это должно быть сделано с DI, но почему-то это не работает. Если кто-то может привести или привести пример, это будет очень полезно.

1 Ответ

1 голос
/ 12 апреля 2011

Один из способов сделать это - переписать ваш метод getValue(), чтобы получить значение из bean A.И да, ссылка на ваш бин A должна исходить от DI:

//injecting a reference to A
@ManagedPropery(value="#{A}") //or whatever is the name of your bean
private A beanA;

public void setBeanA(A beanA) {
    this.beanA = beanA;
}

Или, с CDI, просто:

@Inject private A beanA

Наконец, ваш getValue метод

public String getValue() {
    return beanA.getValue()
}
...