2012-09-18 6 views

답변

2

숫자에 문자열을 암시 적으로 캐스팅하고 c:catch을 사용하여 예외 (있는 경우)를 catch하려고 할 수 있습니다. 예를 들면 :

<c:catch var="catchString"> 
    <c:set var="myString" value="${0 + 'asd1234'}" /> 
</c:catch> 
<c:if test="${not empty catchString}"> 
    <p>Failed: ${catchString}</p> 
</c:if> 

<c:catch var="catchNumber"> 
    <c:set var="myNumber" value="${0 + '1234'}" /> 
</c:catch> 
<c:if test="${not empty catchNumber}"> 
    <p>Failed: ${catchNumber}</p> 
</c:if> 

윌 출력이 :

<p>Failed: java.lang.NumberFormatException: For input string: "asd1234"</p> 

당신이 소수를 확인하기 위해 당신이 fmt:formatNumber를 사용하여 수표를 만들 수 수레를 방지하려면 : 물론

<c:set var="myFloat" value="12"/> 
<fmt:formatNumber value="${myFloat}" pattern="0" var="myInteger"/> 
<c:if test="${myInteger - myFloat eq 0}"> 
    <p>No decimals</p> 
</c:if> 

당신이 할 수 이것을 숫자 형식 예외를 잡기 위해 c:catch과 결합하십시오.

<c:set var="myString" value="abc12.34"/> 
<c:catch> 
    <fmt:formatNumber value="${myString}" pattern="0" var="myInteger"/> 
    <c:set var="passed" value="${myInteger - myString eq 0}"/> 
</c:catch> 

<c:if test="${passed}"> 
    <p>Passed</p> 
</c:if> 

<c:if test="${not passed}"> 
    <p>Failed</p> 
</c:if> 
+0

안녕하세요, 그것은 작동했습니다!, tnxs. – crsuarezf