在dataTable JSF中为不同的SelectOneMenu存储单独的会话变量

时间:2010-06-23 13:59:17

标签: java jsf icefaces

我有一个dataTable,其值为bean类,如下所示:

public class myBean {
    private List<SelectItem> depList;

使用getter和setter。

我的getter调用方法buildDepList(),它从数据库中获取部门名称并填充depList。

以下是我的JSP文件的样子:

<ice:dataTable id="specializationTable" style="height: 216px; left: 134px; top: 62px; position: absolute"
    value="#{AdmissionApplication$Application.specBean}" var="specRow" width="480">
    <ice:column id="column2">
        <ice:outputText id="outputText9" value="#{specRow.choiceNum}" visible="true"/>
        <f:facet name="header">
            <ice:outputText id="outputText3" value="#{msg.Choice_Number}"/>
        </f:facet>
    </ice:column>
    <ice:column id="column4">
        <f:facet name="header">
            <ice:outputText id="outputText8" value="#{msg.Department}"/>
        </f:facet>
        <ice:selectOneMenu id="selectOneMenu2" partialSubmit="true" value="#{specRow.departmentName}">
            <f:selectItems id="selectOneMenu2selectItems" value="#{specRow.departmentItems}"/>
        </ice:selectOneMenu>
    </ice:column>
    <ice:column id="column5">
        <f:facet name="header">
            <ice:outputText id="outputText10" value="#{msg.Specialization}"/>
        </f:facet>
        <ice:selectOneMenu id="collegesSelectOneMenu" partialSubmit="true" style="width: 118px" value="#{specRow.specializationName}">
            <f:selectItems id="selectOneMenu3selectItems22" value="#{specRow.specializationItems}"/>
        </ice:selectOneMenu>
    </ice:column>
</ice:dataTable> -->

selectOneMenuString)的值应该在会话Bean中,对吗?

myBean类实际上是应用程序作用域。我有一个名为List<myBean>的对象specBean列表,您可以在我的JSP代码中看到dataTable值设置为该值。

您有什么建议,我应该在会话中保存n名称的selectOneMenu个不同变量吗?您如何建议这样做?

1 个答案:

答案 0 :(得分:0)

  

selectOneMenu(String)的值应该在会话Bean中,对吗?

取决于。将它放在会话范围的bean中将导致值的任何更改被同一会话中的多个浏览器窗口/选项卡反映/影响。这可能会导致不直观的Web应用程序行为,从而导致糟糕的用户体验。一个请求作用域(或者你已经在JSF 2.0上,查看作用域)bean是一个更好的选择。

  

myBean类实际上是应用程序作用域。我有一个名为specBean的List对象列表,您可以在我的JSP代码中看到,其中dataTable值设置为该值。

     

您有什么建议,我是否应该在会话中保存selectOneMenu名称的n个不同变量?您如何建议这样做?

目前还不清楚你在这里谈论什么,但我和整个应用程序中的数据是不变的,可以在不同的会话/请求之间共享,例如List<SelectItem> f:selectItems,那么把它放在一个应用程序范围的bean中确实更好。