0

I using spring mvc and hibernate xml mapping. And I have error about in jsp:

My jsp (storeManager.jsp):

<jsp:useBean id="albumService" type="com.example.service.AlbumService" scope="request" />

<table>
    <thead>
        <tr>
            <th>Genre</th>
            <th>Artist</th>
            <th>Title</th>
            <th>Price</th>
            <th></th>
            <th></th>
            <th></th>
        </tr>
    </thead>

    <tbody>
        <tr>
        <%for (Album myAlbum : albumService.getAllAlbums()) { %>
            <%int tempGenreId = myAlbum.getGenreId().getGenreId(); %>
            <%int tempArtistId = myAlbum.getArtistid().getArtistid(); %>
            <td><%=albumService.findGenreByIdFromAlbumRepository(tempGenreId).getName()%></td>
            <td><%=albumService.findArtistByIdFromAlbumRepository(tempArtistId).getName()%></td>
            <td><%=myAlbum.getTitle()%></td>
            <td><%=myAlbum.getPrice()%></td>
            <td><a href="EditAlbum?editAlbumId=<%=myAlbum.getAlbumId()%>">Edit</a></td>
            <td><a href="DetailsAlbum?detailsAlbumId=<%=myAlbum.getAlbumId()%>">Details</a></td>
            <td><a href="DeleteAlbum?deleteAlbumId=<%=myAlbum.getAlbumId()%>">Delete</a></td>
        </tr>

        <%}%>
    </tbody>
</table>

And my Controller(StoreManagerController.java)

@Controller
@RequestMapping("/StoreManager")
public class StoreManagerController 
{
@Autowired
private AlbumService albumService;

@Autowired
private GenreService genreService;

@Autowired
private ArtistService artistService;

@RequestMapping(value="/", method = RequestMethod.GET)
public ModelAndView getStoreManagerPage(HttpServletRequest request, HttpSession session,ModelMap model) {

    logger.debug("JUST GOT STORE MANAGER PAGE");

    List<Album> albumList = albumService.getAllAlbums();
    model.put("albumList", albumList);

    return new ModelAndView("storeManager", "albumService" , "albumService");
}

When I deploy and run. it happent a error following:

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/storeManager.jsp at line 18

15: <%@page import="java.util.List" %>
16: <%@page import="java.util.Map" %>
17: 
18: <jsp:useBean id="albumService" type="com.example.service.AlbumService" scope="request" />
19: 
20: 
21: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
ch.qos.logback.classic.selector.servlet.LoggerContextFilter.doFilter(LoggerContextFilter.java:70)

root cause

java.lang.ClassCastException: java.lang.String cannot be cast to com.example.service.AlbumService
org.apache.jsp.WEB_002dINF.jsp.storeManager_jsp._jspService(storeManager_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
ch.qos.logback.classic.selector.servlet.LoggerContextFilter.doFilter(LoggerContextFilter.java:70)

How can I solve this error?

1 Answer 1

2

Looks like the third parameter where you're creating the ModelAndView object is incorrect. You're passing in a string, but the jsp:useBean tag is expecting it to be an AlbumService object.

Change

return new ModelAndView("storeManager", "albumService" , "albumService");

to

return new ModelAndView("storeManager", "albumService" , albumService);
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.