我想做一个测验,我希望在提交表单后输出一系列问题。
我知道我想用豆子但我该怎么做?
由于
答案 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>");
}