繁体   English   中英

使用JSP从下拉列表传递所选值

[英]Pass selected value from dropdown using JSP

我需要使用jsp和java实现一些基本的下拉列表,但是我找不到更多有关如何执行此操作的信息。 因此,我从不使用JSP编写任何东西,而当我找不到任何可以帮助我的最后选择的东西时,就是问我。 我想获取选定的值,然后单击按钮以将值发送到anoher .jsp文件(“在我的情况下为selector.jsp”)。请大家帮我提供一些简单的解决方案。

pP:对不起,我的英语(:

index.jsp

    <FORM method="post" action="selector.jsp">
    <select name="select" id="dropdown">
        <% 
            Test t = new Test();
            t.getList().add("a");
            t.getList().add("b");
            t.getList().add("c");
            for(int i=0; i < t.getList().size(); i++){ 
        %>
        <Option value="<%t.getList().get(i);%>"><%=t.getList().get(i)%></Option>
        <%}%>
    </select>
    <input type="submit" value="click"> 

选择器.jsp

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    You selected:
    <%
       request.getParameter("select");
       request.getParameterValues("select");
    %>
   </body>
   </html>

我通过删除找到了解决方案

value =“ <%t.getList()。get(i);%>”

从和离开代码只是

<Option><%=t.getList().get(i)%></Option>

但我不知道为什么...如果有人可以解释会很好。 谢谢! (:

正如您在帖子中所指出的,通过替换可以解决问题

value="<%t.getList().get(i);%>"

<Option><%=t.getList().get(i)%></Option>

起作用的原因如下:

在第一种形式<%t.getList()。get(i);%>中,您有一个JSP脚本。 这是内联执行的Java代码。 您的情况将执行“ get”方法。 但是请注意,get方法返回一个值,但是该值不会输出到响应流中。

在第二种形式中,您已经通过使用“ <%=”形成了JSP表达式。 “ <%=“是“ out.println”的简写,因此,您为以下内容提供了简写:

<Option><% out.println(t.getList().get(i)) %></Option>

这会将方法调用的返回值写入输出流。 因此,当此输出到达浏览器时,Option标记内将有一个实际值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM