2012-09-12 35 views
0

我偶然發現了servlet,我只是喜歡它們,因爲它們完全劃分了邏輯和視圖。但是我在JSP頁面中調用實例方法時遇到了問題。如何從JSTL的JSP頁面調用數組方法?

我有如下的JSP頁面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 


<!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 items="${stringarray}"> 
${stringarray} 
<br/> 
</c:forEach> 
</body> 
</html> 

而下面的Servlet:

package controller; 

import java.io.IOException; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.Cookie; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class Servlet 
*/ 
@WebServlet("/Servlet") 
public class Servlet extends HttpServlet 
{ 

    private static final long serialVersionUID = 1L; 

    /** 
    * Default constructor. 
    */ 
    public Servlet() 
    { 
     // TODO Auto-generated constructor stub 
    } 

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     String[] strarray = new String[5]; 

     strarray[0] = "zero"; 
     strarray[1] = "one"; 
     strarray[2] = "two"; 
     strarray[3] = "three"; 
     strarray[4] = "four"; 

     request.setAttribute("stringarray", strarray); 
     request.getRequestDispatcher("index.jsp").forward(request, response); 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     // TODO Auto-generated method stub 
    } 
} 

我爲什麼不能叫我在JSP頁面用點分隔的陣列的方法?

回答

1

我認爲你在尋找什麼如下:

<c:forEach var="stringElement" items="${stringarray}"> 
    ${stringElement} 
    <br/> 
</c:forEach> 

c:forEach標籤遍歷在${stringarray}每一個元素,但訪問的每個項目,你必須定義一個變量。另請參閱TLD docs

+0

完美的作品!謝謝。 調用數組方法呢? – Birdman

+0

你指的是哪個'數組'方法? – beny23

+0

我的「stringarray」? – Birdman