[springboot]controller+freemarker实现页面跳转

本文介绍如何在SpringBoot项目中使用Freemarker模板引擎实现页面跳转,并解决静态资源加载问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.写在前面

描述的主要内容:使用springboot框架通过controller返回的字符串+freemarker模板引擎实现跳转对应的html页面

2.准备工作

搭建springboot框架
这里就不再赘述了,推荐一篇博文,写的就是springboot框架的搭建过程,写的非常调理。

3.实现

第一步 创建一个controller如下图所示
需要注意的:

  1. controller类要使用@Controller注解才能可以
  2. (⊙o⊙)…
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 1. @ClassName: initController
 2. @Description: 意见反馈的首页
 3. @Author: xh
 4. @Date: 2019/7/20 18:32
 **/
@Controller
public class initController {
    @RequestMapping("/suggestion")
    public String indexController(){
        return "suggestion";
    }
}

第二步 添加freemarker模板引擎的maven依赖

        <!--freemarker-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

第三步 修改配置文件application.yml

spring:
  freemarker:
    suffix: .html
    request-context-attribute: request

第四步 新建一个suggestion.html
html的名称要和controller中return的字符串一致
在这里插入图片描述
第五步 验证
输入 localhost:端口号/上下文/suggestion 验证能否跳转到suggestion.html页面

4.遇到的问题

页面跳转成功后不能加载js、css等静态资源?
思路:
就比如我idea,默认生成的静态资源目录是statics,而源码中默认的静态资源目录是static,如下图示:
在这里插入图片描述
这时需要在application.yml中将静态资源路径配一下,内容如下:

spring:
  resources:
  # 静态资源路径  
  # 良心提醒-->路径的最后不用忘记加斜杠!!!!此处被坑过
    static-locations: classpath:/statics/,classpath:/templates/,classpath:/resources/,classpath:/META-INF/resources/
  mvc:
  # 静态资源映射方式
    static-path-pattern: /statics/**

5.总结

自己从头搭建一次springboot会发现有很多坑的,比自己在现成的工程中添加功能要难受一些,不过,只有进过坑才能成长,以后就知道避开了。。。

Spring Boot 用户登录功能通常会涉及到以下几个步骤,包括前端和后端交互: 1. **前端界面**:创建HTML表单,用于收集用户名(username)和密码(password)等信息。可以使用Thymeleaf、Freemarker或其他模板引擎。 ```html <!-- login.html --> <form th:action="@{/login}" method="post"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <button type="submit">登录</button> </form> ``` 2. **后端控制器**(@Controller):使用`@PostMapping`处理登录请求,接收前端提交的数据,并验证。 ```java @Controller public class LoginController { @PostMapping("/login") public String handleLogin(@RequestParam("username") String username, @RequestParam("password") String password) { // 验证用户名和密码 boolean success = authenticateUser(username, password); if (success) { // 登录成功,可以选择重定向到首页 return "redirect:/home"; } else { // 登录失败,返回错误消息给前端 return "redirect:/login?error=invalid_credentials"; } } private boolean authenticateUser(String username, String password) { // 实现实际的认证逻辑,这里仅作示例 // 这部分通常会连接数据库或使用JWT令牌管理 return false; } } ``` 3. **安全设置**:Spring Security可以帮助简化用户身份验证流程。配置`WebSecurityConfigurerAdapter`,并使用`@PreAuthorize`注解控制需要登录权限的路径。 4. **响应状态码**:如果使用HTTP的状态码,可以考虑在验证失败时返回401未经授权,而登录成功则跳转时带上状态码200表示成功。 5. **全局异常处理**:处理如登录超时或验证码错误等情况时,可以在`GlobalExceptionHandler`中统一展示错误页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值