Извлечение значения из базы данных в поле выбора - PullRequest
0 голосов
/ 10 декабря 2011

На странице регистрации есть три разных поля выбора.
Когда я выбираю «Индия» из первого поля выбора, тогда все штаты из «Индии» должны быть извлечены из таблицы во втором окне выбора, и если выбрать какой-либо штаттогда о городе этого конкретного штата нужно выбрать из таблицы в третьем поле выбора.

Мы используем Struts2 с Hibernate

public String execute() throws Exception {
    if(externalUser.getPerson().getAddress().getCity().getState()
                   .getCountry().getId() + "" != null) {
        degreeList = degreeDao.findAll();
        setCountryList((List<Country>) countryDao.findAll());
        setStateList((List<State>)stateDao.findAll("country_ID", externalUser.getPerson().getAddress().getCity().getState().getCountry().getId()));
        setCityList((List<City>)stateDao.findAll("state_ID",externalUser.getPerson().getAddress().getCity().getState().getId()));
    } else {
        degreeList = degreeDao.findAll();
        setCountryList((List<Country>) countryDao.findAll());
    }

    return SUCCESS;
  }

Ответы [ 3 ]

1 голос
/ 10 декабря 2011

Не ответ;Очистка кода.

Попробуйте написать в этом методе что-то вроде следующего фрагмента.

Demeter все равно будет немного раздражен , нооб остальном коде легче подумать.

public String execute() throws Exception {
    setDegreeList(degreeDao.findAll());
    setCountryList(countryDao.findAll());

    State state = externalUser.getPerson().getAddress().getCity().getState();
    if (state.getCountry().getId() != null) {
        setStateList(stateDao.findStatesForCountry(state.getCountry().getId()));
        setCityList(stateDao.findCitiesForState(state.getId()));
    }

    return SUCCESS;
}
0 голосов
/ 10 декабря 2011

Вот пример того, что вы пытаетесь сделать, он использует вышеупомянутый плагин Struts2 Jquery.

http://www.onlinexamples.com/showfullexample.action?idexamples=48&title=Dependent%20Select%20-%20Dependent%20Dropdowns%20-%20Triple%20Select%20Using%20Jquery

0 голосов
/ 10 декабря 2011

Используйте некоторые вызовы Ajax. Когда первое значение выбрано из выпадающего меню, отправьте это значение в Action и получите штаты в зависимости от страны.отправьте результаты как JSON данные, проанализируйте их на стороне jsp, заполните поле со списком. повторите тот же цикл для района.

Один простой способ использовать плагин Struts2-Jquery, который имеет этот тип блоков выбора.один для вашей справки

Плагин Struts2-Jquery Выберите тег

Я предпочитаю использовать обычный Jquery и отправлять результаты в виде JSON данных из моего класса действий, используя JSON Плагин для Struts2 и сам анализируйте данные с помощью Jquery, что даст мне больше гибкости и контроля.

Никогда не рекомендуется использовать такое глубокое сцепление методов, это не только ухудшит читабельность вашей программы, но и усложнит ее.поддерживать на более поздних этапах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...