带有使用JSTL返回列表的参数的方法的“items”属性语法是什么?例如,如果我有一个方法
List<String> fName = null;
public List<String> FirstName(String firstName)
{
return firstName
}
和JSP
<c:foreach var="something" items="fname">
${something}
</c:foreach>
如何为参数提供方法?
谢谢。
答案 0 :(得分:2)
这没有多大意义。流程有问题。您应该准确准备JSP在servlet中需要的列表。
List<String> firstNames = something.list(firstName);
request.setAttribute("firstNames", firstNames);
request.getRequestDispatcher("result.jsp").forward(request, response);
然后
<c:forEach items="${firstNames}" var="firstName">
${firstName}<br/>
</c:forEach>
列表当然可以是bean属性,但是到目前为止,您只需确保要在servlet中准备好已经的列表,以便JSP EL只需要将它作为bean属性。
与具体问题无关,在JSP / EL 2.2(沿着Servlet 3.0)中,可以将参数传递给bean方法,但在您的特定情况下,这绝对不是正确的解决方案。
答案 1 :(得分:0)
如何将变量传递给jstl?
如果您在单页中处理此过程。这是一个例子
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
<%@ page isELIgnored="false" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List;" %>
<%
List<String> xList = new ArrayList<String>();
xList.add("a");
xList.add("b");
xList.add("c");
pageContext.setAttribute("sList", xList);
%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<c:forEach var="lst" items="${sList}">
<span>${lst}</span>
</c:forEach>
</body>
</html>
注意:您应该了解良好的编程习惯。我发布的内容只是foreach打印值的示例。变量可能来自一个sevlet。
EDITED: 将变量值从servlet传递给jsp。在你的servlet里面它可以是post post或do get或其他具有HttpServletRequest / HttpServletResponse的函数
request.setAttribute("sList", xList);
request.getRequestDispatcher("your.jsp").forward(request, response);