【问题标题】:Thymleaf controller request mapping binging issueThymeleaf 控制器请求映射绑定问题
【发布时间】:2020-06-03 03:04:21
【问题描述】:

我是 thymleaf 的新手,起初我使用简单的 requestmapping 和 thymleaf th:action 和 th:object 来绑定控制器方法。但添加类级别请求映射后,我无法查看我的 html。

下面是我重定向到登录页面的控制器类代码。

@Controller
@RequestMapping("/project")
public class MyController {

    @RequestMapping(value = {"/"}, method = RequestMethod.GET)

    public String login(Model model) {
        model.addAttribute("mylogin", new Credentials());
        return "login";

    }
    }

下面是我的html页面。

<form class="user" th:action="@{/project/login}" th:object="${mylogin}" method="POST">
                                        <div class="form-group">
                                            <input type="email" id="user_name" name="username"
                                                class="form-control form-control-user"

                                                placeholder="Enter Email Address..." />
                                        </div>
                                        <div class="form-group">
                                            <input type="password" id="password" name="password"
                                                class="form-control form-control-user"
                                                placeholder="Password" />
                                        </div>

                                        <button class="btn btn-primary btn-user btn-block"
                                            name="Submit" value="Login" type="Submit" th:text="Login"></button>
                                    </form>

在类中添加 @RequestMapping("/project") 后,我无法获取 html。如果我删除此 @RequestMapping("/project") 并将 th:action="@{/project/login}" 更改为 th:action="@{/login}" 我的代码有效。

这样的问题可能是什么问题?

【问题讨论】:

    标签: spring-boot thymeleaf


    【解决方案1】:

    使用类级别请求映射以这种方式/login更改此请求映射,然后重试:

     @RequestMapping(value = {"/login"}, method = RequestMethod.GET)
     public String login(Model model) {
            model.addAttribute("mylogin", new Credentials());
            return "login";
        }
    

     @GetMapping("/login")
     public String login(Model model) {
            model.addAttribute("mylogin", new Credentials());
            return "login";
        }
    

    【讨论】:

    • 你的类级请求映射 @RequestMapping("/project") 和动作 @GetMapping("/login") 所以这个动作的 url 将是 th:action="@{/project/login} " 为什么你使用这个 th:action="@{/timeproject/login}"
    • 抱歉,我忘记更改了。但这不是问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多