我有一个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> -->
selectOneMenu
(String
)的值应该在会话Bean中,对吗?
myBean
类实际上是应用程序作用域。我有一个名为List<myBean>
的对象specBean
列表,您可以在我的JSP代码中看到dataTable
值设置为该值。
您有什么建议,我应该在会话中保存n
名称的selectOneMenu
个不同变量吗?您如何建议这样做?
答案 0 :(得分:0)
selectOneMenu(String)的值应该在会话Bean中,对吗?
取决于。将它放在会话范围的bean中将导致值的任何更改被同一会话中的多个浏览器窗口/选项卡反映/影响。这可能会导致不直观的Web应用程序行为,从而导致糟糕的用户体验。一个请求作用域(或者你已经在JSF 2.0上,查看作用域)bean是一个更好的选择。
myBean类实际上是应用程序作用域。我有一个名为specBean的List对象列表,您可以在我的JSP代码中看到,其中dataTable值设置为该值。
您有什么建议,我是否应该在会话中保存selectOneMenu名称的n个不同变量?您如何建议这样做?
目前还不清楚你在这里谈论什么,但我和整个应用程序中的数据是不变的,可以在不同的会话/请求之间共享,例如List<SelectItem>
f:selectItems
,那么把它放在一个应用程序范围的bean中确实更好。