当前位置: 首页 > 知识库问答 >
问题:

Spring将多个属性绑定到同一@ModelAttribute

罗波鸿
2023-03-14

我有一个预览页面,需要添加或编辑模型,并显示预览。

@RequestMapping(value = "/preview", method = RequestMethod.POST)
    public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
        //action
    } 

@RequestMapping(value = "/preview", method = RequestMethod.POST)
    public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
        //action
    } 

我需要从添加表单页和编辑表单页调用预览。我要通过的模型是相同的,但来自不同的形式。

(1) ModelAttribute是否有支持这种多属性名称映射的方法?(2) 我怎么能考虑重新设计这个?考虑(a)在表单提交之前重命名表单名称/属性以使用相同的属性名称。(b) 完全删除ModelAttribute——这不是我的选项,因为我使用的是SpringMVC表单绑定。

注意:我使用editForm/addForm作为会话属性。

共有1个答案

尹何平
2023-03-14

实际上不是解决方案,而是解决办法。

办法1:

@RequestMapping(value = "/preview", method = RequestMethod.PUT)
public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
    //action
} 

@RequestMapping(value = "/preview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
    //action
} 

办法二:

@RequestMapping(value = "/editpreview", method = RequestMethod.PUT)
public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
    //action
} 

@RequestMapping(value = "/addpreview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
    //action
} 
 类似资料:
  • 我正在开发一个简单的Java程序来完成一些简单的mySQL内容。它有一个用JavaFX制作的小GUI。 GUI的控制器有一个SimpleBoleanProperty,我们称之为X,它指示到数据库的连接状态。我将一些简单的东西绑定到它,比如按钮的disableProperty so send querys,如果没有连接,应该禁用它。到现在为止,一直都还不错。 我有一个标签,用于执行以下操作: 如果X

  • 问题内容: 我有一个带有文本字段和按钮的简单fxml。如果文本字段为空,我想禁用按钮。所以我在控制器中插入如下内容: ..那很好。问题是当我添加第二个文本字段时,如果其中一个文本字段为空,希望禁用我的按钮。那该怎么办?我尝试了以下操作,但这不起作用: 问题答案: 可以通过以下方式绑定到布尔表达式:

  • 我有一个带有文本字段和按钮的简单fxml。如果文本字段为空,我想禁用按钮。所以我在我的控制器中插入如下内容: ..这很好用。问题是,当我添加第二个文本字段时,如果其中一个文本字段为空,我希望禁用我的按钮。那怎么办呢?我尝试了以下方法,但不起作用:

  • 最好的办法是什么?根据显示的数据,我希望绑定到MyText1或MyText2。我怎么做“开关”?

  • 我想做的是: 我有一个JavaFX窗口,我通过拖动不断改变它的宽度和高度。然后的文本具有以下格式: 例子: 我想使用绑定,而不是使用2(两)个ChangeListeners来实现这一点。 我也读过这个问题JavaFX绑定到多个属性

  • 我试图将子类属性绑定到GridViewColumn。我有一个母类M1和三个不同的子类S1、S2和S3。GridViewColumn由类M1的对象填充。我希望将S2的一个属性绑定到这个GridViewColumn的头,而M1中没有实现这个属性。 有人能给我解释一下怎么做吗?