0

我有一个数据表,它的 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> -->

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

myBean类实际上是应用程序范围的。正如您在我的 JSP 代码中看到的那样,我有一个List<myBean>名为该对象的列表,其中值设置为该值。specBeandataTable

你有什么建议,我应该为会话中保存n的名称设置不同的变量吗?selectOneMenu你建议怎么做?

4

1 回答 1

0

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

要看。将它放在会话范围的 bean 中将导致值的任何更改被反映/影响到/受同一会话中的多个浏览器窗口/选项卡。这可能会导致不直观的 webapp 行为,从而导致糟糕的用户体验。请求范围(或者如果您已经在 J​​SF 2.0 上,请查看范围)bean 是更好的选择。

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

你有什么建议,我应该为 selectOneMenu 的名称保存 n 个不同的变量以保存在会话中吗?你建议怎么做?

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

于 2010-06-23T14:10:31.733 回答