JSP cannot be resolved to a type

53,454

Look at your movie class definition . It is packaged inside movie package.

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

You should import the movie class as :

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

Even then writing Java code inside JSP is highly discouraged . Read How to avoid Java Code in JSP-Files?.

For your purpose you can use JSTL's <c:forEach> loop.

Share:
53,454
KAKAK
Author by

KAKAK

Updated on July 09, 2022

Comments

  • KAKAK
    KAKAK almost 2 years
    <%@ page import ="java.util.*" %>
    <%@ page import ="book.*" %>
    
    
    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("<tr>");
                out.println("<td>" + b.getMovieID() + "</td>");
                out.println("<td>" + b.getMovieTitle() + "</td>");
                out.println("<td>" + b.getReleaseDate() + "</td>");
                out.println("<td>" + b.getDescription() + "</td>");
                out.println("<td>" + b.getImage() + "</td>");
    
                 }
            }
    

    Hi i am trying to loop through the arraylist of movies. However i am getting an error:

    movie is a java value 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("<tr>");
    82:             out.println("<td>" + b.getMovieID() + "</td>");
    83:             out.println("<td>" + b.getMovieTitle() + "</td>");
    

    Thanks for the help. Please let me know if i should put of additional information from other beans e.g. the utility 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
        }
    
    }