2009-09-24 3 views
3

FreeMarker에서 문자열을 숫자로 변환 할 수 있는지 테스트하려고합니다. 예를 들어, "123"및 "3.14"는 변환 될 수 있지만 "foo"는 변환 될 수 없습니다. 문자열에 number 메서드 (예 : "123"?number)를 사용하여 오류가 있는지 여부를 확인하여 테스트 할 수 있지만 오류를 발생시키지 않고 테스트 할 수있는 방법을 찾고 있습니다.FreeMarker에서 문자열을 숫자로 변환 할 수 있는지 테스트

나는 ?matches("^\d+$")을 시도했으나 정수에서는 정상적으로 작동하지만 모든 숫자에서 작동하는 것을 찾고 있습니다.

좀 더 정교한 정규식을 사용하면 될 수 있지만 더 간단한 방법이 있는지 궁금합니다.

답변

7

더 간단한 방법은 FreeMarker에서하지 않는 것입니다 :-) 이것은 컨트롤러 (또는 모델의 메서드)가 템플릿을보기보다는 수행해야하는 것처럼 들립니다. 즉, 몇 가지 옵션이 있습니다.

  1. <#attempt>/<#recover> 블록 내에? 번호가 내장되어 있습니다.
  2. 모델 개체 중 하나에 문자열을 숫자로 확인하고 템플릿에서 호출하는 방법을 작성하십시오.
  3. 이 작업을 수행 할 사용자 지정 지시문을 작성하십시오.
+0

첫 번째 옵션을 시도해 보았습니다. 고맙습니다. –

관련 문제