你能帮助我吗?
在JSP上我有下一个代码
<form action="/TutorWebApp/controller" method="POST" name="editTestForm">
<p>
Выберите предмет
<select name='subject'>
<c:forEach items="${subjects}" var="subject" >
<option value="${subject.key}">
${subject.value.getName()}
</option>
</c:forEach>
</select>
</p>
<p>
<a href="/TutorWebApp/controller?command=all_test_edit&subject_id=${subject}">
Get list of tests
</a>
</p>
</form>
当我 request.getParametr("subject");
时,我有一个空值。
我尝试从组合框中发送href选择值。 我怎么能这样做? 感谢
答案 0 :(得分:1)
<a href="location">
不是表单提交,是重定向,并且从查询字符串中读取参数。
查看您的查询字符串
command=all_test_edit&subject_id=${subject}
没有subject
,因此request.getParametr("subject");
将始终为您提供null
。如果您使用<input type="submit">
或<button>
,则表单已完成。
如您所说,您无法使用JavaScript。所以,没有别的出路。对于command
和subject_id
参数,您可以使用
<input type="hidden" name="command" value='all_test_edit'>
与其他静态参数类似。
更新:
看起来您可以使用submit
值传递action参数。这是一个例子:
JSP
<form id="form1" action="SomeServlet">
Insert text:
<input type="text" name="txtInputText" />
<br />
<input type="submit" name="btnAction" value="Add" />
<br />
<input type="submit" name="btnAction" value="Edit" />
<br />
<input type="submit" name="btnAction" value="Delete" />
<br />
</form>
的Servlet
System.out.println(request.getQueryString());
String s = request.getParameter("btnAction");
点击Add
按钮后,s
将为“添加”。点击Edit
按钮后,s
将为“编辑”,依此类推。这不灵活,但可以解决您的问题。