1

我在自定义 JSP 标记的标题中遇到异常。问题是,setter 方法是存在的。实际上,每个属性都有 2-3 个 setter 方法。一个接收对象,一个接收字符串,一个接收标记的 tld(通常是布尔值)中指定的值。

这个例外并不一致。我无法预测它何时会发生,也不知道它是如何解决的。我在服务器上部署了完全相同的应用程序,页面抛出了这个异常,但是当我使用 Eclipse 在本地运行应用程序时,这个完全相同的页面工作正常。

我曾经对某个标签发生的这个问题进行了“修复”。标签有一个属性

Booelan someAttribute = "true"; // Or something like that, the actual code is at work

3个二传手是

public void setSomeAttribute(Object attr) { ... }
public void setSomeAttribute(String attr) { ... }
public void setSomeAttribute(Boolean attr) { ... } // The type of the attribute in the tld

出于某种原因,它抛出了这个异常,所以我添加了第四个 setter

public void setsomeAttribute(Object attr) { ... }

它解决了问题!没有其他标签需要这个奇怪的解决方案,该问题通过重新部署和从 SVN 存储库复制代码和其他非永久性解决方案得到解决。

我真的不知道是什么导致了这个问题或如何调查。我真的很感激任何想法!

4

1 回答 1

0

为什么你不只有一种 setter 方法?为什么需要这 3 个 setter 方法?

如果您编写一个接受 Object 的 setter 方法,为什么要为 String 编写一个 setter 方法而为 Boolean 编写另一个?您只需一种方法即可处理所有这些情况:

setSomeAttribute(Object attr)
于 2013-01-02T02:33:59.153 回答