spring boot跳转页面怎么传值

fiy 其他 54

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Spring Boot中,通过使用模型(Model)和视图(View)的方式实现页面传值。下面是一个简单的示例:

    首先,创建一个控制器类,用于处理页面跳转和传值的逻辑:

    @Controller
    public class PageController {
    
        @GetMapping("/page")
        public String getPage(Model model) {
            // 在模型中添加要传递的值
            model.addAttribute("name", "John");
            return "page";
        }
    }
    

    在上述示例中,getPage()方法使用@GetMapping注解来处理GET请求,并通过Model对象将值设置为name并传递给页面。

    接下来,创建一个Thymeleaf模板引擎的页面,用于接收和显示传递的值:

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Page</title>
    </head>
    <body>
        <h1>Welcome, <span th:text="${name}"></span>!</h1>
    </body>
    </html>
    

    在上述示例中,使用Thymeleaf的语法th:text="${name}"来获取并显示传递的值。

    最后,在Spring Boot的配置文件中,添加Thymeleaf的相关配置,以使模板引擎能够正常工作:

    # 配置Thymeleaf
    spring.thymeleaf.mode=HTML
    spring.thymeleaf.cache=false
    
    # 设置模板文件的前缀和后缀
    spring.thymeleaf.prefix=classpath:/templates/
    spring.thymeleaf.suffix=.html
    

    通过以上的配置和代码,当访问/page路径时,就会跳转到定义的页面,并将传递的值显示在页面上。

    总结:通过控制器类的方法中使用Model对象添加传递的值,并在页面中通过Thymeleaf的语法获取和显示传递的值,即可实现Spring Boot页面的传值。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Spring Boot中,可以使用ModelAndView对象将数据传递给要跳转到的页面。

    1. 首先,在Controller中创建一个方法来处理页面跳转:
    @GetMapping("/page")
    public ModelAndView getPage() {
        ModelAndView modelAndView = new ModelAndView("page"); // page为要跳转到的页面的名称,这里假设为page.html
        modelAndView.addObject("message", "Hello, World!"); // 将要传递的数据以键值对的形式添加到ModelAndView对象中
        return modelAndView;
    }
    
    1. 接下来,在要跳转到的页面中使用Thymeleaf模板引擎来显示传递的数据:
    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Page</title>
    </head>
    <body>
        <h1 th:text="${message}"></h1> <!-- 使用Thymeleaf的expression语法来显示传递的数据 -->
    </body>
    </html>
    
    1. 在上面的例子中,我们传递了一个字符串类型的数据。如果要传递更复杂的数据对象,可以创建一个包含需要传递数据的类,并在ModelAndView中添加该对象:
    @GetMapping("/page")
    public ModelAndView getPage() {
        ModelAndView modelAndView = new ModelAndView("page");
        User user = new User("John", "Doe");
        modelAndView.addObject("user", user);
        return modelAndView;
    }
    
    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Page</title>
    </head>
    <body>
        <h1 th:text="${user.firstName + ' ' + user.lastName}"></h1>
    </body>
    </html>
    
    1. 如果想要在页面中获取传递的数据并进行处理,可以使用Thymeleaf的表达式语言。例如,可以使用th:if来根据传递的数据显示不同的内容:
    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Page</title>
    </head>
    <body>
        <h1 th:text="${user.firstName + ' ' + user.lastName}"></h1>
        <p th:if="${user.age >= 18}">You are an adult.</p>
        <p th:if="${user.age < 18}">You are a minor.</p>
    </body>
    </html>
    
    1. 还可以使用Thymeleaf的迭代器来遍历传递的列表数据:
    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="UTF-8">
        <title>Page</title>
    </head>
    <body>
        <ul>
            <li th:each="item : ${items}" th:text="${item}"></li>
        </ul>
    </body>
    </html>
    
    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Spring Boot中,可以使用多种方式来传递参数并实现页面之间的跳转。以下是两种常用的方法:

    1. 使用URL参数传递值:

      • 在控制器方法中,使用@RequestParam注解获取URL参数的值,并将其传递给目标页面。例如:
        @GetMapping("/example")
        public String example(@RequestParam("param") String param, Model model) {
            model.addAttribute("param", param);
            return "example";
        }
        
      • 在目标页面中,使用Thymeleaf的表达式语法读取和展示参数的值。例如:
        <h1>Welcome, <span th:text="${param}"></span></h1>
        
      • 当用户访问/example?param=John时,页面会显示Welcome, John
    2. 使用会话(Session)来传递值:

      • 在控制器方法中,使用HttpServletRequest对象的getSession()方法来获取会话对象,并将值存储到会话中。例如:
        @GetMapping("/example")
        public String example(HttpServletRequest request) {
            HttpSession session = request.getSession();
            session.setAttribute("param", "John");
            return "example";
        }
        
      • 在目标页面中,使用Thymeleaf的表达式语法读取和展示会话中存储的值。例如:
        <h1>Welcome, <span th:text="${session.param}"></span></h1>
        
      • 页面会显示Welcome, John

    无论选择哪种方法,都需要在控制器方法中返回一个字符串,用于指定要显示的目标页面。在Spring Boot中,推荐使用Thymeleaf作为模板引擎来渲染页面。通过使用Thymeleaf的表达式语法,可以更方便地读取和展示传递的参数值。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部