Выбранное значение для раскрывающегося списка JSP с использованием JSTL
139444 просмотра
7 ответа
У меня есть SortedMap в сервлете для заполнения раскрывающихся значений в JSP, и у меня есть следующий код
SortedMap<String, String> dept = findDepartment();
request.setAttribute("dept ", dept);
и в JSP
<select name="department">
<c:forEach var="item" items="${dept}">
<option value="${item.key}">${item.value}</option>
</c:forEach>
</select>
Я использую одну страницу JSP для вставки и обновления. Когда я редактирую страницу, как я могу установить выбранное значение в раскрывающемся списке, где выбранное значение поступит из базы данных.
Автор: Jåcob Источник Размещён: 13.11.2019 11:46Ответы (7)
41 плюса
В HTML выбранная опция представлена наличием selected
атрибута на <option>
элементе следующим образом:
<option ... selected>...</option>
Или, если вы строгий HTML / XHTML:
<option ... selected="selected">...</option>
Таким образом, вы просто должны позволить JSP / EL печатать его условно. При условии, что вы подготовили выбранный отдел следующим образом:
request.setAttribute("selectedDept", selectedDept);
тогда это должно сделать:
<select name="department">
<c:forEach var="item" items="${dept}">
<option value="${item.key}" ${item.key == selectedDept ? 'selected="selected"' : ''}>${item.value}</option>
</c:forEach>
</select>
Смотрите также:
Автор: BalusC Размещён: 27.03.2013 11:123 плюса
я попробовал последний ответ от Сандипа Кумара и нашел способ более простым:
<option value="1" <c:if test="${item.key == 1}"> selected </c:if>>
Автор: Muchtarpr
Размещён: 27.02.2017 06:14
2 плюса
Если вы не возражаете против использования jQuery, вы можете использовать код ниже:
<script>
$(document).ready(function(){
$("#department").val("${requestScope.selectedDepartment}").attr('selected', 'selected');
});
</script>
<select id="department" name="department">
<c:forEach var="item" items="${dept}">
<option value="${item.key}">${item.value}</option>
</c:forEach>
</select>
В свой сервлет добавьте следующее:
request.setAttribute("selectedDepartment", YOUR_SELECTED_DEPARTMENT );
Автор: Uri Lukach
Размещён: 27.03.2013 11:17
2 плюса
Я думаю, что приведенные выше примеры верны. но вам не нужно устанавливать
request.setAttribute("selectedDept", selectedDept);
Вы можете использовать эту информацию из JSTL, просто сделайте что-то вроде этого ..
<!DOCTYPE html>
<html lang="en">
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<head>
<script src="../js/jquery-1.8.1.min.js"></script>
</head>
<body>
<c:set var="authors" value="aaa,bbb,ccc,ddd,eee,fff,ggg" scope="application" />
<c:out value="Before : ${param.Author}"/>
<form action="TestSelect.action">
<label>Author
<select id="Author" name="Author">
<c:forEach items="${fn:split(authors, ',')}" var="author">
<option value="${author}" ${author == param.Author ? 'selected' : ''}>${author}</option>
</c:forEach>
</select>
</label>
<button type="submit" value="submit" name="Submit"></button>
<Br>
<c:out value="After : ${param.Author}"/>
</form>
</body>
</html>
Автор: Sendi_t
Размещён: 16.09.2013 09:51
1 плюс
Я попробовал принятый ответ, он не работал.
Однако простой способ сделать это ниже:
<option value="1" <c:if test="${item.quantity == 1}"> <c:out value= "selected=selected"/</c:if>>1</option>
<option value="2" <c:if test="${item.quantity == 2}"> <c:out value= "selected=selected"/</c:if>>2</option>
<option value="3" <c:if test="${item.quantity == 3}"> <c:out value= "selected=selected"/</c:if>>3</option>
Наслаждаться!!
Автор: Sandeep Kumar Размещён: 12.01.2015 09:391 плюс
Вы можете попробовать еще более простое:
<option value="1" ${item.quantity == 1 ? "selected" : ""}>1</option>
Автор: zeirna
Размещён: 15.06.2017 01:46
1 плюс
Может быть, я не совсем понимаю принятый ответ, поэтому он не сработал для меня.
То, что я сделал, было просто проверить, является ли переменная нулевой, присвоить ей известное значение из моей базы данных. Что похоже на принятый ответ, при котором вы сначала объявляете известное значение и устанавливаете его как выбранное
<select name="department">
<c:forEach var="item" items="${dept}">
<option value="${item.key}">${item.value}</option>
</c:forEach>
</select>
потому что ни один из вариантов не выбран, поэтому item = null
<%
if(item == null){
item = "selectedDept"; //known value from your database
}
%>
Таким образом, если пользователь затем выберет другую опцию, мое предложение IF не будет перехватывать ее и присваивать фиксированное значение, которое было объявлено в начале. Моя концепция может быть неправильной, но она работает для меня
Автор: sicnarfmis Размещён: 13.07.2017 08:10Вопросы из категории :
- jsp Получите доступ к значению Enum, используя EL с JSTL
- jsp Сервлет для обслуживания статического контента
- jsp Как отправить несколько моделей в Struts 2?
- jsp Можно ли отобразить компоненты Swing в JSP?
- jsp Различия между куки и сессиями?
- drop-down-menu Как добавить элемент в начало списка <T>?
- drop-down-menu Изображения в выпадающем списке
- drop-down-menu Как установить выбранный элемент в выпадающем списке
- drop-down-menu Получить выделенный текст из раскрывающегося списка (выберите поле) с помощью jQuery
- drop-down-menu проблема с выпадающим списком updateprogress и updatepanel
- jstl Как выбрать первый элемент набора с помощью JSTL?
- jstl Оцените list.contains строку в JSTL
- jstl Как установить JSTL? Абсолютное значение URI: http://java.sun.com/jsp/jstl/core не может быть разрешено
- jstl Как сравнить две объектные переменные в языке выражений EL?
- retain Как сохранить значения полей формы HTML в JSP после отправки формы в сервлет?
- retain Objective-C скопировать и сохранить
- retain Используйте ARC в простом классе object-c
- retain Выбранное значение для раскрывающегося списка JSP с использованием JSTL
- retain Swift: как выйти из системы сохранить количество объектов?