0

0

SpringMVC中页面国际化与文件上传的介绍(附代码)

不言

不言

发布时间:2018-09-28 15:53:23

|

2208人浏览过

|

来源于博客园

转载

本篇文章给大家带来的内容是关于SpringMVC中页面国际化与文件上传的介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

其实springmvc中的页面国际化与上一章的验证国际化基本一致。

1.对页面进行国际化

1)首先我们对Spring配置文件中添加国际化bean配置


    
        
    
    
    
    
    
        
    

2)然后添加我们的资源文件,这个资源文件的前缀要与我们上面配置的bean的value相同。

我们在资源文件写入我们需要国际化的内容

然后我们在跳转页面的时候需要加载国际化资源

@RequestMapping(value="login",method=RequestMethod.GET)
    public String login(Locale locale,Map map){
        String name = messageSource.getMessage("name", null, locale);
        String pass = messageSource.getMessage("pass", null, locale);
        String title = messageSource.getMessage("title", null, locale);
        String submit = messageSource.getMessage("submit", null, locale);
        map.put("title", title);
        map.put("pass", pass);
        map.put("name", name);
        map.put("submit", submit);
        map.put("user", new User());
        return "login";
    }

我们在页面中可以使用jstl或者spring标签数据国际化信息,spring中的form标签是用来输入spring验证错误之后的提示信息(上章有提过)

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

然后我们页面中的国际化信息可以可这显示出来


        
        
        
        
">

我们还可以完成一个语言切换功能,我们在页面上加入两个超链接,当接收到请求,SpringMVC会在上下文中查找一个本地解析器,找到后使用它获取请求所对应的本地化类型信息,SpringMVC还允许还允许装配一个动态更改本地化类型的拦截器,这样通过指定一个请求参数就可以控制单个请求的本地化类型。

中文
英文

SpringMVC接到请求后首先会判断有没有这个参数,如果有这个参数就添加到session里面,如果没这个参数会到session里面去找,session里面没有找到会默认读取浏览器的语言。

2.文件上传

SpringMVC的文件上传非常的简单,它直接提供了直接的支持,这种支持是通过即插即用的MultipartResolver接口实现的。Spring用它的实现类CommonsMultipartResolver来实现。SpringMVC上下文中没有自动装配所以需要我们手动来配置。我们这里就直接实现一个多文件上传,多文件上传会了害怕单文件上传不会?

网奇英文商城外贸系统
网奇英文商城外贸系统

网奇Eshop是一个带有国际化语言支持的系统,可以同时在一个页面上显示全球任何一种语言而没有任何障碍、任何乱码。在本系统中您可以发现,后台可以用任意一种语言对前台进行管理、录入而没有阻碍。而任何一个国家的浏览者也可以用他们的本国语言在你的网站上下订单、留言。用户可以通过后台随意设定软件语言,也就是说你可以用本软件开设简体中文、繁体中文与英文或者其他语言的网上商店。网奇Eshop系统全部版本都使用模

下载

配置之前我们首先来导入文件上传的jar包,这些包在我们spring中是没有的。

然后我们手动配置下Bean


    
        
        
        
        
    

这个bean里还可以设置类型啊什么什么的,有需要的可以阅读源码。




enctype="multipart/form-data" 注意文件上传必须加上这个,而且必须是post请求。
然后我们来看下我们服务器是怎么接收到文件的,多文件上传使用 MultipartFile[] 并且一定要在参数前加上注解 @RequestParam("file")否则会报错。单文件上传我们只需要使用一个MultipartFile对象,并且无需加注解。

/**
     *    单文件上传 :  MultipartFile file
     *    多文件上传 :  @RequestParam("file") MultipartFile[] file
     *    多文件上传必须加上 @RequestParam("file")注解否则会报错
     *  @author:MiYa.
     *  @time:2018-9-28 11:50
     */
    @RequestMapping(value="upload",method=RequestMethod.POST)
    public String testFileUpload(HttpServletRequest request , @RequestParam("file") MultipartFile[] file){
        for (int i = 0; i < file.length; i++) {
            MultipartFile multipartFile = file[i];
            System.out.println(" ContentType: " + multipartFile.getContentType());
            System.out.println(" Name: " + multipartFile.getName());
            System.out.println(" OriginalFilename: " + multipartFile.getOriginalFilename());
            System.out.println(" Size: " + multipartFile.getSize());
            //判断是否提交文件,如果没有那么跳过上传
            if(multipartFile.isEmpty()){
                continue;
            }
            // 获取文件的上传路径
            String uploadpath = request.getServletContext().getRealPath("uploads");
            //获取文件名称
            String filename = multipartFile.getOriginalFilename();
            //截取文件后缀
            String fileext = filename.substring(filename.lastIndexOf("."));
            //生成新的随机文件名称
            String newfileName = UUID.randomUUID() + fileext;    
            //文件保存路径
            File savepath = new File(uploadpath + "/" + newfileName);
            //上传文件
            try {
                multipartFile.transferTo(savepath);
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        return "welcome";
    }

整理下MultipartFile经常使用的方法:

isEmpty():判断是否提交文件上来 

getContextType():获取文件类型

getName():获取表单元素名称

getOriginalFilename():获取文件名

getSize():获取文件大小

getBytes():获取字节数组

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号