【问题标题】:Renaming a nested property of a Spring MVC model attribute重命名 Spring MVC 模型属性的嵌套属性
【发布时间】:2015-01-07 01:08:00
【问题描述】:

我有以下表格:

public class ChildcareWorkerAdvertisementForm extends AbstractForm<ChildcareWorkerAdvertisement> {

    @Valid
    @Override
    //Rename the property from "model" to "advertisement"?
    public ChildcareWorkerAdvertisement getModel() {
        return super.getModel();
    }

}

我想在绑定发生时将名为model 的属性重命名为其他名称,也许是advertisement,以便我可以在视图中将其称为advertisement(百里香等...)。

这可以使用 Spring MVC 吗?

编辑 1:这是我的应用程序'AbstractForm 类:

package com.bignibou.web.controller;

public class AbstractForm<T> {

    private T model;

    public T getModel() {
        return this.model;
    }

    public final void setModel(T model) {
        this.model = model;
    }
   ...

您可以看到它使用了在 java 部分非常简洁的泛型。但是,我想在视图中自定义 model 属性的名称,因此我提出了问题。

【问题讨论】:

  • 这个答案怎么样? stackoverflow.com/questions/8986593/…
  • 你能发布更多细节吗?也许github上的示例代码? AbstractForm 是什么类?是这个吗?spring-rich-c.sourceforge.net/1.1.0/apidocs/org/springframework/…
  • @Jigish:AbstractForm 是我在编辑中包含的自定义类:参见上面的编辑。
  • @NeilMcGuigan:我确实看到了这篇文章,但我希望 Spring 4.1 提供了一种更简单的方法来实现基于控制器方法的属性重命名......
  • 您是否尝试过“添加新”advertisement 属性到模型例如:public ChildcareWorkerAdvertisement getAdvertismenet() { return super.getModel(); } 和 setter 类似。

标签: spring-mvc spring-mvc-initbinders


【解决方案1】:

你可以尝试在你的控制器中跟随

@Valid
@Override
@ModelAttribute("advertisement")
//Rename the property from "model" to "advertisement"?
public ChildcareWorkerAdvertisement getModel() {
    return super.getModel();
}

【讨论】:

    猜你喜欢
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多