【问题标题】:Is there a simple and clean way to bind a form input to two attributes on the domain class?是否有一种简单而干净的方法可以将表单输入绑定到域类上的两个属性?
【发布时间】:2026-01-09 04:25:03
【问题描述】:

假设您有一个具有两个属性的类,并且它们总是被设置为相同的初始值(例如,两个属性上的“bla bla”)。由于 spring 在将输入值绑定到域类方面做了所有艰苦的工作,所以我一直想知道是否有一种方法可以将表单中的相同值绑定到两个属性上。

(我知道我可以在控制器上将第二个的值设置为等于第一个,但这正是我想要避免的)

请考虑以下代码来说明我要解释的内容:

class X {
   private String value;
   private String secondValue

   ... getters and setters ...
}

<form >
   <input name="value/secondValue" />

   <input type="submit">
</form>

我希望在 spring 发挥作用后设置这两个属性。

【问题讨论】:

    标签: java html spring spring-mvc binding


    【解决方案1】:

    您可以使用 jQuery 之类的 JavaScript 库,使用 change 之类的事件,并将其他隐藏输入设置为指向第二个变量:

    <input type="hidden" name="secondValue" value="" />
    
    
    $(document).ready(function(){
        $('#value').change(function() {
            $('#secondValue').val($('#value').val());
        });
    });
    

    【讨论】:

    • 我知道这是一种可能性,但是,正如我所说,我想知道是否有一种干净的方法可以使用弹簧配置或类似的东西来做到这一点。而且,据我研究过这个问题,使用 JS 根本不是最干净的方法。