当前位置: 首页 > 图文教程 > 网络编程 > JSP > JSP由浅入深(11-2)

JSP
JSP中有关时间和日期类的使用
JSP中引用JavaBean组件
如何在JSP中添加自己的Tag
使用JSP/Servlet上载文件
关于Java Servlet的Filter 技术
JSP数据库连接方式总结
不需ODBC可由IP地址与端口号建立与SQLSERVER的连接
J2ME学习札记(三)
java 设计模式之Observer
在JSP中如何从数据流中取得图片数据并按随意位置显示
三级级联下拉菜单实现
网页中在图层中部分显示图片(窗口形式)
MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
XSLT合并模板简述
JSP入门学习笔记
Structs中基本配置入门
利用jConfig获取xml文件中的配置信息
关于Applet做数字签名,授予访问本地资源(原创)
在JSP开发中使用jdom解析临时存放数据的XML文件
关于Hhtml嵌入打成jar包的Applet方法

JSP由浅入深(11-2)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-04   浏览: 46 ::
收藏到网摘: n/a

  至此,我们还有一些问题还没有澄清。首先,用户不能清除名字区域;而且如果用户在“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。