spring.messages.baname=i18n.login
通过以上设置,我们根据浏览器语言的设置切换国际化,下面展示原理:
自定义区域信息解析器:
/*
可以携带区域信息*/public class mylocaleresolver implements localeresolver
{
@override
public locale resolvelocale(httprvletrequest request) {
string l=request.getparameter(“l”);
locale locale=locale.getdefault();//locale.getdefault()获取当前的语言环境—操作系统的语言环境
if(!stringutils.impty(l))
{
string[] s = l.split(“_”);
locale=new locale(s[0],s[1]);//第一个参数是国家,第二个参数是语言
}
return locale;
}
@override
public void tlocale(httprvletrequest httprvletrequest, httprvletrespon httprvletrespon, locale locale) {
}
}
springmvc扩展类: 负责将自定义的组件加入到容器中
//使用webmvcconfigureradapter可以来扩展springmvc的功能
@configuration
public class myconfig extends webmvcconfigureradapter
{
//所有的webmvcconfigureradapter组件都会一起起作用
@bean//将容器注册在容器中
public webmvcconfigureradapter addviewcontrollers()
{
webmvcconfigureradapter adapter=new webmvcconfigureradapter() {
@override
public void addviewcontrollers(viewcontrollerregistry registry) {
registry.addviewcontroller(“/”).tviewname(“index”);
registry.addviewcontroller(“/index.html”).tviewname(“index”);
}
};
return adapter;
}
@bean
//在springmvc扩展类中,将刚才写的区域信息解析器放到容器中
public localeresolver localeresolver()
{
return new mylocaleresolver();
}
}
效果展示:
登录模块
===================================================================
springmvc新特性支持的rest风格的注解
@restcontroller等常见注解
#禁用掉模板引擎的缓存,这样页面内容一修改,就可以看到修改后的效果
spring.thymeleaf.cache=fal
thymeleaf 内置对象和内置方法
thymeleaf 内置对象和内置方法
解决表单重复提交问题
登录成功后,要防止表单被重复提交,可以重定向到主页
public class loginhanlderintercept implements handlerinterceptor
{
@override
public boolean prehandle(httprvletrequest request, httprvletrespon respon, object ha德育培训ndler) throws exception {
object ur=request.getssion().getattribute(“loginur”);
if(ur==null)
{
//未登陆,返回登陆页面
request.tattribute(“msg”,“没有权限请先登陆”);
request.getrequestdispatcher(“/index.html”).forward(request,respon);
return fal;
}
el
{
//已登陆,放行请求
return true;
}
}
@override
public void posthandle(httprvletrequest request, httprvletrespon respon, object handler, modelandview modelandview) throws exception {
}
@override
public void aftercompletion(httprvletrequest request, httprvletrespon respon, object handler, exception ex) throws exception {
//登陆后,将之前存储在ssion里面的登录凭证销毁,无论是否存在凭证,都执行销毁操作
request.getssion().removeattribute(“loginur”)2016年5月9日;
}
}
@controller
public class logincontroller
{
@postmapping(“/ur/login”)
public string login(@reques安徽大学江淮学院tparam(“urname”)string urname,
@requestparam(“password”)string password
, map<string,object> map, httpssion ssion)
{
if(urname.equals(“大忽悠”)&&“123456”.equals(password))
{
ssion.tattribute(“loginur”,urname);
//登录成功
return “redirect:/main.html”;
}
//登录失败
map.put(“msg”,“用户名或密码错误”);
return “index”;
}
}
//使用webmvcconfigureradapter可以来扩展springmvc的功能
@configuration
public class myconfig extends webmvcconfigureradapter
{
//所有的webmvcconfigureradapter组件都会一起起作用
@bean//将容器注册在容器中
public webmvcconfigureradapter addviewcontrollers()
{
webmvcconfigureradapter adapter=new webmvcconfigureradapter() {
@override
public void addviewcontrollers(viewcontrollerregistry registry) {
registry.addviewcontroller(“/”).tviewname(“index”);
registry.addviewcontroller(“/index.html”).tviewname(“index”);
registry.addviewcontroller(“/main.html”).tviewname(“success”);
}
@override
public void addinterceptors(interceptorregistry registry) {
registry.addinterceptor(new loginhanlderintercept()).addpathpatterns(“/**”)//拦截任意多层路径下的所有请求
.excludepathpatterns(“/index.html”,”/”,”/ur/login”);//某些请求不进行拦截
}
};
return adapter;
}
@bean
//在springmvc扩展类中,将刚才写的区域信息解析器放到容器中
public localeresolver localeresolver()
{
return new mylocaleresolver();
}
}
@override
public void aftercompletion(httprvletrequest request, httprvletrespon respon, object handler, exception ex) throws exception {
//登陆后,将之前存储在ssion里面的登录凭证销毁,无论是否存在凭证,都执行销毁操作
request.getssion().removeattribute(“log涪陵拼音inur”);
}
crud—员工列表
thymeleaf 模板布局 th:fragment、th:replace、th:inrt、th:remove
package com.czl.controller;
@controller
public class hellocontroller {
/**
forward:转发到一个页面/hello.jsp:转发当前项目下的hello;一定加上/,如果不加/就是相对路径。容易出问题;forward:/hello.jspforward:前缀的转发,不会由我们配置的视图解析器拼串@return*/
@requestmapping(“handle01”)
public string handle01(){
system.out.println(“handle01…”);
return “forward:/hello.jsp”;
}
@requestmapping(“handle02”)
public string handle02(){
system.out.println(“handle02…”);
return “forward:/handle01”;
}
/**
重定向到hello.jsp页面有前缀的转发和重定向操作,配置的视图解析器就不会进行拼串;转发 forward:转发的路径重定向 武汉职校redirect:重定向的路径/hello.jsp:代表就是从当前项目下开始;在springmvc中会为路径自动的拼接上项目名原生的rvlet重定向/路径需要加上项目名才能成功,重定向的url路径是要发给浏览器让浏览器按照该url访问服务器的,而浏览器解析/ 只到站点,如 localhost:8080/,使用respon.ndredirect(“/hello.jsp”),浏览器只会解析为:localhost:8080/hello.jsprespon.ndredirect(“/hello.jsp”)//访问不到,要加上项目名 /springmvc_viewresolver_06/hello.jsp@returnrd.include(requesttoexpo, respon);*/
@requestmapping(“handle03”)
public string handle03(){
system.out.println(“handle03…”);
return “redirect:/hello.jsp”;
}
@requestmapping(“handle04”)
public string handle04(){
system.out.println(“handle04…”);
return “redirect:/handle03”;
}
}
sprinboot中的日期格式化问题
![在这里插入图片描述](
https://img-blog.csdnimg.cn/de16e8c47d51400989e3c05bd813b6ae.png?x-oss-process=image/watermark,type_zmfuz3pozw5nagvpdgk,shadow_10,text_
ahr0chm6ly9ibg9nlmnzzg4ubmv0l20wxzuzmtu3mtcz,size_16,color_ffffff,t_70)
spring.mvc.date-format=yyyy-mm-dd
${#dates.format(key)}
${#dates.format(key, ‘yyyy-mm-dd hh:mm:ss’)}
thymeleaf 日期格式化处理
本文发布于:2023-04-05 02:46:43,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/b7ea76876a83a3220542f9bbe05ea3a3.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:javaweb项目开发案例(java项目开发案例经典).doc
本文 PDF 下载地址:javaweb项目开发案例(java项目开发案例经典).pdf
留言与评论(共有 0 条评论) |