SpringBoot中RequestMapping只能用页面URL输入回车才能跳转进方法是什么原因

这个是我Controller的代码

package com.example.demo.controller;


import com.example.demo.service.impl.UserService;
import com.example.demo.user.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;
import java.util.List;

@Controller
public class UserController {

    @Resource
    private UserService userService;

    @RequestMapping(value = "/search")
    public String search(Model model) {
        //查询数据库所有用户
        List<User> userList = userService.findAll();
        model.addAttribute("users", userList);
        return "userList";
    }
    @RequestMapping(value = "/Index")
    public String Index(){
        return "Index";
    }
    @RequestMapping(value = "/AddAdmin")
    public String AddUser(@ModelAttribute(value = "/save") User user){
        userService.save(user);
        return "success";
    }
    @RequestMapping(value = "/save")
    public String adduser(){
        return "AddAdmin";
    }


}

这个是Index的页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
<form name="demo" method="post">
    <!--YOUR DATA AREA-->
    <input type="button" value="添加" onclick="addAction()">
    <input type="button" value="删除" onclick="deleteAction()">
    <input type="button" value="查询" onclick="searchAction()">
</form>

<script type="text/javascript">
    function addAction(){
        document.demo.action="/save";
        document.demo.submit();
    }

    function deleteAction(){
        document.demo.action="/404";
        document.demo.submit();
    }

    function searchAction(){
        document.demo.action="/search";
        document.demo.submit();
    }
</script>
</body>
</html>

这是直接点击查询按钮跳转的结果
这是直接点击查询按钮跳转的结果

这是直接回车URL的结果
这是直接回车URL的结果

这是Index页面
这是Index页面

改成${pageContext.request.contextPath}/search试下

document.demo.action="/search" 这个替换成 document.demo.action="http://localhost:8080/search" 试一下,如果成功,说明是原先的这行代码有问题,如果不成功,就是其他的问题了

RequestMapping中设置下请求方式(POST请求或GET请求)

当pom文件下的spring-boot-starter-paren版本高时使用:
spring.mvc.view.prefix/spring.mvc.view.suffix
当pom文件下的spring-boot-starter-paren版本低时使用:
spring.view.prefix/spring.view.suffix

RequestMapping 默认是get请求。你设置下POST请求。
@RequestMapping(value = "/api/v1/invoices", method = RequestMethod.POST)

@Controller
@RequestMapping("/user")
public class UserController{
}
给Controller添加RequeMapping,访问:localhost:8080/user/search

在后台方法里输出点东西,再分别用两种方法试下,看下问题出在前端还是后端