хранение отдельных переменных сеанса для разных SelectOneMenu (ов) в dataTable JSF - PullRequest
0 голосов
/ 23 июня 2010

У меня есть dataTable со значением класса бина, который выглядит следующим образом:

public class myBean {
    private List<SelectItem> depList;

С геттерами и сеттерами.

Мой геттер вызывает метод 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) должно быть в сессионном компоненте, верно?

myBean фактически является областью применения. У меня есть список этого объекта List<myBean>, называемый specBean, как вы можете видеть в моем коде JSP, где значение dataTable установлено на это.

Что вы предлагаете, если у меня будут n разные переменные для имен selectOneMenu для сохранения в сеансе? Как вы предлагаете это сделать?

1 Ответ

0 голосов
/ 23 июня 2010

Значение selectOneMenu (Строка) должно быть в Сессионном Бине, верно?

Зависит. Помещение его в bean-объект области видимости сеанса приведет к тому, что любые изменения в значении будут отражены / подвержены влиянию / влиянию нескольких окон / вкладок браузера в одном сеансе. Это может привести к неинтуитивному поведению веб-приложения и, как следствие, к плохому пользовательскому опыту. Лучше всего выбрать боб в области запросов (или, если вы уже используете JSF 2.0, смотрите область видимости).

Класс myBean фактически ограничен областью применения. У меня есть список этого объекта List с именем specBean, как вы можете видеть в моем коде JSP, где значение dataTable установлено на это.

Что вы предлагаете, если я должен иметь n разных переменных для имен selectOneMenu для сохранения в сеансе? Как вы предлагаете это сделать?

Непонятно, о чем вы здесь говорите, но если данные и постоянны по всему приложению, и могут быть разделены между различными сессиями / запросами, такими как List<SelectItem> для f:selectItems, тогда действительно лучше положить его в компонент приложения.

...