spring+struts+hibernate,用声明式事务,做一个登陆页面,用户名和密码,输入后到数据库查询,有到sucess.jsp,没有到error.jsp。如果数据库open,上面一切正常。但是数据库我关闭,去点登陆,在IE中http://127.0.0.1:8080/sshtest/login.action;jsessionid=F85A0851E22EE8E494338A4CDD85C5D0报错,我希望这个错误到自己指定的页面,如何处理
下面是错误提示。
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:599)
root cause
org.hibernate.exception.GenericJDBCException: Cannot open connection
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
------解决方法--------------------------------------------------------
在web.xml中配置:
<error-page>
<error-code>500 </error-code>
<location>/error.jsp </location>
</error-page>
------解决方法--------------------------------------------------------
------解决方法--------------------------------------------------------
1 这种方法肯定是行不通了,不可能让用户自己去改
2 将错误码编程正确嘛,已经很简单了;
3 只有在IE下才有这种限制,IE对错误码进行了处理,比如500错误,如果错误页面太小,就会指定到IE内部的错误页面,firefox就没有这种变态限制,具体字节大小可以参见这里:
http://www.404-error-page.com/404-error-page-too-short-problem-microsoft-ie.shtml
所以可以增加个隐藏域,适当放入一些内容