在Struts中使用异常
1 自定义用户异常
public class MyException extends Exception{
private String code;
public MyException(){
super();
}
public MyException(String code){
this.code=code;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
2 在相应的业务方法中抛出异常
public boolean isExistMember(String memberCode)throws MyException{
List list=(List)baseDAO.getByProperty("TMember","memberCode",memberCode);
if(list.size()>0){
throw new MyException("Error_001");
}else{
return false;
}
}
3 在Action中作出相应的页面跳转
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
AddMemberForm addMemberForm = (AddMemberForm) form;// TODO Auto-generated method stub
try{
if(!memberManager.isExistMember(addMemberForm.getMemberCode())){
memberManager.addMember(addMemberForm);
}
}catch(MyException ee){
request.setAttribute("code",ee.getCode());
return mapping.findForward("error");
}catch(Exception e){
e.printStackTrace();
}
return mapping.findForward("success");
}
*其中"error","success"要先在对应的Action中配置好,内容如下
name="addMemberForm"
path="/addMember"
scope="request">
4 首先定义好Struts中常用的标签文件,把这些标签统一放到一个jsp文件中方便在其它页面使用标签时可以直接引用
taglibs.jsp内容如下:<!---->
5 再创建一个引用properties文件的jsp文件
i18n.jsp内容如下:
<fmt:setbundle basename="com.demo.resource.member" var="addMember"></fmt:setbundle>
其中member.properties文件内容如下:
####==============Error====================
Error_001=此会员已存在!
####==============Success====================
Succ_001=增加成功!
6 在jsp页面使用时:
如在error.jsp内容如下:
<!---->
<!---->
<!---->
<!---->
<html:html lang="true">
<html:base>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
error.jsp
<fmt:message bundle="${addMember}"><!----></fmt:message>
</html:html>
<html:html lang="true">
<fmt:message bundle="${addMember}"><!----></fmt:message>
</html:html>
分享到:
- 2007-08-28 14:00
- 浏览 1368
- 评论(1)
- 论坛回复 / 浏览 (1 / 1870)
- 查看更多
相关推荐
- 应该尽量避免在Action方法中使用`try-catch`块,而是依赖于Struts2的异常处理机制。 - 全局异常处理应该作为最后的防线,用于处理未被局部异常处理捕获的异常。 - 使用自定义异常可以帮助代码更具可读性和可...
5. **使用`ActionError`和`FieldError`**:Struts提供了一种将异常信息存储在`ActionContext`中的机制,通过`ActionError`和`FieldError`对象,可以将错误消息关联到特定的Action或者表单字段,方便在视图层显示。...
这篇博客文章“Struts2中异常处理(demo)”可能详细介绍了如何在Struts2框架下优雅地处理程序中的异常。 在Java Web开发中,异常是程序运行时遇到的问题,例如无效的用户输入、资源未找到或内部系统错误。Struts2...
在Struts2框架中,异常处理主要依赖于两个关键组件:`ExceptionMappingInterceptor`(异常映射拦截器)和`ActionError`。当一个Action执行过程中抛出未捕获的异常时,`ExceptionMappingInterceptor`会介入并根据配置...
在Struts1中,异常处理主要通过两个组件来实现:`Action`类和`Tiles`或`Struts-config.xml`配置文件中的`exception`标签。当一个请求被发送到服务器并由Struts框架处理时,首先会执行相应的`Action`类。如果在这个...
这篇博文主要探讨的是如何在Struts2中设置和使用全局异常提示属性文件。 首先,我们要理解Struts2的异常处理机制。当控制器或业务逻辑抛出异常时,Struts2框架会捕获这些异常并根据配置决定如何响应。默认情况下,...
项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。
如果在此过程中用户选择取消下载,浏览器可能会中断连接,但Struts2可能还在后台继续处理这个请求,导致资源未被正确释放,从而引发异常。 解决此类问题的关键在于正确处理文件流和用户请求的中断。以下是一些解决...
9. ** strut2-dojo-plugin**:Struts 2还提供了Dojo工具集插件,方便在Web应用中使用Dojo JavaScript库,增强前端交互体验。 10. **拦截器(Interceptors)**:Struts 2引入了拦截器的概念,它允许在Action调用前后...
局部异常映射是在Action类内部进行的,通过在`@Action`注解中使用`exception`属性来指定。这种方法允许你为特定的Action定义异常处理逻辑。例如: ```java @Action(value = "myAction", results = { @Result...
7. **国际化与本地化**:讲解如何在Struts中实现多语言支持,以及资源文件的使用。 8. **最佳实践**:提供一些优化Struts应用的建议,如性能调优,代码结构的优化等。 9. **案例分析**:通过实际应用场景,展示...
Struts2是一个流行的Java web框架,它提供了强大的异常处理机制,使得开发者能够优雅地管理和展示在应用程序中出现的错误和异常。以下是对Struts2异常处理机制的详细说明: 1. **异常处理流程**: 当一个Action...
将Struts2与JasperReports结合使用,可以方便地在Web应用中实现动态报表的生成和展示。 首先,我们需要了解Struts2中整合JasperReports的基本步骤: 1. **环境准备**:确保你已经安装了MyEclipse开发环境,并且在...
在提供的压缩包文件"Struts_exception"中,可能包含了Struts异常处理的相关示例代码或者教程,例如如何配置struts.xml,如何创建自定义异常类,以及如何在Action中进行异常处理等。这些资源可以帮助开发者更深入地...
首先,你需要在Action类中抛出一个自定义的运行时异常,并在该异常中包含需要返回给客户端的错误信息。例如: ```java public class MyAction { public String execute() throws MyCustomException { // 业务逻辑...
在Struts2框架的应用中,经常会出现各种类型的异常,其中一种常见的异常便是数字格式异常(`NumberFormatException`)。这种异常通常发生在应用程序尝试将非数字字符串转换为数字类型(如`Integer`或`Double`)时。 ...
- **异常描述**:当在 JSP 页面中使用自定义标签时,如果标签中定义了 `name` 属性,则必须同时定义 `type` 属性。 - **解决方案**: - 检查 JSP 页面中的标签是否正确设置了 `type` 属性。 - 如果 `name` 属性值...
此外,对于Struts1.x中与Action相关的异常,如`org.apache.struts.action.ActionException`,你可以在Action类中直接抛出,框架会自动处理这些异常,并根据`struts-config.xml`中的配置进行相应操作。 总结来说,...
2. 动作级别异常处理:在具体的Action类中,你可以使用`@ExceptionHandler`注解来处理特定的异常。这个注解允许你指定一个方法来处理特定类型的异常。例如: ```java public class MyAction { @ExceptionHandler...