如何在POJO中表示要在Grails视图中呈现为选择的集合

时间:2012-07-08 17:38:04

标签: java hibernate grails

我有一个grails应用程序使用持久性注释的POJO进行域模型。 Grails按预期从它们生成控制器和视图,但是对我来说,一个类是一个难题。

我需要表示字符串的集合(目前是字符串的ArrayList),这是grails-view“友好”并将呈现为下拉列表。

ArrayList中的数据“相当”不变,所以我认为enum可以用于它,但我只是不确定。

有问题的课程:

/**
 *  available categories:
 *      Airplane
 *      Rotorcraft
 *      Glider
 *      Lighter than air
 *      Powered lift
 *      Powered parachute
 *      Weight-shift-control
 */
@Entity
public class AircraftCategory {

    public AircraftCategory(){

    this.aircraftCategories.add("Airplane");
    this.aircraftCategories.add("Rotorcraft");
    this.aircraftCategories.add("Glider");
    this.aircraftCategories.add("Lighter Than Air");
    this.aircraftCategories.add("Powered Lift");
    this.aircraftCategories.add("Powered Parachute");
    this.aircraftCategories.add("Weight Shift Control");   
    }

    long id;
    private long version;   
    private ArrayList <String> aircraftCategories = new ArrayList<String>();

    public ArrayList <String> getAircraftCategories() {
        return aircraftCategories;
    }

    public void setAircraftCategories(ArrayList <String> aircraftCategories) {
        this.aircraftCategories = aircraftCategories;

    }

    @Id
    @GeneratedValue
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }    

    public long getVersion() {
        return version;
    }

    public void setVersion(long version) {
        this.version = version;
    } 
}

1 个答案:

答案 0 :(得分:1)

最简单的方法是将其作为“适当的”域对象推送到数据库中。拥有一个基本上只是名称字段的对象有点傻,但它会在脚手架视图中呈现(如果你想要与实际对象有关联)。

另一个优点是,如果您需要向AircraftCategory添加更多数据(例如缩写),您的应用程序中将有一个简单的扩展点。

对于另一种可能的解决方案,this question非常相似。