将自定义jQuery类传递给Spring Controller

时间:2013-03-15 11:52:57

标签: java jquery spring-mvc

我创建了一个对象并添加到Jquery中的数组中,如下所示

function CharacterData(name,value,type) {
    this.name = name;
    this.value = value;
    this.type = type;
}

var characters = new Array();
characters[0]=new CharacterData("0","1","2");
characters[1]=new CharacterData("0","1","2");
$.ajax({
    type: "POST",
    url: "xxyyzz.action",
    data: {
        characters:characters
    },
    success:function(response) {
        alert("GOOD");
    }
});

现在我需要将此值传递给我的Spring MVC Controller,如下所示

@ResponseBody
@RequestMapping(value = "xxyyzz.action", method = {RequestMethod.POST})
public MyClass getxxyyzzPage(
        final CharacterDataList characters) {
            return null;
        }

POJO如下

 public class CharacterDataList {

    private List<CharacterData> characterData;

    public List<CharacterData> getCharacterData() {
        return characterData;
    }

    public void setCharacterData(
            final List<CharacterData> characterData) {
        this.characterData = characterData;
    }
}

下一个

public class CharacterData {

    private String name, value, type;

    public String getName() {
        return name;
    }

    public void setName(final String name) {
        this.name = name;
    }

    public String getValue() {
        return value;
    }

    public void setValue(final String value) {
        this.value = value;
    }

    public String getType() {
        return type;
    }

    public void setType(final String type) {
        this.type = type;
    }
}

但是在控制器中我得到“characters!= null”但是“characters.characterData = null”。请告诉我如何传递这些值?

1 个答案:

答案 0 :(得分:0)

我认为你不需要CharacterDataList。我认为问题在于,de-marshaller正在寻找具有成员“characterData”的值“characters”。你有一个“字符”数组,它们只有一堆恰好是CharacterData类型的对象。

您是否尝试将Controller方法更改为List?