Tatsächlich ist die Seiteninternationalisierung in SpringMVC im Wesentlichen dieselbe wie die Überprüfungsinternationalisierung im vorherigen Kapitel.
1. Internationalisieren Sie die Seite
1) Zuerst fügen wir der Spring-Konfigurationsdatei eine internationalisierte Bean-Konfiguration hinzu
<!-- 注册国际化信息,必须有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) Fügen Sie dann unsere Ressourcendatei hinzu. Das Präfix dieser Ressourcendatei muss mit dem Wert der oben konfigurierten Bean übereinstimmen.
Wir schreiben den Inhalt, den wir zur Internationalisierung benötigen, in die Ressourcendatei
Wenn wir dann zur Seite „Internationalisiert“ springen Ressourcen müssen geladen werden
@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"; }
Wir können JSTL- oder Spring-Tag-Dateninternationalisierungsinformationen auf der Seite verwenden. Das Formular-Tag in Spring wird verwendet, um die Eingabeaufforderungsinformationen nach dem Spring-Überprüfungsfehler (im vorherigen Kapitel erwähnt) einzugeben 🎜>
<%@ 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. Datei-Upload
Der Datei-Upload von SpringMVC erfolgt direkt durch die Plug-and-Play-Implementierung dieMultipartResolver-Schnittstelle. Spring verwendet zur Implementierung seine Implementierungsklasse CommonsMultipartResolver. Im SpringMVC-Kontext gibt es keine automatische Assembly, daher müssen wir sie manuell konfigurieren. Wir werden hier direkt einen Multi-Datei-Upload implementieren, wenn Sie mehrere Dateien hochladen können, haben Sie dann Angst, eine einzelne Datei hochzuladen?
Vor der Konfiguration importieren wir zunächst die JAR-Pakete für den Datei-Upload. Diese Pakete sind in unserem Frühjahr nicht verfügbar.
Dann konfigurieren wir die Bean manuell
<!-- 配置文件上传 --> <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" Beachten Sie, dass dies beim Hochladen von Dateien hinzugefügt werden muss und es sich um eine Post-Anfrage handeln muss.
Dann schauen wir uns an, wie unser Server die Datei empfängt. Verwenden Sie MultipartFile[], um mehrere Dateien hochzuladen, und stellen Sie sicher, dass Sie vor dem Parameter die Annotation @RequestParam("file") hinzufügen, andernfalls eine Fehler wird gemeldet. Für das Hochladen einer einzelnen Datei müssen wir nur ein MultipartFile-Objekt verwenden und es sind keine Anmerkungen erforderlich.
/** * 单文件上传 : 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"; }
abrufen
Das obige ist der detaillierte Inhalt vonEinführung in die Seiteninternationalisierung und den Datei-Upload in SpringMVC (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!