SpringBoot-Web项目实例

本文详细介绍了SpringBoot-Web项目实例,包括项目结构、国际化配置、登陆与拦截器的实现,以及CRUD操作员工列表的各个功能,如添加、修改和删除。还讲解了错误处理的原理和自定义错误页面的方法。

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

SpringBoot-Web项目实例

1 项目结构

在这里插入图片描述

  • 加入Dao层,和实体对象
  • 加入静态资源css、img、js进入到静态资源包
  • 将页面加入到templates包中,才能通过模板进行调用

在控制类中增加对登陆页面的访问,可以通过"","/login"进行访问

@RequestMapping({
   "","/login"})
    public String index(){
   
        return "login";
    }

也可以自己实现SpringMVC配置,进行默认视图转发

@Configuration
//@EnableWebMvc
public class MyMvcConfig implements WebMvcConfigurer {
   
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
   
        //浏览器发送/ok 请求来到 /success
        registry.addViewController("").setViewName("login");
    }
}

2 [国际化]语言切换配置

  1. 编写国际化配置文件

从上到下分别是默认配置、英语和中文
在这里插入图片描述
将页面要显示的信息抽取配置

login.btn=登陆
login.password=密码-
login.remember=记住登陆信息-
login.tip=请登录!
login.username=用户名-
  1. 在SpringMVC中需要使用ResourceBundleMessageSource管理国际化资源文件。SpringBoot自动配置好了管理国家化资源的组件。

只需要在配置文件application.properties加入配置即可

spring.messages.basename=i18n.login
  1. #{…}获取国际化信息

增加thymeleaf的提示信息

<html lang="en" xmlns:th="http://www.thymeleaf.org">

头部的地址进行替换
在这里插入图片描述
页面中的信息进行替换,替换成自己配置的信息。
在这里插入图片描述
修改完成后运行,修改浏览器的语言,页面刷新会更新语言

通过按钮切换信息

SpringBoot中WebMvcAutoConfiguration通过localeResolver()默认的区域信息请求器根据request请求头获取语言信息。

@Bean
@ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "spring.mvc", name = "locale")
public LocaleResolver localeResolver() {
   
	if (this.mvcProperties.getLocaleResolver() == WebMvcProperties.LocaleResolver.FIXED) {
   
		return new FixedLocaleResolver(this.mvcProperties.getLocale());
	}
	AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver();
	localeResolver.setDefaultLocale(this.mvcProperties.getLocale());
	return localeResolver;
}
  1. 首先修改html连接信息

再点击标签后会跳转到指定连接并且有指定信息

<a class="btn btn-sm" th:href="@{/login.html(l='zh_CN')}">中文</a>
<a class="btn btn-sm" th:href="@{/login.html(l='en_US')}">English</a>
  1. 自己实现LocalResolver()方法

注意@Component("localeResolver")对Bean对象进行命名,SpringBoot自动对该命名进行扫描,如果不是这个命名扫描不到

@Component("localeResolver")
public class MyLocaleResolver implements LocaleResolver {
   
    
    @Override
    public Locale resolveLocale(HttpServletRequest request) {
   
        String l = request.getParameter("l");
        //如果没有地域信息,使用默认
        Locale locale = Locale.getDefault();//区域信息
        if (!StringUtils.isEmpty("l")){
   //非空
            String[] split = l.split("_");
            //获取语言信息,第一个语言第二个国家"zh_CN"
            locale = new Locale(split[0],split[1]);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
   

    }
}

3 登陆&拦截器

开发期间模版引擎页面修改以后,实时生效

  1. 禁用模版引擎缓存
#禁用缓存
spring.thymeleaf.cache=false
  1. 页面修改完cmd+F9,手动重新编译

登陆

  1. 登陆页面设置登陆form的连接
<form class="form-signin" action="dashboard.html" th:action="@{/user/login}" method="post">
  1. 声明LoginController对登陆进行控制
@Controller
public class LoginController {
   

    //@RequestMapping(value = "/user/login",method = RequestMethod.POST)
    //直接表示使用post请求,不需要在@RequestMapping中设置
    @PostMapping(value = "/user/login")
    public String login(@RequestParam("username") String username,
                        @RequestParam("password") String password,
                        Map<String, Object> map){
   
        if (password.equals(username))
            //登陆成功
            return "dashboard";
        else {
   
            //登陆失败
            map.put(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值