在Java中如何获取名称为方法与字符串组合的隐藏输入字段数据
获取动态拼接名称的隐藏
<input>字段数据 首先得明确:你的隐藏字段名称是通过abc类实例的getName()方法返回值,再拼接字符串"Name"生成的——比如如果p.getName()返回"user",那实际字段名就是"userName"。接下来分两种常见的后端处理场景,给你具体的实现方式:
1. 后端用JSP接收(比如你的abcd.jsp)
在接收请求的JSP里,核心思路是和前端保持完全一致的字段名拼接逻辑,再通过请求对象获取对应值:
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page import="h.abc" %> <% // 先创建相同的abc实例,生成和前端一致的字段名 abc p = new abc(); String targetFieldName = p.getName() + "Name"; // 通过request对象拿到隐藏字段的值 String hiddenValue = request.getParameter(targetFieldName); // 可以输出测试结果 out.println("隐藏字段的值:" + hiddenValue); %>
2. 后端用Servlet接收
如果用Servlet处理表单提交,逻辑也是一样的,先匹配字段名再取值:
import h.abc; 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; @WebServlet("/abcd") public class AbcdServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 生成和前端完全一致的字段名 abc p = new abc(); String targetFieldName = p.getName() + "Name"; // 获取隐藏字段的值 String hiddenValue = request.getParameter(targetFieldName); // 后续可根据业务需求处理该值,比如返回给前端或存入数据库 response.getWriter().write("获取到的隐藏字段值:" + hiddenValue); } }
小提醒
要保证前后端abc实例的getName()返回结果一致——如果这个方法的返回值和实例状态有关,要确保生成字段名时的实例状态和前端渲染时完全相同,不然会找不到对应的字段哦。
内容的提问来源于stack exchange,提问作者Anshu Prince
相关产品推荐
相关产品推荐

