0

我有一个选择列表组件,我有 2 个列表,第一个包含来自我的数据库的数据,第二个是 DualListModel,我有一个在选择列表之间传输的按钮,当我传输数据时,DualListModel 中的源保持为空.

这是我的 JSF 代码:

<p:pickList id="a" value="#{mbInstructor.model}" var="pickQ"
    itemLabel="#{pickQ}" itemValue="#{pickQ}">
     <o:converter converterId="omnifaces.ListConverter" list="#{mbInstructor.fullList}" />
    <p:ajax event="transfer" listener="#{mbInstructor.onTransfer}" update="msg" />
    <p:ajax event="select" listener="#{mbInstructor.onSelect}" update="msg" />
    <p:ajax event="unselect" listener="#{mbInstructor.onUnselect}" update="msg" />
    <p:ajax event="reorder" listener="#{mbInstructor.onReorder}" update="msg" />
</p:pickList>

这是我在托管 bean 中的方法:

private List<Question> fullList;
private DualListModel<Question> model;

public List<SemesterExamQuestionForm> getAllQuestionForms() {
    GeneralFacade facade = new GeneralFacade();
    return facade.lstSemesterExamQuestionForm(getCurrentStudySemesterExam());
}

public void onTransfer(TransferEvent event) {
    StringBuilder builder = new StringBuilder();
    for (Object item : event.getItems()) {
        ((Question) item).getQuestionTxt();
    }
    FacesMessage msg = new FacesMessage();
    msg.setSeverity(FacesMessage.SEVERITY_INFO);
    msg.setSummary("Items Transferred");
    msg.setDetail(builder.toString());
    FacesContext.getCurrentInstance().addMessage(null, msg);
}

 public List<Question> getFullList() {
        return fullList;
    }

    public DualListModel<Question> getModel() {
        if(model == null){
            model = new DualListModel<>();
        }
        fullList = getAllCourseQuestions();
         model = new DualListModel<>(new ArrayList<>(fullList),new ArrayList<Question>());
        return model;
    }

    public void setModel(DualListModel<Question> model) {
        this.model = model;
    }
4

0 回答 0