ArrayList 由用户输入填充到 ComboBox(选择 JPS)

Posted

技术标签:

【中文标题】ArrayList 由用户输入填充到 ComboBox(选择 JPS)【英文标题】:ArrayList populated by user imput to ComboBox (Select JPS) 【发布时间】:2016-09-02 21:28:12 【问题描述】:

这就是我想要做的,用户输入一个名称,该名称被添加到放置在 servlet 上的 ArrayList 中,然后名称应该显示在组合框中,下面是我所拥有的。它引发错误“stray c foreach start tag”

索引.JSP

<body>
    <form action="ServletGuardar.do" method="post">
        Name<input type="text" name="name">
        <input type="submit" name="save" value="Save">
    </form>
    <hr>
    <form action="ServletGuardar.do" method="post">
    Names<select name="database1">
        <c:forEach items="$lista" var="databaseValue">
            <option value="$databaseValue">
                $databaseValue
            </option>
        </c:forEach>
    </select>
    </form>
</body>

伺服器

ArrayList lista = new ArrayList();
String name = request.getParameter("name");
lista.add(name);

request.setAttribute("lista", "lista");

request.getRequestDispatcher("index.jsp").forward(request, response);

【问题讨论】:

那么问题是什么? 嗨,组合框(选择)不显示任何内容 【参考方案1】:

我测试了您的代码并通过更改以下内容使其正常工作

    如果您的 jsp 没有引用标记库,请添加它 在服务器端,您没有将 ArrayList 对象添加为请求 对象而不是您将其添加为字符串作为已经提到的其他答案。 当您提交第一个表格中的名称时,还要检查,打印出来并 如果您在服务器端获取名称值,请检查日志。

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!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>Index</title>
</head>
<body>
    <form action="./ServletGuardar.do" method="post">
        Name<input type="text" name="name">
        <input type="submit" name="save" value="Save">
    </form>
    <hr>
    <form action="/ServletGuardar.do" method="post">

    Names<select name="database1">
        <c:forEach items="$list" var="databaseValue">
            <option value="$databaseValue">
                $databaseValue
            </option>
        </c:forEach>
    </select>

    </form>
</body>
</html>

Servlet 的 doGet 方法

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException 
        // TODO Auto-generated method stub

        ArrayList<String> list = new ArrayList<String>();

        String name = request.getParameter("name");
        System.out.println("name=" + name);

        list.add(name);

        request.setAttribute("list", list);

        request.getRequestDispatcher("index.jsp").forward(request, response);

        // response.getWriter().append("name="+name+".Served at:
        // ").append(request.getContextPath());
    

web.xml

  <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.ServletGuardar</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/ServletGuardar.do</url-pattern>
    </servlet-mapping>

【讨论】:

@Exit 如果您仍然面临挑战,请告诉我 我按照您的步骤进行操作,现在可以使用,但在组合框中只显示一个输入 组合框中出现的选项数量取决于您在 servlet 的数组列表中添加了多少对象,在 servlet 中添加更多对象然后尝试

以上是关于ArrayList 由用户输入填充到 ComboBox(选择 JPS)的主要内容,如果未能解决你的问题,请参考以下文章

将数据从组合框获取到 datagridview

在数组(或ArrayList)中搜索由扫描仪用户指定的特定人(值),如果找到,则将该数组中的所有值返回/打印到扫描仪上

用对象动态填充 ArrayList

在 ArrayList 中搜索对象

绑定组合框在(重新)填充数据源时更改 SelectedItem

我想通过用户输入添加到 arrayList