将组合框中的选定值放入<a href=""> for sending to servlet</a>

时间:2012-05-05 04:01:36

标签: java jsp servlets href option

你能帮助我吗?

在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选择值。 我怎么能这样做? 感谢

1 个答案:

答案 0 :(得分:1)

<a href="location">不是表单提交,是重定向,并且从查询字符串中读取参数。

查看您的查询字符串

command=all_test_edit&subject_id=${subject}

没有subject,因此request.getParametr("subject");将始终为您提供null。如果您使用<input type="submit"><button>,则表单已完成。

如您所说,您无法使用JavaScript。所以,没有别的出路。对于commandsubject_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将为“编辑”,依此类推。这不灵活,但可以解决您的问题。