美文网首页springboot工作总结
springboot web应用使用jsp

springboot web应用使用jsp

作者: 二月_春风 | 来源:发表于2017-07-25 17:39 被阅读1322次

    直接看demo,加入依赖:

      <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.4.RELEASE</version>
            <relativePath/> 
        </parent>
    
    <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
    </properties>
    
    <dependencies>
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                 <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    

    我们知道使用jsp,一般都将jsp页面放在webapp下的WEB-INF文件夹下,定义controller类,此时不能使用@RestController注解,只能使用@Controller,因为使用@RestController注解返回的只能是json类型的数据。

    package com.zhihao.miao;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    @Controller
    public class LoginController {
    
        @PostMapping("/login")
        public String login(@RequestParam("username")String username,@RequestParam("password")String password){
            if("miaozhihao".equals(username)&&"123456".equals(password)){
                return "success";
            }
    
            return "fail";
        }
    
        @GetMapping("/login")
        public String loginIndex(Model model){
            model.addAttribute("username", "miaozhihao");
            return "login";
        }
    
        @GetMapping("/admin")
        public String admin(Model model){
            model.addAttribute("admin", "miaozhihaoer");
            return "admin/index";
        }
    }
    

    配置文件中配置相应的jsp的文件目录及后缀,

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

    定义响应的jsp文件,

    启动类进行启动,

    package com.zhihao.miao;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class,args);
        }
    }
    

    在main下面建立webapp文件夹,webapp文件夹下建立WEB-INF文件夹,具体的


    总结:

    1. 在springboot里面使用jsp,需要另外加入tomcat-embed-jasper的依赖
    2. 需要在配置文件中,配置如下两个配置项
    spring.mvc.view.prefix=/WEB-INF/jsp/
    spring.mvc.view.suffix=.jsp 
    
    1. 方法的返回值,是jsp的路径加文件名字,最后,不能使用@RestController注解,要使用@Controller。

    以上代码github地址

    相关文章

      网友评论

        本文标题:springboot web应用使用jsp

        本文链接:https://www.haomeiwen.com/subject/hrtgkxtx.html