Раскрывающийся список JSP - использование выбранного элемента - PullRequest
0 голосов
/ 04 марта 2011

У меня есть выпадающий список и форма с несколькими текстовыми полями.Я хотел бы заполнить эту форму с деталями выбранного элемента в раскрывающемся списке.

Я делаю это в java MVC приложении (или подражателе), и у меня на странице jsp есть что-то вроде этого:

<select name="item">
            <c:forEach items="${persons}" var="selectedPerson">
                <c:set var="person" value="${selectedPerson}" />
                <option value="$selectedPerson.id">${selectedPerson.LastName}</option>
            </c:forEach>
</select> 

Persons - это список класса Person.

Интересно, можно ли напрямую использовать переменную person для заполнения формы, например:

<textarea   name="name"  rows="1" cols="34" >
    ${selectedPerson.Name}
</textarea>

, чтобы остальная часть формы обновлялась при изменении selectedPerson?

Я знаю, как это сделать в c #, но у меня нет опыта работы с технологиями Java.

Нужно ли отправлять форму сервлету для этого, или это можно сделать на клиенте, поскольку у меня есть все мои данные в списке лиц с момента заполнения раскрывающегося списка?

1 Ответ

0 голосов
/ 04 марта 2011

Синтаксис $ {} - это синтаксис JSP, который анализируется и запускается только один раз на сервере для генерации HTML, а затем отправляется по сети в виде HTML. Затем изменения в списке выбора происходят в клиентском браузере: сервер ничего о них не знает.

То, что вы хотите сделать, это зарегистрировать слушатель JavaScript в поле выбора. Вы должны изучить использование библиотеки в идеале, чтобы помочь вам сделать это. JQuery - очень популярное решение, о котором стоит почитать, если вы собираетесь заниматься этим типом разработки.

Если вы в конечном итоге используете JQuery, вы захотите сделать что-то вроде следующего

<select id="item" name="item">
        <c:forEach items="${persons}" var="selectedPerson">
            <c:set var="person" value="${selectedPerson}" />
            <option value="$selectedPerson.id">${selectedPerson.LastName}</option>
        </c:forEach>
</select>
<input name="lastName" id="lastName" type="text"/>

<script type="text/javascript">
    $(function() {
        $("#item").change(function() {
            $("#lastName").val($("option:selected", this).text());
        });
    });
</script>

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

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