我遇到从Servlet发送的JSP页面打印(显示)数组数据的问题。以下是代码和JSP页面。请帮助我追踪我正在犯的错误。
我的服务器代码:
//inside doGET method
String title="Reading cookies example";
String[] info={"What the hell!!","Nothing"};
request.setAttribute("title", title);
request.setAttribute("name", info);
RequestDispatcher rd=request.getRequestDispatcher("myjsp.jsp");
rd.forward(request, response);
我的JSP代码:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%--
Document : myjsp
Created on : Apr 5, 2014, 1:19:35 PM
Author : sabin
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<c:forEach var="pagetitle" items="title">
<h1>${title}</h1>
</c:forEach>
<c:forEach var="data" items="{name}" >
<C:OUT value="${data}"> </C:OUT>
<h1>${name}</h1>
</c:forEach>
</body>
</html>
输出页面:
阅读cookies示例 [Ljava.lang.String; @ 195019d
而不是打印&#34;什么是地狱&#34;什么都不打印[Ljava.lang.String; @ 195019d。是什么原因和我错过了什么?如果有人能帮我解决这个问题,我将非常感激。提前感谢你。
答案 0 :(得分:1)
试试这个,
${title}
<c:forEach var="temp" items="${name}">
<c:out value="${temp}"></c:out>
</c:forEach>
因为title
不是数组,所以它只是一个字符串也读取此内容以了解for-each tag的功能
会打印这样的输出,
阅读饼干示例怎么回事!!没什么
答案 1 :(得分:0)
请更正foreach循环,如下所示
<c:forEach var="data" items="${requestScope.name}" >
您的代码应该是这样的
<c:forEach var="data" items="${requestScope.name}" >
<c:out value="${data}"> </c:out>
<h1>${name}</h1>
</c:forEach>
1) <c:out value="${name}" />
2) <c:out value="${requestScope.name}" />
requestScope当你绝对希望你的对象来自请求时,而不是来自页面,会话或应用程序范围,而使用$ {name}将在页面中搜索name属性,然后在请求中,然后在会话,然后在应用程序中。
让我们说JSP中的其他一些代码在页面范围中设置了一个name属性。但是您想要访问请求中的名称:您被迫使用requestScope。
让我们说会话可能有一个名称属性。如果JSP忘记在请求范围中设置name属性,则不使用requestScope.name将返回会话范围的名称。
如果JSP片段的目标是访问封闭JSP中设置的内容,那么这个JSP片段可能是JSP标记,您应该将该名称作为参数传递给此标记。
答案 2 :(得分:0)
放置表格格式
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>myjsp.jsp</title>
</head>
<body>
<h1>${title} </h1>
<br/><br/><br/>
<table border="1">
<c:forEach var="temp" items="${name}">
<tr>
<td>
<c:out value="${temp}" escapeXml="false" ></c:out>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>