実際、SpringMVC でのページの国際化は、前の章の検証の国際化と基本的に同じです。
1. ページの国際化
1) まず、国際化された Bean 設定を Spring 設定ファイルに追加します
<!-- 注册国际化信息,必须有id,指定资源文件名称,资源文件在src目录下 --> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename" value="i18n"></property> </bean> <!-- 配置LocalResolver用来获取本地化语言 --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean> <!-- 配置LocaleChanceInterceptor拦截器 --> <mvc:interceptors> <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> </mvc:interceptors>
2) 次に、リソース ファイルを追加します。このリソース ファイルのプレフィックスは、上で構成した Bean の値と同じである必要があります。
国際化する必要があるコンテンツをリソース ファイルに記述します。
次に、「国際化」ページにジャンプします。リソースをロードする必要があります
@RequestMapping(value="login",method=RequestMethod.GET) public String login(Locale locale,Map<String ,Object> 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" %>
<form:form action="login" method="post" commandName="user"> <fmt:message key="name"/> <form:input path="username"/> <form:errors path="username"/> <br> <fmt:message key="pass"/> <form:input path="userpass"/> <input type="submit" value="<spring:message code="submit"/>"> </form:form>
<a href="login?locale=zh_CN">中文</a> <a href="login?locale=en_US">英文</a>
2. ファイルのアップロード
SpringMVC のファイル アップロードは、プラグインによって直接サポートされます。 and-playMultipartResolver インターフェイス。 Spring はその実装クラス CommonsMultipartResolver を使用して実装します。 SpringMVC コンテキストには自動アセンブリがないため、手動で構成する必要があります。ここでは複数ファイルのアップロードを直接実装します。複数のファイルをアップロードできる場合、単一のファイルをアップロードするのは心配ですか?
設定する前に、まずファイルアップロード用の jar パッケージをインポートします。これらのパッケージは Spring では使用できません。
次に、Bean を手動で設定します
<!-- 配置文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 指定默认的编码格式 --> <property name="defaultEncoding" value="UTF-8" /> <!-- 指定允许上传的文件大小,单位Byte --> <property name="maxUploadSize" value="512000" /> </bean>
<form action="${pageContext.request.contextPath}/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"/><br> <input type="file" name="file"/><br> <input type="file" name="file"/><br> <input type="submit" value="submit"> </form>
enctype="multipart/form-data" これはファイルをアップロードするときに追加する必要があり、ポスト リクエストである必要があることに注意してください。
次に、サーバーがファイルを受信する方法を見てみましょう。 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"; }
getBytes( ): バイト配列を取得します
以上がSpringMVC でのページの国際化とファイルのアップロードの概要 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。