从Jsp传递下拉值

时间:2016-12-08 16:50:03

标签: java jsp drop-down-menu jstl

我已经通过了Passing drop down value through link in JSP,但我仍然无法通过下拉值

<select name="statuses">
                    <option value="1">On hold</option>
                    <option value="2">Confirmed</option>
                    <option value="3">Declined</option>
                </select>
                <a href="<c:url value="/tickets">
                   <c:param name="action" value="changestatus" />
                   <c:param name="ticketId" value="${entry.key}" />
                   <c:param name="optVal" value="${statuses}" /></c:url>" >Change</a>

但是当我点击Change时,网址似乎就像这样

http://localhost:8080/customer-support/tickets?action=changestatus&ticketId=1&optVal=

您可以看到optVal值为空。如何将选定的下拉值发送到网址?

1 个答案:

答案 0 :(得分:0)

您将客户端和服务器端逻辑混合在一起。

  1. 服务器评估jsp(tags,el,..)并从中创建一个html页面。
  2. html被发送到浏览器,用户可以在其中选择或输入信息。
  3. 当浏览器提交表单时,表单字段的值如select,input,textarea,..将被发送回服务器
  4. 然后服务器可以评估信息。
  5. 您在<c:url中使用${statuses}执行的操作发生在服务器上。用户没有参与喷气式飞机。 ${statuses}的值是您准备的属性。它不是用户的参数。

    您可以使用表单和隐藏的输入字段在客户端创建此类链接:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <form action="" method="get">
                  <select name="optVal">
                        <option value="1">On hold</option>
                        <option value="2">Confirmed</option>
                        <option value="3">Declined</option>
                    </select>
                    <input type="hidden" name="action" value="changestatus">
                    <input type="hidden" name="ticketId" value="${entry.key}">
                    <input type="submit" value="Change">
    </form>
    </body>
    </html>
    

    您可以在输入隐藏字段中添加用户不应更改的每个参数。