在JSP中从数组输出String

时间:2010-04-28 22:28:28

标签: java jsp javabeans

我想做一个测验,我希望在提交表单后输出一系列问题。

我知道我想用豆子但我该怎么做?

由于

2 个答案:

答案 0 :(得分:2)

使用JSP 2.0,它可能看起来像这样:

<% 
request.setAttribute( "questions", new String[]{"one","two","three"} );  
%>   
<c:forEach var="question" items="${questions}" varStatus="loop">  
    [${loop.index}]: ${question}<br/>  
</c:forEach>  

将在处理提交而不是JSP中的代码中设置问题。

如果您使用的是JSP 1.2:

<c:forEach var="question" items="${questions}" varStatus="loop">  
    <c:out value="[${loop.index}]" />: <c:out value="${question}"/><br/>  
</c:forEach>  

使用EL和JSTL,如果要在数组中存储对象而不仅仅是字符串,则可以访问任何Question对象属性:

${question.myProperty}

答案 1 :(得分:2)

使用JSTL <c:forEach>进行此操作。 JSTL支持取决于所讨论的servletcontainer。例如,Tomcat未随JSTL一起提供。您只需将jstl-1.2.jar放入网络应用的/WEB-INF/lib即可安装JSTL。您可以在JSP中使用JSTL core tags,方法是根据JSP文件中的文档声明它:

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

您可以在Object[]标记的List属性中找到数组(items)或<c:forEach>。您可以使用var属性定义每个项目,以便可以在循环内访问它:

<c:forEach items="${questions}" var="question">
    <p>Question: ${question}</p>
</c:forEach>

这与普通Java中的以下内容基本相同:

for (String question : questions) { // Assuming questions is a String[].
    System.out.println("<p>Question: " + question + "</p>");
}