【已解决】An error happened during template parsing (template: “class path resource报错

一、遇到的问题

        在做Springboot 图书管理系统时登录验证已写好点击登录时报错An error happened during template parsing (template: "class path resource [templates//user/index.html]")

二、分析问题

        起初以为是重定向中或者@PostMapper注解写多了一个 “ / ”。

     (修改后,发现无论z在user前加一个 “ / ” ,还是去掉user前面的 “ / ” 依旧还是报错  )

        

随后在后端控制台中发现一个报错

 Property or field 'username' cannot be found on object of type 'java.lang.String' - maybe not public or not valid?

(在类型为“java.lang.String”的对象上找不到属性或字段“username” - 可能不是公共的或无效的?
)        

传递给username这个属性 前端找不到

前端界面·

对应的代码 thymeleaf获取不到username属性,发现是没有设置从那个对象获取

看看了自己的业务代码 发现是从session传值的

@PostMapping("/login")
    public String login(LoginForm loginForm, Model model, HttpSession session){
        LoginResult result = loginService.login(loginForm);
        String url = "";
       if (result.getCode().equals(-1) || result.getCode().equals(-2)){
            model.addAttribute("msg",result.getMsg());
           url = "login";
        }
        if (result.getCode().equals(0)){
            switch (loginForm.getType()){
                case "1":
                    session.setAttribute("user",(User)result.getObject());
                    break;
                case "2":
                    session.setAttribute("admin",(Admin)result.getObject());
                    break;
                case "3":
                    session.setAttribute("sysadmin",(Sysadmin)result.getObject());
                    break;
            }
            url = "redirect:/user/index";
        }
       return url;
    }

三、解决方法

所以将前端代码改成从session中获取对象即可

四、总结

可能是后端业务数据源没有和前端对应起来。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值