日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

javaweb項目開發(fā)案例 java項目開發(fā)案例經(jīng)典

spring.messages.basename=i18n.login
這樣就相當(dāng)于把國際化資源文件讓SpringBoot配置的ResourceBundleMessageSource管理了起來2021新版IDEA修改全部默認(rèn)配置中的文件編碼模式,解決properties配置文件亂碼問題

javaweb項目開發(fā)案例 java項目開發(fā)案例經(jīng)典


通過以上設(shè)置,我們根據(jù)瀏覽器語言的設(shè)置切換國際化,下面展示原理:
SpringMVC的自動配置中有默認(rèn)的區(qū)域信息解析器===>國際化Locale(區(qū)域信息對象),LocaleResolver(獲取區(qū)域信息對象)
javaweb項目開發(fā)案例 java項目開發(fā)案例經(jīng)典


點擊鏈接實現(xiàn)國際化切換1.編寫自己的區(qū)域信息解析器,并放到容器中自定義區(qū)域信息解析器:
/*
  • 可以攜帶區(qū)域信息
  • */
public class MyLocaleResolver implements LocaleResolver
{
@Override
public Locale resolveLocale(HttpServletRequest Request) {
String l=Request.getParameter(“l(fā)”);
Locale locale=Locale.getDefault();//Locale.getDefault()獲取當(dāng)前的語言環(huán)境—操作系統(tǒng)的語言環(huán)境
if(!StringUtils.isEmpty(l))
{
String[] s = l.split(“_”);
locale=new Locale(s[0],s[1]);//第一個參數(shù)是國家,第二個參數(shù)是語言
}
return locale;
}
@Override
public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
}
}
SpringMVC擴(kuò)展類: 負(fù)責(zé)將自定義的組件加入到容器中
//使用WebMvcConfigurerAdapter可以來擴(kuò)展SpringMvc的功能
@Configuration
public class myConfig extends WebMvcConfigurerAdapter
{
//所有的WebMvcConfigurerAdapter組件都會一起起作用
@Bean//將容器注冊在容器中
public WebMvcConfigurerAdapter addViewControllers()
{
WebMvcConfigurerAdapter adapter=new WebMvcConfigurerAdapter() {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController(“/”).setViewName(“index”);
registry.addViewController(“/index.html”).setViewName(“index”);
}
};
return adapter;
}
@Bean
//在SpringMVC擴(kuò)展類中,將剛才寫的區(qū)域信息解析器放到容器中
public LocaleResolver localeResolver()
{
return new MyLocaleResolver();
}
}
效果展示:
javaweb項目開發(fā)案例 java項目開發(fā)案例經(jīng)典




javaweb項目開發(fā)案例 java項目開發(fā)案例經(jīng)典


登錄模塊
===================================================================
SpringMVC新特性支持的Rest風(fēng)格的注解
@RestController注解@RestController等常見注解
@PostMapping, @GetMapping, @PutMapping, @DeleteMapping四個支持Rest風(fēng)格的注解模板引擎頁面修改后要時時生效==>禁用掉模板引擎的緩存+重新編譯在全局配置文件中禁用掉模板引擎的緩存#禁用掉模板引擎的緩存,這樣頁面內(nèi)容一修改,就可以看到修改后的效果
spring.thymeleaf.cache=false
IDEA在項目運行期間,不會讓我們對頁面的修改生效,如果想讓我們對頁面的修改時時生效,第一步禁用緩存,第二步按住ctrl+f9重新編譯當(dāng)前頁面Thymeleaf 內(nèi)置對象和內(nèi)置方法
Thymeleaf 內(nèi)置對象和內(nèi)置方法
轉(zhuǎn)發(fā)到某一頁面導(dǎo)致的表單重復(fù)提交問題解決表單重復(fù)提交問題
登錄成功后,要防止表單被重復(fù)提交,可以重定向到主頁
javaweb項目開發(fā)案例 java項目開發(fā)案例經(jīng)典


攔截器進(jìn)行登錄檢查,防止不經(jīng)過登錄直接來到某一頁面SpringBoot已經(jīng)做好了靜態(tài)資源的映射1.自定義登錄攔截器,通過獲取session中存放的數(shù)據(jù),來判斷是否已經(jīng)登錄過public class LoginHanlderIntercept implements HandlerInterceptor

推薦閱讀