Вам необходимо поддерживать сопоставление значений параметров и меток на стороне сервера. Например. внутри некоторые ServletContextListener
или, возможно, сервлет init()
:
Map<String, String> countries = new LinkedHashMap<String, String>();
countries.put("CW", "Curaçao");
countries.put("NL", "The Netherlands");
countries.put("US", "United States");
// ...
servletContext.setAttribute("countries", countries);
Когда вы кладете его в сфере применения в качестве ${countries}
, то вы можете отобразить его следующим образом:
<select name="country">
<c:forEach items="${countries}" var="country">
<option value="${country.key}">${country.value}</option>
</c:forEach>
</select>
Таким образом, вы будете иметь возможность для получения маркировать на стороне сервера следующим образом:
Map<String, String> countries = (Map<String, String>) getServletContext().getAttribute("countries");
// ...
String countryCode = request.getParameter("country");
String countryName = countries.get(countryCode);
// ...
Или отобразить равнину в JSP:
<p>Country code: ${param.country}</p>
<p>Country name: ${countries[param.country]}</p>
Или предварительно выбрать выпадающее меню:
<select name="country">
<c:forEach items="${countries}" var="country">
<option value="${country.key}" ${param.country == country.key ? 'selected' : ''}>${country.value}</option>
</c:forEach>
</select>
Вы не можете вернуть его с JSP. Вы должны поддерживать отображение, как это было предложено в ответе BalusC. –
@XCoder: можем ли мы написать отдельный POJO для раскрывающегося списка и получить доступ к значению, выбранному на следующей странице JSP, с помощью, , ? Является ли это возможным? Просьба ответить .. спасибо –