最近在用struts作东西,可程序出问题了,经常就是白板,什么都不显示,郁闷。还有程序整个完成了,运行起来,发现,有些问题还是会出现,有时候又不出现,怎么对这些异常进行有效的捕获啊?
有人进来讲讲,用struts的异常捕获嘛?
------解决方法--------------------------------------------------------
这种情况一般是因为标签的使用错误引起的,如果用ide(jbuilder等)有时会发现不了,这时直接用tomcat运行的话,是可以看到错误标识的。
------解决方法--------------------------------------------------------
ActionErrors errors = new ActionErrors();
if(!errors.empty()) {
saveErrors(request, errors);
return (new ActionForward(mapping.getInput()));
}
// 把userinfo对象存入session
session.setAttribute(Constants.USER_LOGIN, UC);
return mapping.findForward("success");
我是这样做的在ACTION里然后在JSP中
<html:errors/>
就可以了
------解决方法--------------------------------------------------------
异常处理?跟struts没有关系,该怎么处理就怎么处理,最后如果你有异常跑到了action里面
try
{
}
catch(SQLException se)
{
return 统一的异常错误页面
]
当然如果有很多的异常的话,你可设定异常类型
------解决方法--------------------------------------------------------
struts还得灵活用吧,关于错误的处理,是需要一个机制的
比如在数据处理这一层 或者 业务逻辑这一层, 这时你不可能操作页面显示错误,那只有抛出异常。
而在action 这一层你就要捕获这些异常,对于不同的异常,写一个友好明白的错误信息,forward 到一个错误显示的jsp 或者 直接将错误显示在当前页。
而一个通畅的错误传递和处理机制式需要一番设计的
------解决方法--------------------------------------------------------
在actionservlet中如何把异常送到页面,在jsp页面上也有捕捉的话,就可以把后台的异常送到页面。这样解决肯定是对的。
但是,我遇到的最挠头的问题并不是这样的,而是如你所说的那种,很多时候有空白页,也有时候会出现编译错误,无法编译完整。这样的情况很多时候是由于struts的标签错误导致的,不知道现在是否有比较好的方法来处理这类问题,每次遇到这样的情况,我都是尽量把页面上的东西删的差不多,让它在编译的时候报错,但是很多时候是无法确定到底错误是在什么地方产生的。
------解决方法--------------------------------------------------------
struts很多错误都是标签上的错误,一错误就空白了。
如果是针对代码的,还是自己写一个可以显示抛错误的。
好像ActionErrors也只是保存errors的串,对客户/用户来说没多大意义,
即使有完善的错误描述,维护起来也比较麻烦吧。
------解决方法--------------------------------------------------------
struts使用了宣称式异常处理。
在struts-config.xml文件里是这样定义的:
<global-exceptions>
<exception
handler="com.dmk.strutstest.CustomizedExceptionHandler"
key="org.apache.struts.action.Exception"
path="/Error.jsp"
scope="request"
type="java.lang.Exception" />