明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

JSP由淺入深(11-2)

[摘要]至此,我們還有一些問題還沒有澄清。首先,用戶不能清除名字區(qū)域;而且如果用戶在“age”區(qū)域鍵入一個(gè)不對的內(nèi)容(不是一個(gè)效果的整型數(shù)值),Java異常錯(cuò)誤就會發(fā)生! ‖F(xiàn)在,我們將使用Blazix標(biāo)志庫中的其它標(biāo)志來解決這個(gè)問題。Blazie提供了一個(gè)blx:setProperty標(biāo)志來解決這個(gè)問題...
至此,我們還有一些問題還沒有澄清。首先,用戶不能清除名字區(qū)域;而且如果用戶在“age”區(qū)域鍵入一個(gè)不對的內(nèi)容(不是一個(gè)效果的整型數(shù)值),Java異常錯(cuò)誤就會發(fā)生。
  現(xiàn)在,我們將使用Blazix標(biāo)志庫中的其它標(biāo)志來解決這個(gè)問題。Blazie提供了一個(gè)blx:setProperty標(biāo)志來解決這個(gè)問題。Blx:setProperty允許我們定義一個(gè)異常錯(cuò)誤處理方法。如果有異常錯(cuò)誤發(fā)生,我們可以為用戶收集一個(gè)錯(cuò)誤信息并且繼續(xù)處理。
  下面是我們修改后的SaveName.jsp,它可以處理任何錯(cuò)誤。它不僅可以顯示GetName.jsp并且在其上可以鍵入正確的數(shù)據(jù),而且自動(dòng)地連接到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必須每次都重新初始化,因?yàn)樗鼈冊诼暶鞯耐獠勘怀跏蓟?br>
  現(xiàn)在,如果一個(gè)錯(cuò)誤發(fā)生在blx:setProperty處理的過程,我們就顯示這個(gè)錯(cuò)誤并再次回到GetName.jsp以使用戶可以校正這個(gè)錯(cuò)誤。如果沒有錯(cuò)誤發(fā)生,我們就自動(dòng)讓用戶連接到NextPage.jsp。




標(biāo)簽:JSP由淺入深(11-2) 

相關(guān)文章