无法识别新的Java类属性,用于dwr

时间:2019-07-25 08:32:53

标签: javascript java dwr

在尝试扩展一个几乎没有新属性的类并将其用于某些dwr调用时,我遇到了非常奇怪的行为。我对dwr不太熟悉,我不确定这个问题是否与它有关,但是我以防万一。

发生的事情是,我向java类添加了一些新字段,并为所有新字段添加了getter和setter方法,因此此类满足“ Java Bean”约定。但我注意到,这些新属性根本无法识别。 Intellisence可以看到它们,但是我根本无法设置这个新字段,而且在调试器中,这个新字段是不可见的。我检查了编译后的.class文件,新字段也在那里不可见。

关于dwr的部分。此类用于某些dwr调用。有一个函数的一个参数是此类的对象。该函数的调用是通过javascript进行的。首先创建javascript对象并将其传递给函数,然后将该对象转换为java对象,如下所示:

JProxy.sendReqistrationEmail(getRegisterObject(), name, gRecaptchaResponse, sendReqistrationEmailCallback);

function getRegisterObject() {
    var params = {
        email: jQuery('#email').val(),
        firstname: jQuery('#firstname').val(),
        lastname: jQuery('#lastname').val(),
        ...
    };

    return params;
}

dwr.xml文件中有一个转换器,我可以执行从javascript类到Java类的转换。

<convert converter="bean" match="com.a.b.business.RegistrationData" />

我可以在Java中调试sendReqistrationEmail并执行其中的代码,并且RegisterObject已成功转换为Java类,但是添加的属性不可见。例如,当我在调试时将鼠标悬停在此类对象上时,它会显示该类的所有属性及其值,但不会显示该新属性。

这就是我怀疑dwr的原因,因为此类的对象是使用javascript对象的转换实例化的。我不确定是否必须为此转换指定所有类属性的列表,但是除了<convert这行之外,我没有发现其他任何东西。

这是一个大型项目的一部分,我不确定这是如何与当前的类字段一起使用的,而不是与我添加的新字段一起使用的。

编辑:我刚刚注意到该行出现在日志中:

  

WARN [BasicObjectConverter.warn]:59-缺少Java bean属性   匹配javascript属性:优惠。原因请参见调试级别日志:

我添加了哪个属性。

0 个答案:

没有答案
相关问题