【问题标题】:How do I access form input from HTML/thymeleaf to Spring controller?如何从 HTML/thymeleaf 访问表单输入到 Spring 控制器?
【发布时间】:2017-06-25 02:06:24
【问题描述】:

我正在尝试制作一个名为 balance 的 html 页面,用户可以在其中输入帐号。将输入值检索到控制器的最佳方法是什么?我试过这个,我不知道这是否是正确的方法。

    @PostMapping("/balance")
    public  String balanceCheck(@RequestParam("aNum") Long num,@ModelAttribute Transactions user,Model model) {


     int deposits=0;
     int withdraw=0;
     int balance=0;
     long accountNum= user.getAccountNum();


     Iterable <Transactions>accountTrans=  transactRepository.findByAccountNum(user.getAccountNum());

     for (Transactions tran: accountTrans){

         if (tran.getAction().equals("D")){

             deposits+=tran.getAmmount();
         }

         else if (tran.getAction().equals("W")){

             withdraw+=tran.getAmmount();
         }
     }

     balance=deposits-withdraw;
     model.addAttribute("balance", balance);




       return "balance" ;
    }

这是我的html:

    <form action="#" th:action="@{/balance}"  method="post">

    <p> ACCOUNT #: <input type="number" name="aNum "/></p>

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

【问题讨论】:

  • 欢迎来到 SO。当您发布您的问题时,请务必明确说明无效的内容。

标签: java spring spring-boot thymeleaf


【解决方案1】:

要在页面上打印值,您需要:

<form action="#" th:object="${user}" th:action="@{/balance}" method="post">

   <p>ACCOUNT #: <input type="number" th:name="aNum"/></p>

   <input type="submit" value="Submit"/>

</form>

然后创建一个@GetMapping,其中将包含model.addAttribute("user", user);,但是您计划获取/创建用户。

通过这样做,您是在告诉 Spring 将值绑定到 user bean。

您也可以删除aNum&lt;P&gt; 标签后的空格。听起来确实是完美主义者,但格式不正确的代码容易出错,并且下一个人更难阅读。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 2018-04-08
    • 2018-11-17
    • 2019-10-13
    • 2017-12-02
    • 2017-09-16
    相关资源
    最近更新 更多