JSP无法解析为某种类型

  ArrayList movies = (ArrayList) request.getAttribute("movieinfo"); if(movies!=null){ for(int i=0;i<movies.size();i++){ movie b = (movie) movies.get(i); out.println(""); out.println("" + b.getMovieID() + ""); out.println("" + b.getMovieTitle() + ""); out.println("" + b.getReleaseDate() + ""); out.println("" + b.getDescription() + ""); out.println("" + b.getImage() + ""); } } 

嗨,我试图循环电影的arraylist。 但是我收到一个错误:

movie是一个java值bean

 org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 80 in the jsp file: /index.jsp movie cannot be resolved to a type 77: 78: if(movies!=null){ 79: for(int i=0;i<movies.size();i++){ 80: movie b = (movie) movies.get(i); 81: out.println(""); 82: out.println("" + b.getMovieID() + ""); 83: out.println("" + b.getMovieTitle() + ""); 

谢谢您的帮助。 如果我应该从其他bean(例如实用程序bean)中提取其他信息,请告诉我

src/movie/movie.java

 package movie; import java.util.Date; public class movie { private int MovieID; private String MovieTitle; private String Description; private String Image; private Date ReleaseDate; public int getMovieID() { return MovieID; } public void setMovieID(int movieID) { MovieID = movieID; } public String getMovieTitle() { return MovieTitle; } public void setMovieTitle(String movieTitle) { MovieTitle = movieTitle; } public String getDescription() { return Description; } public void setDescription(String description) { Description = description; } public String getImage() { return Image; } public void setImage(String image) { Image = image; } public Date getReleaseDate() { return ReleaseDate; } public void setReleaseDate(Date releaseDate) { ReleaseDate = releaseDate; } } 

src/movie/MovieDB.java

  package movie; import java.sql.*; import java.util.ArrayList; public class MovieDB { public ArrayList movies (String query){ ArrayList movies= new ArrayList(); try { // step 1 : load JDBC Driver Class.forName("com.mysql.jdbc.Driver"); //step2 : define Connection URL String connURL = "jdbc:mysql://localhost:3306/sp_movie?user=root&password=root"; //step3 establish connection url Connection conn = DriverManager.getConnection(connURL); String sql="{call "+query+"}"; CallableStatement cs=conn.prepareCall(sql); ResultSet rs=cs.executeQuery(); while(rs.next()){ movie movies1 = new movie(); movies1.setMovieID(rs.getInt("Movie_ID")); movies1.setMovieTitle(rs.getString("Movie_Title")); movies1.setReleaseDate(rs.getDate("Release_Date")); movies1.setImage(rs.getString("Image")); movies1.setDescription(rs.getString("Description")); movies.add(movies1); } } catch (Exception e){ } finally { try { } catch (Exception e) {} } return movies; } } 

src/movie/Moviesearch.java

 package movie; import java.io.IOException; import java.util.ArrayList; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Moviesearch */ @WebServlet("/Moviesearch") public class Moviesearch extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Moviesearch() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String search = (String) request.getAttribute("search"); String searchtype = (String) request.getAttribute("searchtype"); String query = null; if (searchtype.equals("title")){ query = "titlesearch('"+search+"')"; }else if(searchtype.equals("genre")){ query = "genresearch('"+search+"')"; }else if(searchtype.equals("actor")){ query = "actorsearch('"+search+"')"; } ArrayList movies = null; try{ String userid = request.getParameter("userid"); MovieDB getinfo = new MovieDB(); movies = getinfo.movies(query); request.setAttribute("movieinfo",movies); RequestDispatcher rd = request.getRequestDispatcher("index.jsp"); rd.forward(request, response); } catch (Exception e){ } finally { } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } } 

看看你的movie类定义。 它包装在movie包中。

 package movie; // full class name will be movie.movie import java.util.Date; public class movie { ...... } 

您应该将movie类导入为:

 <%@ page import ="movie.movie" %> 

即使在JSP中编写Java代码也是非常不鼓励的。 阅读如何避免JSP文件中的Java代码? 。

为了您的目的,您可以使用JSTL的循环。