从JSP到Servlet的不同参数读取

时间:2013-11-15 08:03:47

标签: java html jsp servlets

在我的JSP中,我有一个下拉框和一个项目表(使用for循环),每个项目都是自己的形式,都是同一个servlet。我的问题是在哪里放下选择下拉框。我不想把它放在项目表单中,因为它会为每个项目下拉。但是如果我创建一个单独的表单,我提交项目表单时无法从servlet获取下拉参数。我需要获取下拉参数和项目参数。接近这个的任何想法?有没有办法在项目表单中有一个隐藏输入,用于存储下拉表单中的选定值?我没有使用任何JavaScript。

2 个答案:

答案 0 :(得分:0)

以其他形式表达。在每个项目表单上创建一个隐藏字段。

<select id="DD">
  <option value="1">1</option>
  <option value="2">2</option>
  <!-- so on ... -->
</select>

<form id="i1">
<input type="hidden" id="dropDownValue" value="">
<!-- your code -->
</form>
<form id="i2">
<input type="hidden" id="dropDownValue" value="">
<!-- your code -->
</form>
<form id="i3">
<input type="hidden" id="dropDownValue" value="">
<!-- your code -->
</form>
<form id="i3">
<input type="hidden" id="dropDownValue" value="">
<!-- your code -->
</form>

现在,在提交之前,由JS设置隐藏字段“dropDown Value”的值。

答案 1 :(得分:0)

我会重新考虑每个项目都有一个表格。所有项目的一个表单,包括选择框,就足够了。所以而不是:

<select>...</select>
<form><input type="hidden" name="id" value="1"/><input type="submit" value="Edit"/></form>
<form><input type="hidden" name="id" value="2"/><input type="submit" value="Edit"/></form>

你可以拥有

<form>
    <select>...</select>
    <input type="submit" name="edit:1" value="Edit"/>
    <input type="submit" name="edit:2" value="Edit"/>
</form>

在您的servlet中,您将遍历所有请求参数(request.getParameterNames())并查找以edit:前缀开头的参数。如果您找到一个,只需减去前缀,您将获得您的项目的标识符,否则应该在某个隐藏字段中发送。您的选择框的值也将被发送。如果您需要其他操作,例如“删除”,则只需在同一HTML表单中添加具有不同前缀的更多提交输入。