方法参数和JSTL

时间:2011-03-24 06:40:05

标签: java jsp jstl

带有使用JSTL返回列表的参数的方法的“items”属性语法是什么?例如,如果我有一个方法

List<String> fName = null;
public List<String> FirstName(String firstName)
{
    return firstName
}

和JSP

<c:foreach var="something" items="fname">
    ${something}
</c:foreach>

如何为参数提供方法?

谢谢。

2 个答案:

答案 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);