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