本文目录导读:

下面是一个Java下拉回显的简易案例实现,包含前端页面和后端代码。
功能说明
用户在页面下拉框选择一个选项后,提交到后台,后台将选中值重新回显到下拉框中。
案例实现
前端页面 (selectDemo.jsp)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">下拉回显案例</title>
</head>
<body>
<h2>下拉框回显示例</h2>
<form action="${pageContext.request.contextPath}/SelectServlet" method="post">
<label>选择城市:</label>
<select name="city">
<option value="">-- 请选择 --</option>
<option value="beijing" ${selectedCity == 'beijing' ? 'selected' : ''}>北京</option>
<option value="shanghai" ${selectedCity == 'shanghai' ? 'selected' : ''}>上海</option>
<option value="guangzhou" ${selectedCity == 'guangzhou' ? 'selected' : ''}>广州</option>
<option value="shenzhen" ${selectedCity == 'shenzhen' ? 'selected' : ''}>深圳</option>
</select>
<br><br>
<input type="submit" value="提交">
<input type="button" value="重置" onclick="resetSelect()">
</form>
<%-- 显示回显信息 --%>
<% if(request.getAttribute("message") != null) { %>
<p style="color: blue; margin-top: 20px;">
<%= request.getAttribute("message") %>
</p>
<% } %>
<script>
// 简单重置下拉框
function resetSelect() {
document.getElementsByName("city")[0].value = "";
}
</script>
</body>
</html>
后端Servlet (SelectServlet.java)
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 下拉回显处理Servlet
*/
@WebServlet("/SelectServlet")
public class SelectServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// GET请求直接跳转到页面
request.getRequestDispatcher("/selectDemo.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取用户选择的城市
String selectedCity = request.getParameter("city");
// 校验数据
if (selectedCity != null && !selectedCity.isEmpty()) {
// 将选中的城市放入request域
request.setAttribute("selectedCity", selectedCity);
// 根据选择生成提示信息
String cityName = getCityName(selectedCity);
request.setAttribute("message", "您选择了:" + cityName);
} else {
request.setAttribute("message", "请选择一个城市");
}
// 转发到JSP页面(回显)
request.getRequestDispatcher("/selectDemo.jsp").forward(request, response);
}
/**
* 根据value获取城市名称
*/
private String getCityName(String value) {
switch(value) {
case "beijing": return "北京";
case "shanghai": return "上海";
case "guangzhou": return "广州";
case "shenzhen": return "深圳";
default: return value;
}
}
}
实现原理
-
前端JSP:使用EL表达式
${selectedCity}判断回显值,通过三元运算符? 'selected' : ''给option添加selected属性 -
后端Servlet:
- 接收用户提交的城市值
- 放入request作用域(
request.setAttribute("selectedCity", selectedCity)) - 转发到JSP页面
-
回显流程:
用户选择 → 提交表单 → Servlet处理 → 设置属性 → 转发JSP → 页面显示选中状态
运行步骤
- 将上述两个文件放入Java Web项目的对应目录
- 启动Tomcat等服务器
- 访问:
http://localhost:8080/项目名/SelectServlet - 选择一个城市并提交,即可看到下拉框回显效果
其他常见回显方式
方式1:使用JSTL标签(更简洁)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<select name="city">
<option value="">请选择</option>
<option value="beijing" <c:if test="${selectedCity == 'beijing'}">selected</c:if>>北京</option>
<option value="shanghai" <c:if test="${selectedCity == 'shanghai'}">selected</c:if>>上海</option>
</select>
方式2:后台直接处理(不推荐)
在Servlet中直接生成带selected的HTML字符串返回,但这种方式会破坏MVC分层,一般不使用。
这个案例实现了典型的下拉回显功能,你可以根据实际需求调整选项内容和业务逻辑。