Html 非常简单的SpringMVC按钮点击

Html 非常简单的SpringMVC按钮点击,html,spring-mvc,Html,Spring Mvc,我的SampleController中有以下代码: @Controller public class SampleController { @RequestMapping("home") public String loadHomePage(Model m) { m.addAttribute("name", "CodeTutr"); return "home"; } @RequestMapping(value="/test",

我的SampleController中有以下代码:

@Controller
public class SampleController {

    @RequestMapping("home")
    public String loadHomePage(Model m) {
        m.addAttribute("name", "CodeTutr");
        return "home";
    }

    @RequestMapping(value="/test", method=RequestMethod.GET)
    public String handlePost(@RequestParam String action, Model m) {
        if( action.equals("save") ){
            //handle save
         }
         else if( action.equals("renew") ){
            //handle renew
         }
        m.addAttribute("name", "change");
        return "home";
    }
}
在页面加载属性时,我将其设置为成功,并显示在网页上。我正在尝试在spring上点击按钮,下面是我的jsp代码

<!DOCTYPE HTML>
<html>
  <head>
    <title>Sample Application</title>
  </head>
  <body>
    <h1>Hello, ${name}!</h1>
    <input type="submit" name="action" value="save" />
  </body>
</html>

示例应用程序
你好,${name}!

我的输入没有任何作用,handlePost方法从未命中。我试图将属性“name”更改为单词“change”,我不确定我做得有什么不对。

您的问题不在于Spring,而在于HTML。您不能提交按钮。您只能提交

元素包装在



其中
core
taglib的
url
标记。现在,当您单击按钮时,浏览器将把
元素序列化为url编码的表单参数并发送它们。它们将作为服务器/web应用程序的请求参数显示。Spring将按名称对它们进行反序列化,并将它们作为参数注入到具有
@RequestParam
方法参数的位置。

需要有一个表单封装您的输入

供参考:您的“保存”和“更新”用例应该是单独的控制器操作


也考虑从你的动作名中删除“POST”。鉴于操作是用GET修饰的,html表示它的GET

如何尝试命中handlePost方法?请验证将url映射到hit的请求应该是http://://test
<form action="<c:url value="/test" />" method="GET">
    <input type="submit" name="action" value="save" />
</form>