【问题标题】:Spring get clicked button in Java-ClassJava-Class中的Spring被点击按钮
【发布时间】:2017-05-15 09:26:12
【问题描述】:

我有以下问题:我有两个按钮 acceptdecline。在我的控制器类中,我想知道单击了哪个按钮。我以某种方式解决了这个问题,我认为这很糟糕。每个按钮都有自己的表单,这样我就可以看到哪个按钮被触发了。

<form method="post" action="save">
    <input type="hidden" name="accept" th:value="true" />
    <button type="submit" name="accepted" id="modalAcceptTrigger"
        class="btn btn-lg myBtn_accept" title="Auftrag annehmen">
        Annehmen
    </button>
</form>
<form method="post" action="save">
    <input type="hidden" name="decline" th:value="false" />
    <button type="submit" name="declined" id="modalDeclineTrigger"
        class="btn btn-lg myBtn_decline" title="Auftrag abgelehnt">
        Ablehnen
    </button>
</form>

在我的课堂上,我得到了隐藏的输入字段并知道按下了哪个按钮。

@PostMapping("/save")
public String saveJob(@RequestParam(value = "accept") Boolean accept) {

    if (accept) {
        ...
    } else {
        ...
    }
}

我现在的问题是:我怎样才能只制作一个 form 并在我的 java 类中获得触发按钮?有人知道并且可以帮助我吗?

【问题讨论】:

标签: java spring


【解决方案1】:

如你所说,我只需要一个带有 2 个按钮的表单。在提交表单之前,我将执行一个 js 函数来更改输入隐藏值拒绝/接受。所以我会

<form method="post" id="save-form" action="save">
    <input type="hidden" id="action" name="action" />
    <button type="button" name="declined" id="modalDeclineTrigger"
        class="btn btn-lg myBtn_decline" title="Auftrag abgelehnt">
        Ablehnen
    </button>
    <button type="button" name="accepted" id="modalAcceptTrigger"
        class="btn btn-lg myBtn_accept" title="Auftrag annehmen">
        Annehmen
    </button>
</form>

还有js:(应该放在准备好的文档中)

<script>
$('#modalAcceptTrigger').on('click', function(){$('#action').val('decline'); $('#save-form').submit();});
$('#modalDeclineTrigger').on('click', function(){$('#action').val('accept'); $('#save-form').submit();});
</script>

并且控制器应该期望 ENUM {decline, accept} 而不是布尔值

【讨论】:

  • 感谢您的回复。它可以工作,但它不是控制器中的 ENUM,而是一个字符串。
【解决方案2】:

只留下一个隐藏输入的表单

<input type="hidden" name="userAction" th:value="true" />

添加脚本以在提交表单之前根据单击的选项将userAction 设置为truefalse(参见例如here)。

在控制器中

@PostMapping("/save")
public String saveJob(@RequestParam(value = "userAction") Boolean accept) 

【讨论】:

  • 感谢您的回答,我会努力的!
猜你喜欢
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多