JSF呈现组件类型



我正在使用JSF和IceFaces创建一个在线调查应用程序。调查问卷可以有很多问题。每个问题可以是复选框、单选按钮、文本框等类型中的任何一种,具有多个选项。

现在我需要在jsf中每页显示一个问题。我正在从数据库中获取问题类型,问题,选项列表(opt1, opt2, opt3…)数据。

当用户点击上一个按钮时,我需要回到上一个问题。当用户点击下一步按钮时,我需要转到下一个问题。最后,当用户点击提交按钮时,需要将调查数据存储在数据库中。

如何根据问题类型呈现组件?(如果问题类型是复选框的意思,我需要显示复选框。如果问题类型是单选按钮的意思,我需要显示单选按钮…)

我该怎么做?有人能帮我一下吗?

如果有这种类型的例子请分享给我链接

使用rendered属性。如果属性中的EL条件计算true,则组件将呈现HTML到输出,否则不呈现。

假设你有一个

public class Question {
    public enum Type { 
        SINGLE, MULTIPLE;
    }
    private Long id;
    private Type type;
    private String text;
    private List<Answer> answers;
    // ...
}

则可以这样使用:

<h:dataTable value="#{bean.questions}" var="question">
    <h:column>
        <h:selectOneRadio value="#{bean.answers[question.id]}" rendered="#{question.type == 'SINGLE'}">
            <f:selectItems value="#{question.answers}" />
        </h:selectOneRadio>
        <h:selectManyCheckbox value="#{bean.answers[question.id]}" rendered="#{question.type == 'MULTIPLE'}">
            <f:selectItems value="#{question.answers}" />
        </h:selectManyCheckbox>
    </h:column>
</h:dataTable>

相关内容

  • 没有找到相关文章

最新更新