- 浏览: 162869 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
jiangyeqt:
好好的温习了一遍,讲的非常的到位
Session的原理 -
JAVA静静:
这是什么啊?有没有源码?看不懂诶!
开源框架Pushlet入门 -
colinzhy:
讲的很深刻,学习了
Session的原理 -
昔雪似花:
...
Map-iterator -
不相信眼泪:
恩,很好,多谢
.scc文件是做什么用的?
一 配置异常(在struts-config.xml文件中定义),定制异常有两种:
1 全局异常(Global Exceptions)
<global-exceptions>
<exception key="invalideUser"
path="/Login.jsp" type="com.future.struts.MyException" />
</global-exceptions>
2 局部异常(Local Exception)
<action-mappings>
<action attribute="loginForm" name="loginForm"
path="/loginAction(出错转向的路径)" scope="request"
input="/login.jsp"//异常转向的页面,同exception中的path,优先级path高于input
/>
<exception key="invalideUser(异常信息的key)" path="/Error.jsp"
type="cn.itcast.ItcastException(异常类全名)" />
</action-mappings>
path:出现异常后跳转的页面
key:异常信息的键,对应的值在资源文件当中
type:所要处理的异常类
二 在相应的action中的execute方法中抛出异常
三 在异常处理页面(path所指的页面)使用html:errors标签打印异常信息
1 建立资源文件ApplicationResources.properties
内容:invaliduser=it is an invalid user(key/value)
2 配置struts-config.xml文件
<message-resources parameter="cn.itcast.ApplicationResources" key="invalideuser"/>
3 使用html:errors标记打印信息
<html:errors />
--------------------------------------------
1 编程式异常
* 截获异常
* 创建相应的异常消息
* 传递异常消息
* 转向相应的页面处理异常
2 声明式异常(自动处理的异常)
* 在struts-config.xml文件中配置<exeception/>标签
* 理解局部和全局exception
* 注意局部<exception/>标签需要配置到<forward/>标签的前面
<exeception/>标签中的属性说明:
* key:指异常信息对应的国际化消息文本,这个key值需要在国际化资源文件中定义
* type:处理那种异常
* path:定义一但出现异常,需要转向那个页面,如果不定义path,
默认情况下将使用<action>标签中input属性对应的页面
* scope:可以取值request和session,默认为request
* handler:导常的处理类,struts默认采用org.apache.struts.action.ExceptionHandler,
如果做个性化的异常处理可以继承此类复写相应的方法
-------------------------------------------------------------------------
个性异常类定义
一 方法:
1 定义MessageResources.propertices资源文件
2 在struts-config中配置<exception/>
<exception key="error.exception" type="com.bjsxt.struts.ErrorCodeException"
handler="com.bjsxt.struts.ErrorCodeException" />
3 编写异常类ErrorCodeException继承RuntimeException
public class ErrorCodeException extends RuntimeException {
private String errorCode;//这是key对应的值
private Object[] args;//这是参数集合
public ErrorCodeException(String errorCode){
this(errorCode,null);
}
public ErrorCodeException(String errorCode,Object args0){
this(errorCode,new Object[]{args0});
}
public ErrorCodeException(String errorCode,Object[] args){
this.errorCode=errorCode;
this.args=args;
}
public String getErrorCode() {
return errorCode;
}
public Object[] getArgs() {
return args;
}
}
4 编写ErrorCodeExceptionHandler类继承ExceptionHandler,
复写public ActionForward execute(Exception ex, ExceptionConfig ae,
ActionMapping mapping, ActionForm formInstance,
HttpServletRequest request, HttpServletResponse response)
throws ServletException{}方法:
public ActionForward execute(Exception ex, ExceptionConfig ae,
ActionMapping mapping, ActionForm formInstance,
HttpServletRequest request, HttpServletResponse response)
throws ServletException {
//添加判断
------------------------------------------------------------
if(!(ex instanceof ErrorCodeException)){
return super.execute(ex, ae, mapping, formInstance, request, response);
}
------------------------------------------------------------
ActionForward forward;
ActionMessage error;
String property;
// Build the forward from the exception mapping if it exists
// or from the form input
if (ae.getPath() != null) {
forward = new ActionForward(ae.getPath());
} else {
forward = mapping.getInputForward();
}
// Figure out the error
if (ex instanceof ModuleException) {
error = ((ModuleException) ex).getActionMessage();
property = ((ModuleException) ex).getProperty();
} else {
//改修这个地方
//----------------------------------------------
ErrorCodeException ece=(ErrorCodeException)ex;
String errorCode=ece.getErrorCode();
Object[] args=ece.getArgs();
error = new ActionMessage(errorCode, args);
property = error.getKey();
//------------------------------------------------
//error = new ActionMessage(ae.getKey(), ex.getMessage());
//property = error.getKey();
}
this.logException(ex);
// Store the exception
request.setAttribute(Globals.EXCEPTION_KEY, ex);
this.storeException(request, property, error, forward, ae.getScope());
if (!response.isCommitted()) {
return forward;
}
return null;
}
}
5 页面直接抛出异常
public void login(String username,String password){
if(!"admin".equals(username)){
throw new ErrorCodeException("user.not.found",username,age);
}
}
---------------------------------------------------------------------
二 方法:
1 定义MessageResources.propertices资源文件
内容:error.exception={0}
2 在struts-config中配置<exception/>
<exception key="error.exception" type="com.bjsxt.struts.ErrorCodeException"/>
3 编写异常类ErrorCodeException继承RuntimeException
public class ErrorCodeException extends RuntimeException {
public ErrorCodeException(String msg){
super(msg);
}
}
4 页面直接抛出异常
public void login(String username,String password){
if(!"admin".equals(username)){
throw new ErrorCodeException("名称"+usrname+"错误!");
}
}
--------------------------------------------------------------------------
1 ApplicationResources.properties文件
num2Meg=is not a double
2 struts-config.xml
<message-resources parameter="ApplicationResources" />
3 ActionMessages errs=new ActionMessages();
errs.add("num1Error",new ActionMessage("num2Meg"));
//errs.add(ActionMessages.GLOBAL_MESSAGE,new ActionMessage("num2Meg"));
this.saveErrors(request,errs);
页面
<html:errors property="num1Error"/>
//<html:errors/>//全局不能指定property
errs.header="<script>alert("
errs.footer=")</script>"
发表评论
-
[导入]为Struts 2.0做好准备
2009-10-29 19:00 381摘要: Struts 2.0系列之一 Struts ... -
[导入]常用的Struts 2.0的标志(Tag)介绍
2009-10-29 19:00 618摘要: 在上一篇文章《为Struts 2.0做好准备 ... -
[导入]Struts 2.0的Action讲解
2009-10-29 19:00 517摘要: 有Struts 1.x经验的朋友都知道Act ... -
[导入]在Struts 2.0中国际化(i18n)您的应用程序
2009-10-29 19:00 365摘要: Struts 2.0系列之四 国际化是商业系 ... -
[导入]转换器(Converter)——Struts 2.0中的魔术师
2009-10-29 19:00 563摘要: 在我已往的Struts 1.x项目经验中,有 ... -
[导入]在Struts 2.0中实现表单数据校验(Validation)
2009-10-29 19:00 614摘要: All Input Is Evil! ... -
[导入]Struts 2的基石——拦截器(Interceptor)
2009-10-29 19:00 393摘要: Struts 2.0系列之七 Interce ... -
[导入]在Struts 2中实现IoC
2009-10-29 19:00 776摘要: Struts 2.0系列之八 IoC(Inv ... -
[导入]在Struts 2中实现文件上传
2009-10-29 19:00 643摘要: Struts 2.0系列之九 Struts ... -
[导入]在Struts 2中实现CRUD
2009-10-29 19:00 309摘要: Struts 2系列之十 CRUD是Crea ... -
[导入]Struts 2中的OGNL
2009-10-29 19:00 700摘要: Struts 2系列之十一 OGNL是一种功 ... -
[导入]Strus 2的新表单标志的使用
2009-10-29 19:00 399摘要: Struts 2系列之十二 Struts 2 ... -
[导入]Struts 2与AJAX(第一部分)
2009-10-29 19:00 495摘要: Struts 2系列之十三 在当今——Web ... -
[导入]Struts 2与AJAX(第二部分)
2009-10-29 19:00 530摘要: Struts 2系列之十四 在上一篇文章《S ... -
[导入]Struts 2与AJAX(第三部分)
2009-10-29 19:00 723摘要: 在上两部分的《Struts 2与AJAX》中 ... -
struts2 页面转向错误No result defined for action and result Invalidation
2009-11-20 16:57 754Messages: No result defined for ... -
struts1.3-基础及原理
2009-11-29 22:59 725网站struts.apache.org 实践 ... -
struts1.3-DispatchAction
2009-11-30 08:10 630DynaActionForm 配态form 1 配置动态for ... -
struts1.3-Converter
2009-11-30 08:10 752Converter添加java.util.Date ... -
struts1.3-plugIn
2009-11-30 08:12 420可以加入ValidatorPlugIn动态验证框架插件 org ...
相关推荐
Struts1.3是Apache软件基金会的一个开源框架,主要用于构建基于Java EE的Web应用程序。它遵循Model-View-Controller(MVC)设计模式,提供了一种结构化的方式来组织应用程序,使得开发人员能够更有效地处理业务逻辑...
Struts1.3是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个框架的主要目的是为了简化开发过程,提高可维护性和可扩展性。Struts1.3源代码的分析...
Struts1.3 API函数是Java Web开发中用于构建Model-View-Controller(MVC)架构的应用框架Apache Struts的核心组成部分。Struts1.3版本是该框架的一个稳定且广泛使用的迭代,它提供了丰富的功能来帮助开发者管理应用...
Struts1.3提供了全局的Exception Handler,可以统一处理应用程序中抛出的异常,确保错误信息能被正确呈现给用户。 通过以上这些核心元素,基于Struts1.3的网上书店能够实现用户注册、登录、浏览书籍、搜索、购买、...
Struts1.3 + Hibernate BBS论坛是一个基于Java Web开发的经典项目,利用了Struts1.3框架和Hibernate ORM框架,结合MyEclipse集成开发环境、MySQL5.0数据库以及Tomcat5.0以上的应用服务器。这个项目展示了如何在实际...
10. **异常处理**:通过Global Exception Handler和Exception Mapping,Struts 1.3能够优雅地处理运行时异常,并将其转化为用户友好的错误页面。 在源码中,我们可以看到这些核心组件的实现细节,例如ActionServlet...
在本项目中,我们将深入探讨Struts1.3、Hibernate3.2和Spring2.5的整合开发,以及如何在其中加入事务管理。 Struts1.3作为MVC(Model-View-Controller)框架,主要负责控制层的任务,它通过ActionServlet接收HTTP...
Struts1.3框架在构建Web应用程序时,提供了强大的多语言支持、异常处理机制以及StrutsMenu组件的应用,这些功能极大地增强了应用的国际化和用户体验。下面将详细解释这些知识点。 **Struts多语言应用** 1. **资源...
Struts1.3是最受欢迎的Java Web框架之一,它提供了模型-视图-控制器(MVC)架构,便于开发人员构建动态、结构化的Web应用程序。本教程将详细讲解基于Struts1.3的最简单登录代码实现,适合初学者入门学习。 首先,...
8. **异常处理**:通过定义全局的Exception Mapping,Struts 1能够统一处理应用程序中的异常,提供统一的错误页面。 9. **预定义结果类型**:Struts 1.3引入了预定义结果类型,如`success`、`error`和`input`,简化...
7. **Exception Handling**: Struts 提供了全局的异常处理机制,可以在 struts-config.xml 中配置 Exception Handler,统一处理未被捕获的异常,提高了应用的健壮性。 8. **Plug-ins**: Struts 1.3.8 可以通过插件...
在本文中,我们将深入探讨Struts1.3版本及其核心概念、设计模式和丰富的实例,帮助读者理解其内部运行机制。 1. **MVC设计模式**:Struts1基于Model-View-Controller(MVC)设计模式,它将业务逻辑、数据表示与用户...
总结来说,ejb3struts实例是一个综合了EJB3业务逻辑处理和Struts1.3Web展示的示例项目,它展示了如何在Java企业环境中有效地结合这两种技术,以实现高效的Web应用开发。这个实例对于理解EJB3和Struts1.3的集成以及...
DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"> <struts-config> <form-beans> <form-bean name=...
DOCTYPE>`声明了DTD(Document Type Definition),这里指定了使用的是Struts 1.3版本的DTD。 - `<struts-config>`标签是根元素,里面可以包含各种子元素,如`<action-mappings>`等。 ##### 3. action类 Action类...
<exception-type>javax.servlet.ServletException</exception-type> <location>/common/system_error.jsp </error-page> ``` 这些配置指定了当出现特定 HTTP 错误或 Java 异常时,应该转向哪个 JSP 页面进行显示...
#### 1.3 创建表单 在HTML页面上,使用`enctype="multipart/form-data"`来指定表单包含二进制数据,例如文件。 ```html <form action="upload.action" method="POST" enctype="multipart/form-data"> ``` ####...
5. **Tiles**:Struts 1.3.x引入了Tiles框架,用于页面布局和组合。Tiles允许开发者定义可重用的页面模板,增强了视图的灵活性。 6. **国际化与本地化**:Struts支持多语言环境,通过资源包(Resource Bundle)来...