2012-12-31 8 views
2

숫자가 들어있는 requiredProperty을 사용하는 Maven 아치 유형이 있지만 속도 변수는 string입니다. 이 속성은 숫자보다 큰 경우 그래서, 내 템플릿에 나는 테스트 할 수 없습니다 :Maven 아키 타입 필수 속성 번호

#if($myVar gt 5) 

내가 테스트 한 성공하지 solution 다음과 같습니다.

나는 또한이 시도했습니다

#set($intVar = Integer.parseInt($myVar)) 

또한 원형 생성에 실패있어 그.

어떤 조언이 필요합니까?

답변

1

Velociy에서 클래스를 참조 할 수 없으므로 Integer.parseInt은 작동하지 않습니다. 그러나 자바에서는 어떤 정적 메소드가 인스턴스 메소드로 호출 될 수 있고 Velocity는 단지 자바로 변모되어 있기 때문에 어떤 정수에서도 parseInt을 호출 할 수 있습니다. 당신은 당신이 $myVar이 가정하고있는 하나 개의 변수에서 시작하는 정수의 보류를 받고있어

#if ($myVar.length().parseInt($myVar) gt 5) 

: 그래서 당신이 트릭을 시도 할 수 있습니다.

+0

우아하지는 않지만 작동합니다.) – krampstudio

+0

사용하기에 조금 깔끔한 또 다른 옵션은 Java에서 컨텍스트를 빌드 한 다음 Java에서 컨텍스트를 작성할 때 Integer.class를 Velocity 변수로 설정하는 것입니다 (예 : Java : context.put ("intClass", Integer.class); and in Velocity : $ intClass.parseInt ($ myVar) – centic

+0

Velocity 부분이 Maven에 의해 처리된다는 것을 제외하면, 그렇게하기 위해서는 Maven에서 더 깊은 부분을 파고들 필요가있다. –

0

내가 아키 타입 기술자에서 제공하는 정규 표현식을 기반으로 사용자 입력 유효성 검사를 구현 한 :

https://issues.apache.org/jira/browse/ARCHETYPE-487

잘하면 그것이 받는다는 원형 플러그인의 이후 버전이 문제를 해결할 수 있습니다.

관련 문제