这是我正在编码的jsp页面: 我的要求是从sql数据库中显示一行。
<%@page import="edu.mindscripts.BookAction"%>
<%@page import="java.util.Iterator"%>
<%@page import="edu.mindscripts.BookPojo"%>
<%@page import="java.util.List"%>
<%@page import="org.hibernate.Query"%>
<%@page import="org.hibernate.Session"%>
<%@page import="org.springframework.orm.hibernate3.HibernateTemplate"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>
<%!Object o; %>
<%
//Object o = session.getAttribute("template");
//HibernateTemplate template = (HibernateTemplate)o;
Cookie c[]=request.getCookies();
for(Cookie c1:c)
{
out.println(c1);
out.println(c1.getValue());
session.setAttribute("temp",c1.getValue());
}
out.println(session.getAttribute("temp"));
Object o=session.getAttribute("temp");
out.println(o);
HibernateTemplate template=(HibernateTemplate)o;
out.println(template);
%>
cookie的输出很好,但是当我尝试使用HibernateTemplate时它会抛出异常
我在哪里做错了。 我有另一个设置,编码工作正常。
以下是例外
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.ClassCastException: java.lang.String cannot be cast to
org.springframework.orm.hibernate3.HibernateTemplate
at org.apache.jsp.bookdetails_jsp._jspService(bookdetails_jsp.java:96)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.jasper.servlet.JspServletWrapper.
service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.
serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.
service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.
service(HttpServlet.java:717)
at
提前致谢
答案 0 :(得分:0)
错误告诉您session.getAttribute("temp")
正在返回一个字符串,而不是HibernateTemplate。
查看代码中设置会话属性“temp”的所有区域,并确保在设置hibernate模板时没有设置字符串值。
答案 1 :(得分:0)
伙计,这是您网页中使用 Scriptlet 的问题,难以维护并且难以阅读。问题出在HibernateTemplate template=(HibernateTemplate)o;
。你的 o 对象是一个字符串而不是 HibernateTemplate ,你必须调试你的控制器,看看你投入了什么&#39; temp&#39;变量。也许,请考虑使用 JSTL 而不是 Scriptlet 。祝你有个美好的一天。