8

我正在尝试创建一个显示带有复选框的简单表单的 servlet,当用户选择他想要的复选框数量并单击“确认”我的 servlet 中的 POST 请求时,检查哪些框已被选中并查询基于数据库.

我不确定如何在 Java 中执行此操作,因为用户可以选择 1 个或多个复选框。如果有人可以用一个小例子来解释这一点,那就太好了。

我对编程很陌生,如果我知道怎么做,我会提供一个代码片段。

4

4 回答 4

8
<%@ page language="java"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>JSP Multiple Checkbox</title>
    </head>
    <body>
        <form name="form1" onsubmit="checkBoxValidation()">
            <h3>Select your favorite Fruits</h3>
            <p><input type="checkbox" name="fruit" value="Mango"/>Mango</p>
            <p><input type="checkbox" name="fruit" value="Apple"/>Apple</p>
            <p><input type="checkbox" name="fruit" value="Grapes"/>Grapes</p>
            <p><input type="checkbox" name="fruit" value="Papaya"/>Papaya</p>
            <p><input type="checkbox" name="fruit" value="Lychee"/>Lychee</p>
            <p><input type="checkbox" name="fruit" value="Pineapple"/>Pineapple</p>
            <p><input type="submit" value="submit"/>
        </form>
        <%String fruits[]= request.getParameterValues("fruit");
        if(fruits != null){%>
        <h4>I likes fruit/s mostly</h4>
        <ul><%for(int i=0; i<fruits.length; i++){%>
            <li><%=fruits[i]%></li><%}%>
        </ul><%}%>
    </body>
</html>

在您的 Web 容器上运行此示例 jsp 以了解其工作原理的一些基本概念。您需要将此页面上获取请求参数的显示逻辑移动到表单提交时的 servlet 代码中。这个例子可以从这里找到。希望这会有所帮助。

于 2013-04-02T22:42:36.360 回答
7

这实际上是 HTML 表单行为问题。当您选中几个具有一个“名称”属性和不同“值”属性的复选框并按下提交按钮时,您的浏览器将使用选中的复选框值向服务器发送请求。因此,您可以从此 url 参数中获取值名称。

例如:

<form name="input" action="html_form_action.asp" method="get">
<input type="checkbox" name="vehicle" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car 
<br><br>
<input type="submit" value="Submit">
</form>

如果您选中这两个复选框,您的服务器将收到如下参数:

http://example.com/your_page.jsp?vehicle=Bike&vehicle=Car 

之后,您可以获得如下值:

String checkboxValues = request.getParameter("vehicle");

checkboxValues 获取用逗号分隔的所有值。

于 2013-04-02T22:24:28.090 回答
6

在您的 servlet 中,您将像这样使用 getParameter() :

request.getParameter( "id_of_checkbox" )

如果未选中该框,则该函数返回 null。因此,您可以执行以下操作:

boolean myCheckBox = request.getParameter( "id_of_checkbox" ) != null;

现在 myCheckBox 如果选中则为 true,如果未选中则为 false。

于 2013-04-02T22:23:26.400 回答
0

如果您只想要输出,这可能会更整洁。假设您使用的是 jstl 库,我更喜欢它,因为它使您的页面更干净:

<c:forEach var='fruitValue' items='${paramValues.fruit}'> 
   ${fruitValue} <br>
</c:forEach>
于 2015-10-17T11:01:04.660 回答