Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp 在一行中显示整个阵列lis的组合框_Jsp_Servlets_Arraylist_Combobox_Jstl - Fatal编程技术网

Jsp 在一行中显示整个阵列lis的组合框

Jsp 在一行中显示整个阵列lis的组合框,jsp,servlets,arraylist,combobox,jstl,Jsp,Servlets,Arraylist,Combobox,Jstl,我希望jsp文件中的组合框显示servlet传递的arraylist,但现在它在组合框的一行中显示整个arraylist。 servlet代码 ArrayList<String> list = new ArrayList<String>(); list.add("A"); list.add("B"); list.add("C"); response.setIntHeader("default", 5); request.setAttribute

我希望jsp文件中的组合框显示servlet传递的arraylist,但现在它在组合框的一行中显示整个arraylist。 servlet代码

  ArrayList<String> list = new ArrayList<String>();
    list.add("A");
    list.add("B");
    list.add("C");
response.setIntHeader("default", 5);
request.setAttribute("name",":Motorola Solutions TC55");
request.setAttribute("item",list);
request.getServletContext().getRequestDispatcher("/default.jsp").forward(request, response);
ArrayList list=new ArrayList();
列表。添加(“A”);
列表。添加(“B”);
列表。添加(“C”);
响应。设置标题(“默认”,5);
setAttribute(“名称”,“摩托罗拉解决方案TC55”);
request.setAttribute(“项”,列表);
request.getServletContext().getRequestDispatcher(“/default.jsp”).forward(请求,响应);
jsp代码

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>


<!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>Include Manufacture name</title>
</head>
<body  >
<p id ="L1">Name :- <%=request.getAttribute("name")%></p>
<select>
<c:forEach items="${item}" var="temp">
    <option value='${temp}'>${temp}</option>
</c:forEach>
</select>
<button type="button" >Change Content</button>
</body>
</html>

包括制造商名称

名称:-

${temp} 更改内容
我现在加了t 绝对uri:无法在web.xml或与此应用程序一起部署的jar文件中解析

错误如下:

request.setAttribute("item",list);
应该是

request.setAttribute("items",list);

除此之外,我认为不能在请求参数上使用${items}构造。您没有对“name”属性执行此操作-为此,您使用
request.getAttribute
读取了它,因此您需要在foreach中执行此操作您错误地键入了arraylist的名称

<select name='listSelect'>
<c:forEach items="${item}" var="temp">
    <option value='${temp}'>${temp}</option>
</c:forEach>
</select>

${temp}

为了避免上述错误,您应该遵循命名约定,因为可以很容易地在表示层而不是servlet中进行更改。所以这可能是最优先考虑的,所以您需要在您的foreach中这样做,因为他正在使用jstl。因此,需要在此处使用getAttribute。现在,为了获得正确的端到端,没有什么比在JSP中解决它更好的显示方式了。首先在请求中放入一个适当命名的列表。然后,为了读取该属性,请确保使用了正确的模式。@Drihannayakkarra您检查控制台了吗?你有什么错误吗?@AshleyFrieze这个变化没有显示任何东西thanks@AshleyFrieze你说我的语法错了吗?你应该把
jstl
jar添加到你的构建路径中。