Jsp 如何从下拉列表中获取选定选项标签?

Jsp 如何从下拉列表中获取选定选项标签?,jsp,servlets,drop-down-menu,label,Jsp,Servlets,Drop Down Menu,Label,我正在开发一个简单的web应用程序,其中我希望在下一个JSP页面的HTML页面中使用下拉列表的选项标签。我使用的是MVC模式,因此Servlet作为控制器将把请求重定向(转发?)到JSP视图 request.getParameter()只提供选项值。但在我的例子中,选项值和标签是不同的。如何获取选项标签?您需要在服务器端维护选项值和标签的映射。例如,在一些ServletContextListener或servlet的init()中: 这样,您将能够在服务器端获得标签,如下所示: <sele

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


request.getParameter()
只提供选项值。但在我的例子中,选项值和标签是不同的。如何获取选项标签?

您需要在服务器端维护选项值和标签的映射。例如,在一些
ServletContextListener
或servlet的
init()
中:

这样,您将能够在服务器端获得标签,如下所示:

<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);
// ...
Map countries=(Map)getServletContext().getAttribute(“国家”);
// ...
字符串countryCode=request.getParameter(“国家”);
字符串countryName=countries.get(countryCode);
// ...
或在JSP中显示纯文本:

<p>Country code: ${param.country}</p>
<p>Country name: ${countries[param.country]}</p>
国家代码:${param.Country}

国家名称:${countries[param.Country]}

或预先选择下拉列表:

<select name="country">
  <c:forEach items="${countries}" var="country">
    <option value="${country.key}" ${param.country == country.key ? 'selected' : ''}>${country.value}</option>
  </c:forEach>
</select>

${country.value}

您需要在服务器端维护选项值和标签的映射。例如,在一些
ServletContextListener
或servlet的
init()
中:

这样,您将能够在服务器端获得标签,如下所示:

<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);
// ...
Map countries=(Map)getServletContext().getAttribute(“国家”);
// ...
字符串countryCode=request.getParameter(“国家”);
字符串countryName=countries.get(countryCode);
// ...
或在JSP中显示纯文本:

<p>Country code: ${param.country}</p>
<p>Country name: ${countries[param.country]}</p>
国家代码:${param.Country}

国家名称:${countries[param.Country]}

或预先选择下拉列表:

<select name="country">
  <c:forEach items="${countries}" var="country">
    <option value="${country.key}" ${param.country == country.key ? 'selected' : ''}>${country.value}</option>
  </c:forEach>
</select>

${country.value}

无需在服务器端存储任何内容即可完成此操作。

<select name="menu" id="menu">
<option value="1">label 1</option>
<option value="2">label 2</option>
</select>

<button onclick='show()'>Click me</button>

<script type="text/javascript">
function show(){
var theContents = document.getElementById('menu')[document.getElementById('menu').selectedIndex].innerText;
window.alert(theContents);
}
</script>

标签1
标签2
点击我
函数show(){
var theContents=document.getElementById('menu')[document.getElementById('menu')。selectedIndex].innerText;
窗口。警报(内容);
}

无需在服务器端存储任何内容即可完成此操作。

<select name="menu" id="menu">
<option value="1">label 1</option>
<option value="2">label 2</option>
</select>

<button onclick='show()'>Click me</button>

<script type="text/javascript">
function show(){
var theContents = document.getElementById('menu')[document.getElementById('menu').selectedIndex].innerText;
window.alert(theContents);
}
</script>

标签1
标签2
点击我
函数show(){
var theContents=document.getElementById('menu')[document.getElementById('menu')。selectedIndex].innerText;
窗口。警报(内容);
}

您无法从JSP中取回它。您必须按照BalusC的回答维护映射。@XCoder:我们可以为下拉框编写一个单独的POJO,并使用、、?访问下一个JSP页面上选择的值吗??可能吗?请回复..谢谢您无法从JSP中取回它。您必须按照BalusC的回答维护映射。@XCoder:我们可以为下拉框编写一个单独的POJO,并使用、、?访问下一个JSP页面上选择的值吗??可能吗?请回复..非常感谢您编辑并回答问题..我有点不知道如何回答我的问题。。难道我们不能为下拉框编写一个单独的POJO,并在JSP页面上使用和访问所选值吗??请回答:编辑和回答这个问题需要很多时间…我有点不知道该如何回答我的问题。。难道我们不能为下拉框编写一个单独的POJO,并在JSP页面上使用和访问所选值吗??恳请回复