使用java.lang.Integer属性将空字符串传递给.tag会导致0(非null)

时间:2012-09-19 19:56:41

标签: java jsp jsp-tags

我有一个.tag文件,其属性类型为java.lang.Integer,如下所示:

<%@ attribute name="userId" required="true" type="java.lang.Integer"%>

将空字符串传递给此标记时,该属性的结果值为 0 ,而不是 null (因为我希望使用 java .lang.Integer 和所有)。

我错过了什么吗?在这种情况下,有没有办法强制属性值为 null

1 个答案:

答案 0 :(得分:0)

我的猜测是,如果类型转换失败(即传入的值不会解析为整数,因此Integer.parseInt会抛出NumberFormatException),那么该属性初始化为0.这种区分是有意义的在该案例和空对象引用之间。

如何在.tag文件中使用String属性?然后,您可以测试它的值(对于null或为空等)并根据需要转换为Integer。