对于camelCase字段,使用struts2 json插件进行json生成是不正确的

时间:2014-01-06 08:59:10

标签: java json reflection struts2 struts2-json-plugin

private Integer iDisplayLength ;

public Integer getIDisplayLength() {
        return iDisplayLength;
    }

    public void setIDisplayLength(Integer iDisplayLength) {
        this.iDisplayLength = iDisplayLength;
    }

如果请求包含iDisplayLength,则设置完美,我可以看到该值。但是当响应返回(json-response)然后它返回

IDisplayLength代替iDisplayLength

对我来说似乎是一个错误。我做错了吗?是那些吸气者&塞特斯不正确?

我的struts.xml看起来像:

<action name="c/list" class="actions.MyAction" method="list">
            <result name="*" type="json"></result>
</action>

更新

我在https://github.com/apache/struts2/blob/STRUTS_2_3_15_X/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java

处查看了插件源代码

复制方法后,它用来计算字段的名称:

public static void main(String[] args) throws Exception {
        Class clazz = new IoAction().getClass();

        BeanInfo info = getBeanInfoIgnoreHierarchy(clazz);

        PropertyDescriptor[] props = info.getPropertyDescriptors();

        boolean hasData = false;
        for (PropertyDescriptor prop : props) {
            System.out.println("Field Name : "+prop.getName());
        }
    }

IoAction中,有吸气鬼/背叛者,如:

public String getISortCol_0() {
        return iSortCol_0;
    }

    public void setISortCol_0(String iSortCol_0) {
        this.iSortCol_0 = iSortCol_0;
    }

上面的代码将字段名称打印为ISortCol_0,这是不正确的(恕我直言),它应该返回iSortCol_0这是java反射API中的错误吗?

0 个答案:

没有答案