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

标签 java jsp servlets arraylist

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

INDEX.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 没有引用标记库,则添加它
  2. 在服务器端,您没有添加 ArrayList 对象来请求 对象,而不是像已经提到的其他答案一样将其添加为字符串。
  3. 另请检查您何时提交第一份表格中的姓名、打印该姓名并 如果您在服务器端获取名称值,请检查日志。

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>

关于java - 由用户输入填充到 ComboBox 的 ArrayList(选择 JPS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37095546/

相关文章:

java - 由于所需的依赖项,我的模块正在阻止我的 Wowza 应用程序加载

java - 将值列表从 jsp 传递到 Struts 2 中的 Action 类

jsp - 仅使用 JSP 页面创建 JSON WebService

java - 当在 Content-Type 中指定字符集时,Jersey 和 @FormParam 不起作用

java - requestdispatcher 如何为休息服务工作

java - 在外部使用 Tomcat 从 IntelliJ 运行 Web 应用程序时,发送到 System.err 的消息去哪里了?

java - 选择editText时如何隐藏部分布局

java - 如果数据每次返回循环时都会被替换,如何将循环中的数据从最小到最大排序?

java - Spring Data Query 抛出异常,但我无法修复它

java - 数据插入 mongoDB 集合后触发 MongoDB 事件