【问题标题】:Spring-Hibernate: How to define default values when using related objectsSpring-Hibernate:使用相关对象时如何定义默认值
【发布时间】:2011-06-07 17:39:48
【问题描述】:

我有一个 Spring 3 MVC 应用程序将 Hibernate 用作 ORM。一切正常。但是一个问题:

我有一个 Web 界面来创建新对象,比如一个新客户。每个客户都有一个状态。 STATUS-Table 有预定义的值。 CUSTOMER-Table 有一个 status_id 字段来加入信息。

在显示客户列表时,我可以访问 CUSTOMER.STATUS 属性并根据 id 获取正确的对象。

但是:如何为新客户定义标准状态?我有一个带有下拉菜单的 Web 界面。

<form:select path="status">
<form:option value="0" label="- Please Select -" />
<form:options items="${customerStatuses}" itemValue="id" />
</form:select>

这总是显示“请选择”文本,因为该值似乎总是 0???如何将其更改为我单独选择的标准状态?

【问题讨论】:

    标签: hibernate model-view-controller spring forms


    【解决方案1】:

    您的控制器需要处理这个问题。我会这样做:

    @RequestMapping(value = { "/new-customer-form" })
    public String showNewCustomerForm(ModelMap model) {
        Customer newCustomer = new Customer();
        newCustomer.setStatus(statusRepository.getDefaultStatus());
        model.addAttribute("customer", newCustomer);
        model.addAttribute("customerStatuses", statusRepository.getAllStatuses());
        return "customer-form";
    }
    

    事实上,“-请选择-”标签将不再显示,因为您的状态始终处于填充状态。

    (希望这次我能正确理解你的问题。)

    【讨论】:

    • 但我需要 STATUS 表,因为 a) 每个状态都有一些比名称更多的属性,我在表列中配置这些属性,b) 可以根据登录用户配置状态.
    • 有没有办法定义默认的status_id?那应该从表中拉出正确的状态对象,对吗?因为无论用户在其个人状态列表中添加或删除什么,默认值都会出现。
    • 好的。所以我创建了一个新客户,然后必须调用相应的设置器。而且我必须在我的 Controller 中执行此操作,并且无法在类中正确定义它。不完美,但至少我现在知道我可以停止寻找另一种解决方案。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 2015-03-22
    • 2016-09-11
    • 2013-09-15
    • 2017-04-02
    • 2018-01-08
    • 2013-01-20
    相关资源
    最近更新 更多