gpt4 book ai didi

javascript - 在java中的 Controller 端处理动态生成的表单元素

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:54 24 4
gpt4 key购买 nike

我正在使用 Javascript 函数生成以下输入文本框。每个文本框都有一个唯一的 ID(将递增)以及唯一的名称,如下所示。

<input type="text" class="form-control" indexed="true" id="skills_0" name="skills_0">
<input type="text" class="form-control" indexed="true" id="skills_1" name="skills_1">
<input type="text" class="form-control" indexed="true" id="skills_2" name="skills_2">

我想检索用户在 Controller 的此文本框中填写的值。我正在使用 Hibernate 框架。通常在 Hibernate 中我通常按如下方式检索值:

String name=request.getParameter("name");

但是我很困惑如何在 Controller 端检索这个动态生成的文本框的值。另外,我如何知道用户在我的 Controller 上添加了多少技能?即用户在运行时生成了多少个文本框。

最佳答案

在 Http 中 <form>仅使用输入的名称属性发送:

<input name="someName" value="someValueOfsomeNameInput"/>

所以在请求中它通常看起来像 ...&someName=someValueOfsomeNameInput - 发送请求时根本不使用“id ”。

要么为每个参数生成具有不同“名称”的输入,要么迭代请求中的所有参数列表并检查是否有您需要的参数。

来自输入的所有参数都将被发送,因此为了获取列表,您可以在名称中添加一些前缀,并检查参数是否以这个唯一的前缀开头,这样您就可以通过这个前缀将它们分组在一起。您还可以尝试为每个参数使用相同的“名称”,然后它们可能会作为列表组合在一起。这是一个迭代请求中所有参数的代码片段,用它来检查您在请求中获得了哪些参数以及它们的结构。

    public void sysoRequestParameters(HttpServletRequest req) throws IOException {

Enumeration<String> parameterNames = req.getParameterNames();
while (parameterNames.hasMoreElements()) {
String paramName = parameterNames.nextElement();
System.out.println("--------------------------");
System.out.println("parameter name = " + paramName);
String[] paramValues = req.getParameterValues(paramName);
System.out.println("parameter values:");
for (int i = 0; i < paramValues.length; i++) {
String paramValue = paramValues[i];
System.out.println(paramValue);
}
}
out.close();
}

}

关于javascript - 在java中的 Controller 端处理动态生成的表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42051943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com