spring引导不加载jsp文件

llew8vvj  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(317)

使用Spring启动机 2.4.1 version .
资源文件夹具有以下结构。如图所示,hello.jsp位于templates文件夹中。这些包含在application.properties中:

spring.mvc.view.prefix=/templates/
  spring.mvc.view.suffix=.jsp

一个简单的控制器:

@Controller
public class HelloController {
    @GetMapping("/hello")
    public String index(){
        return "hello";
    }
}

但是得到404。
控制器方法正在确定输入。
尝试了下面答案中的建议,尝试使用webapp,但没有帮助:/webinf根本不是在target内部创建的,似乎maven忽略了webapp和webinf文件夹。

ie3xauqp

ie3xauqp1#

只是用无效的缓存重新启动一个新的想法( File | Invalidate Caches / Restart )解决了问题。
实际上,它是从templates文件夹开始工作的,所以templates是根目录,在它里面放一些东西,就可以从控制器访问,而不需要任何文件 prefix 设置。
但同样的,webapp没有什么是可行的,seammaven完全忽略了webapp。也许这与maven或spring-boot版本有关。
并添加eleafe依赖项,它将与 .html 文件(这不是我喜欢的东西,但到目前为止,唯一可行的解决办法找到)。

neskvpey

neskvpey2#

好的,我会修复你的代码并在你的ide中运行,

@RequestMapping("/hello")
public String index() {
    return "hello";
}
w6mmgewl

w6mmgewl3#

尝试更改以下配置和代码:

in application.properties put these configs:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

LoginForm class:
    public class LoginForm {
        private String email;
        private String password;

        public LoginForm() {}
        public String getEmail() { return email; }
        public void setEmail(String email) { this.email = email; }
        public String getPassword() { return password; }
        public void setPassword(String password) { this.password = password; }
    }

**LoginForm is just a normal bean with a no-arg Constructor and the getters / setters**

Now, we create a LoginHandler Class to coordinate and handle the whole login process.

    @Controller
    @RequestMapping("/login")
    public class LoginHandler {
    private static final String LOGIN_VIEW = "login";
    private static final String LOGOUT_VIEW = "logout";
    }

let’s define some handler methods.

    @GetMapping("/login")
    public String showLoginView(Model model) {
    model.addAttribute("loginForm", new LoginForm());
    return LOGIN_VIEW;
    }

相关问题