如何从下拉列表中选择选项标签?

我正在开发一个简单的Web应用程序,在其中我要在下一个JSP页面的HTML页面中使用下拉列表的选项标签。我使用MVC模式,因此Servlet作为控制器将请求重定向(转发?)到JSP视图。

request.getParameter()给了我唯一的选择价值。但就我而言,选项值和标签是不同的。如何获得选项标签?

回答:

您需要在服务器端维护选项值和标签的映射。例如,在某些ServletContextListener甚至是servlet的内部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>

以上是 如何从下拉列表中选择选项标签? 的全部内容, 来源链接: utcz.com/qa/427200.html

回到顶部