| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
JSP由浅入深(11-2)
作者:未知    文章来源:网络    点击数:    更新时间:2006-7-12
   至此,我们还有一些问题还没有澄清。首先,用户不能清除名字区域而且如果用户在“age”区域键入一个不对的内容(不是一个效果的整型数值),Java异常错误就会发生。
  现在,我们将使用Blazix标志库中的其他标志来解决这个问题。Blazie提供了一个blx:setProperty标志来解决这个问题。Blx:setProperty允许我们定义一个异常错误处理方法。如果有异常错误发生,我们可以为用户收集一个错误信息并且继续处理。
  下面是我们修改后的SaveName.jsp,它可以处理任何错误。它不仅可以显示GetName.jsp并且在其上可以键入正确的数据,而且自动地连接到NextPage.jsp:

〈%@ taglib prefix="blx" uri="/blx.tld" %〉

〈%!


boolean haveError;


StringBuffer errors;




public void errorHandler( String field,


String value,


Exception ex )


{


haveError = true;


if ( errors == null )


errors = new StringBuffer();


else


errors.append( "〈P〉" );


errors.append( "〈P〉Value for field \"" +


field + "\" is invalid." );


if ( ex instanceof java.lang.NumberFormatException )


errors.append( " The value must be a number." );


}


%〉


〈%


// Variables must be initialized outside declaration!


haveError = false;


errors = null;


%〉


---------------


〈BODY〉


〈jsp:useBean id="user" class="UserData" scope="session"/〉


〈blx:setProperty name="user"


property="*" 


onError="errorHandler"/〉 


〈%


if ( haveError ) {


out.println( errors.toString());


pageContext.include( "GetName.jsp" );


} else


pageContext.forward( "NextPage.jsp" );


%〉


〈/BODY〉


〈/HTML〉


  这里要注意haveError和errors必须每次都重新初始化,因为它们在声明的外部被初始化。

  现在,如果一个错误发生在blx:setProperty处理的过程,我们就显示这个错误并再次回到GetName.jsp以使用户可以校正这个错误。如果没有错误发生,我们就自动让用户连接到NextPage.jsp。
  • 上一篇文章:

  • 下一篇文章:
  • 相关文章