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)的主要内容,如果未能解决你的问题,请参考以下文章
在数组(或ArrayList)中搜索由扫描仪用户指定的特定人(值),如果找到,则将该数组中的所有值返回/打印到扫描仪上