时间: 2021-07-31 作者:daque
至此,咱们再有少许题目还没有廓清。开始,用户不许废除名字地区;并且即使用户在“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。