gpt4 book ai didi

java.lang.ClassCastException : java. lang.String 无法转换为 com.example.service.AlbumService

转载 作者:行者123 更新时间:2023-12-02 06:53:49 25 4
gpt4 key购买 nike

我使用 spring mvc 和 hibernate xml 映射。我在 jsp 中遇到错误:

我的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>

还有我的 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");
}

当我部署并运行时。发生以下错误:

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)

如何解决这个错误?

最佳答案

看起来您创建 ModelAndView 对象的第三个参数不正确。您正在传递一个字符串,但 jsp:useBean 标记期望它是一个 AlbumService 对象。

改变

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

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

关于java.lang.ClassCastException : java. lang.String 无法转换为 com.example.service.AlbumService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17675742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com