栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

国际化和登录过滤和类型转换器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

国际化和登录过滤和类型转换器

国际化

:它们分别是“语言类型”和“国家/地区的类型”。
简单的写有一个例子:
xml配置:



        
    
        

        
        


    
    
    
    

    



    
    
    
    
        

    

il8n_en_US.properties和il8n_zh_CN.properties文件

il8n.name:English
il8n.name:汉语

展示jsp文件:

<%--
  Created by IntelliJ IDEA.
  User: 11960
  Date: 2021/9/21
  Time: 16:31
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
//JSTL标签提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。实现这些功能需要I18N格式标签库(I18N-capable formation tags liberary)。引入该标签库的方法为:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
//I18N格式标签库提供了11个标签,这些 标签从功能上可以划分为3类如下:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>


    Title


查看信息

中文
英文



结果:

**拦截器

:**登录拦截
xml配置:



        
    
        

        
        


    
    
    
  

         
   
   
       
          
       
       
       
       
       

登录界面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


姓名: 密码:

controller类:

package gvn.openlab.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


import javax.servlet.http.HttpSession;

@Controller
public class Logncontroller {
    @RequestMapping("/index")
    public String loge(String name, String pass, HttpSession session){
        if(pass != null&&name!= null){//判断是否为空,不为空把数据放入session
            session.setAttribute("name",name);
            session.setAttribute("pass",pass);
        }

      return "hello";//转发到hello界面
    }
    @RequestMapping("/hello")
    public String hello(){
        return "save";
    }
}

拦截器:

package gvn.openlab.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Controller
public class ControllerLogn implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        Object name= request.getSession().getAttribute("name");
        Object pass= request.getSession().getAttribute("pass");

        if(name==null||pass==null||"".equals(name)||"".equals(pass)){//判断是否为空
           // response.sendRedirect("logn.jsp");
           /为空证明没有登录,不能访问其他界面,转发登录,只能用转发登录,不能用重定向,返回false
            request.getRequestDispatcher("/WEB-INF/views/logn.jsp").forward(request,response);
            
            return false;
        }else
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
    }
}


在没有登录前我们访问save会无法访问并返回登录界面

当我们什么都不输入,进入index界面

但我们访问save还不可以,因为session没有数据
当我们输入数据:

在访问save界面可以了:

说明拦截器可以了

类型转换器:

界面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


姓名: 密码: 日期:

实体类:

package gvn.openlab.bean;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Datetiam {
    private String name;
    private String pass;
    private Date date;
}

controller:

package gvn.openlab.controller;
import gvn.openlab.bean.Datetiam;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


import javax.servlet.http.HttpSession;

@Controller
public class Logncontroller {

    @RequestMapping("/index2")
    public String loge(Datetiam datetime){
        System.out.println(datetime);
        return "";
    }
    }

我们输入值然后跳转发现


控制台没有东西

意思是服务器不处理来自客户端的错误请求,一般是请求语法,无效的请求信息等错误原因。
就是我们输入的时间是String类型而我们的类中的时间date是Date类型。
所以需要我们转换类型:
1.注解转换类型
在我们的实体类中写注释:

package gvn.openlab.bean;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Datetiam {
    private String name;
    private String pass;
    @DateTimeFormat(pattern = "yyyy-mm-dd")
    private Date date;
}

输入值:

发现控制台有东西:

没写tostring不太好看抱歉。。。。。。但是我我们的类型转换成功了;

二.定义一个时间转化类:




      
        
            
        
        


    
    
    

    
    
    

  
      
          
      

  







    


    
    
    
        

    

实体类:

package gvn.openlab.bean;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Datetimeday {
    private String name;
    private String pass;
    //@DateTimeFormat(pattern = "yyyy-mm-dd")
    private Date date;

    @Override
    public String toString() {
        return "Datetiam{" +
                "name='" + name + ''' +
                ", pass='" + pass + ''' +
                ", date=" + date +
                '}';
    }
}

controller:

package gvn.openlab.controller;
import gvn.openlab.bean.Datetimeday;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Logncontroller {
    @RequestMapping("/index2")
    public String loge(Datetimeday datetime){
        System.out.println(datetime);
        return "";
    }
    }

logn界面jsp:

<%--
  Created by IntelliJ IDEA.
  User: 11960
  Date: 2021/9/26
  Time: 15:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


姓名: 密码: 日期:

时间转化类:

package gvn.openlab.bean;

import lombok.SneakyThrows;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Controller;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter implements Converter {
    @SneakyThrows
    @Override
    public Date convert(String s){
        SimpleDateFormat adf=new SimpleDateFormat("yyyy-MM-dd");
        return adf.parse(s);
    }
}

结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270108.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号