Html 从thymeleaf中的按钮获取输入

Html 从thymeleaf中的按钮获取输入,html,spring,spring-mvc,thymeleaf,Html,Spring,Spring Mvc,Thymeleaf,我向用户显示一个表单,其中包含一些详细信息,然后用户单击“批准”和“拒绝”。在后端,我想在一个属性-userAction中实现这一点,它可以是“批准”或“拒绝” 如何向用户单击的按钮添加输入?然后这个输入就是requestDto对象的一部分 <form th:action="@{/mission/store/{uuid}(uuid=${uuid})}" th:object="${requestDto}" method="post" class="mission_form"> &l

我向用户显示一个表单,其中包含一些详细信息,然后用户单击“批准”和“拒绝”。在后端,我想在一个属性-userAction中实现这一点,它可以是“批准”或“拒绝”

如何向用户单击的按钮添加输入?然后这个输入就是requestDto对象的一部分

<form th:action="@{/mission/store/{uuid}(uuid=${uuid})}" th:object="${requestDto}" method="post" class="mission_form">
  <div class="wizard-header">
    <h3 class="wizard-title">
      Approve Mission
    </h3>
    <h5>Should you chose to accept this mission, press approve.</h5>
  </div>

  <div class="wizard-footer">
    <!--<div class="pull-right">-->
    <input type='button' class="btn btn-success" name='approve' value='Approve' />
    <!--</div>-->
    <div class="pull-left">
      <input type='button' th:field="*{}" class='btn btn-danger' name='previous' value='Decline' />
    </div>
    <div class="clearfix"></div>
  </div>
</form>

批准任务
如果您选择接受此任务,请按“批准”。

首先定义一个合适的DataTransferObject:

public class MyRequestDto {
   private String userAction;
   // don't forget getters and setters
}
然后将该类的对象添加到模型中

// if you are return a M&V-object:
ModelAndView mv = new ModelAndView("viewName")
ModelAndView.addObject("requestDto", new MyRequestDto());

// if you define a Model-Object as input-parameter:
Model.addAttribute("requestDto", new MyRequestDto());
定义这样的表单(我使用按钮元素)。重点是不要使用th:field属性:

<form th:action="...." method="POST" th:object="${requestDto}">
    <button name="userAction" value="approve" >Approve</button>
    <button name="userAction" value="reject" >Reject</button>
</form>

批准
拒绝
通过将其添加到控制器输入参数(处理post请求的控制器)来接收DataTransferObject:

@有效的RequestDto RequestDto,BindingResult BindingResult


现在您可以访问requestDto的userAction属性。如果单击第一个按钮,则该值为“批准”;如果单击第二个按钮,则该值为“拒绝”。首先,您可以通过检查bindingResults.hasErrors()来检查是否存在绑定错误。

按钮标记的工作方式是否与输入标记相同?也许是个愚蠢的问题,我很少使用html。我不会在这里使用。Type=“button”通常用于激活javascript函数,但您正在尝试向控制器发送一些内容。因此,请使用type=“submit”或按钮元素。。。。看起来您正在使用twitters引导。因此,您可以定义类似按钮文本或按钮文本的按钮