在Spring MVC 3中,当查询字符串参数与对象字段不匹配时,如何将对象绑定到查询字符串?

时间:2011-08-05 17:05:09

标签: spring spring-mvc model-binding

第三方正在向我发送部分数据,以通过查询字符串填写我的域对象。我需要部分填写我的域对象,然后让用户通过表单填写其余部分。我对进入的查询字符串参数没有任何控制权,所以我无法改变它们,但我真的希望能够使用Spring MVC的数据绑定能力,而不是手工完成。

我该怎么做?

要为此添加一些复杂功能,某些参数将需要进行大量处理,因为它们映射到其他对象(例如仅从名称映射到用户),这些对象可能尚不存在且需要创建。我认为,这方面可以使用属性编辑器来处理。如果我遇到麻烦,我会问另一个问题。

一旦我有一个部分填充的域对象,将其传递给编辑视图等是没有问题的,但我不知道如何正确处理初始域对象的数量。

2 个答案:

答案 0 :(得分:0)

到目前为止,我唯一能够提出的是有一个额外的类,它的属性被命名为匹配入站查询参数和一个从这个中间类转换到我的域类的函数。

虽然只是为了在变量名之间进行映射,但这似乎有很多开销。

答案 1 :(得分:0)

难道你不仅可以让getter与setter命名不同,或者如果有必要,还有2个getter和2个setter吗?

private int spn;

// Standard getter/setter    

public int getSpn() {
    return spn;
}

public void setSpn(int spn) {
    this.spn = spn;
}


// More descriptively named getter/setter

public int getShortParameterName() {
    return spn;
}

public void setShortParameterName(int spn) {
    this.spn = spn;
}

也许这不是标准的bean惯例,但肯定会起作用吗?