Java 如何在velocity模板中将字符串解析为bigInteger?

Java 如何在velocity模板中将字符串解析为bigInteger?,java,velocity,biginteger,Java,Velocity,Biginteger,如何在velocity模板中将字符串解析为bigInteger 如果我们有integer,那么我们可以做如下操作(但不确定,我们如何为bigIntger类型执行此操作): 要做到这一点,您需要在上下文中使用一个小助手类: public class NumberHelper { public static final NumberHelper INSTANCE = new NumberHelper(); private Exception lastError = null;

如何在velocity模板中将字符串解析为bigInteger

如果我们有integer,那么我们可以做如下操作(但不确定,我们如何为bigIntger类型执行此操作):


要做到这一点,您需要在上下文中使用一个小助手类:

public class NumberHelper {
    public static final NumberHelper INSTANCE = new NumberHelper();
    private Exception lastError = null;

    private NumberHelper() {
        // intentionally empty
    }

    public void setLastError(Exception lastError) {
        this.lastError = lastError;
    }

    public Exception getLastError() {
        return lastError;
    }

    public BigInteger parseBigInteger(String numberAsString) {
        BigInteger retVal = null;

        try {
            retVal = new BigInteger(numberAsString);
        } catch(NumberFormatException e) {
            setLastError(e);
        }

        return;
    }
}
现在把它放到你的上下文中:

context.put("numberHelper", NumberHelper.INSTANCE);
并在模板上使用它

#set( $Integer = 0 )
#set( $input1InInteger = $numberHelper.parseBigInteger($input1) )

要做到这一点,您需要在上下文中使用一个小助手类:

public class NumberHelper {
    public static final NumberHelper INSTANCE = new NumberHelper();
    private Exception lastError = null;

    private NumberHelper() {
        // intentionally empty
    }

    public void setLastError(Exception lastError) {
        this.lastError = lastError;
    }

    public Exception getLastError() {
        return lastError;
    }

    public BigInteger parseBigInteger(String numberAsString) {
        BigInteger retVal = null;

        try {
            retVal = new BigInteger(numberAsString);
        } catch(NumberFormatException e) {
            setLastError(e);
        }

        return;
    }
}
现在把它放到你的上下文中:

context.put("numberHelper", NumberHelper.INSTANCE);
并在模板上使用它

#set( $Integer = 0 )
#set( $input1InInteger = $numberHelper.parseBigInteger($input1) )

如果你可以使用
java.lang.Long
,你可以做:
#set($int=0)#set($Long=$int.longValue())
如果你可以使用
java.lang.Long
,你可以做:
#set($int=0)#set($Long=$int.longValue())
@Dhaval你的问题表明velocity现在支持BigInteger。您使用的是什么版本?Velocity支持所有Java对象。。。我不明白为什么BigInteger从那时起就不总是得到支持view@Dhaval您的问题表明velocity现在支持BigInteger。您使用的是什么版本?Velocity支持所有Java对象。。。我不明白为什么BigInteger不能从这个角度得到支持