程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP由淺入深(11-2)

JSP由淺入深(11-2)

編輯:關於JSP

至此,我們還有一些問題還沒有澄清。首先,用戶不能清除名字區域;而且如果用戶在“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。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved