Eine Software und ein Produkt werden Stück für Stück entwickelt und verbessert, mit immer mehr Funktionen, stärkere Leistung und besserer Benutzererfahrung ... Die Verbesserung jedes Indikators erfordert, dass praktische Dinge durchgeführt werden müssen. Zum Beispiel ist Ihr Produkt größer geworden und mehr Menschen verwenden es, nicht nur für Shanghai -Menschen, Peking -Menschen, sondern auch für indische Menschen, Franzosen usw. Es kann gesagt werden, dass dieses Produkt in die internationale Bühne eingetreten ist. Wenn indische Freunde die URL betreten, um auf das Produkt zuzugreifen, taucht "Welcome, Third Brother" auf die Benutzeroberfläche auf, und ich denke, die Kumpels sind vor Ort verwirrt. Zu dieser Zeit entstand die Internationalisierung.
Um internationale Gerichte zuzubereiten, ist es wirklich nicht so kompliziert, wie Sie denken. Stattdessen ist es sehr einfach. Wenn Sie es nicht glauben, können Sie sehen ...
1. Inject ResourcebundLemessagesource
Hinzufügen von beanresourcebundlmessagesource für die internationale Verarbeitung in SpringMvc.xml
<bean id = "messageSource"> <Eigenschaft name = "BasisName" value = "i18n"> </property> </bean>
Der Name in der Eigenschaft hier ist der gleiche wie der Eigenschaftsname in der Injektionsklasse. Der Wert hier bestimmt den Namen der nachfolgenden Internationalisierungsdatei. Denken Sie daran, es ist i18n und Sie werden die Verwendung sofort sehen.
2. Erstellen Sie internationale Dokumente
Insgesamt müssen drei internationale Attributdateien erstellt werden
I18N.Properties - Standard International Datei
i18n_en_us.properties - Internationalisiertes Dokument für die englische Umgebung
I18N_ZH_CN.PROPERTIES - Internationalisiertes Dokument für die chinesische Umgebung
Hinweis: Warum beginnen die Namen der Dateien mit i18n? Denn in der Konfigurationsdatei springmvc.xml am ersten Punkt beträgt der konfigurierte Wert i18n
Der Inhalt der i18n.properties und i18n_en_us.properties -Dateien sind die gleichen wie
i18n.username = userernamei18n.password = password
i18n_zh_cn.properties
i18n.username =/u7528/u6237/u540di18n.password =/u5bc6/u7801
3. Erstellen Sie eine neue Seite
Erstellen Sie zwei neue Seiten, einer ist i18n.jsp, der den Benutzernamen anzeigt, und es gibt einen Hyperlink, der auf i18n2.jsp springt, und der andere ist i18n2.jsp, das das Passwort anzeigt, und es gibt einen Hyperlink, der auf i18n.jsp springt.
i18n.jsp
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fttp"%> <! Html 4.01 transitional // en key = "i18n.username"> </fmt: message> <br> <br> <a href = "i18n2"> i18n2 </a> </body> </html>
I18N2.jsp
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fttp"%> <! Html 4.01 transitional // en key = "i18n.password"> </fmt: message> <br> <br> <br> <a href = "i18n"> i18n </a> </body> </html>
Gleichzeitig müssen wir natürlich einen Eintrag in index.jsp hinzufügen und einen Link zur Seite i18n.jsp wie folgt hinzufügen
<a href = "i18n"> i18n </a>
Um direkt zu klicken und zu verlinken, ohne die Ansicht über den Handler zu verarbeiten und zur Ansicht zu springen, müssen wir in SpringMVC.xml Tags hinzufügen
<MVC: View-Controller Path = "/i18n" View-Name = "I18N"/> <MVC: View-Controller Path = "/I18N2" View-Name = "I18N2"/>
Auf diese Weise können Sie direkt auf die Seiten i18n.jsp und i18n2.jsp in der Adressleiste zugreifen.
Kleine Grube: Wenn die Codierungsmethode in i18n.jsp und i18n2.jsp den Standard "ISO-8859-1" annimmt, zeigt die Seite verstümmelte Code an.
Wenn die Codierung in "UTF-8" geändert wird, kann es normal angezeigt werden
Das obige ist die grundlegende Methode der Internationalisierung. Wenn ich immer noch einen i18n.jsp erstellen möchte, der nicht direkt auf i18n.jsp zugreifen muss, sondern nach der Handlerverarbeitung präsentiert wird, oder ich möchte auch ein internationales Gericht herstellen, das nicht so störend sein muss und die Sprachen wechseln muss, ist es möglich? Natürlich sehen wir weiterhin sehen ...
1. Fügen Sie Tags für i18n.jsp -Zugriff direkt in SpringMvc.xml hinzu, bevor Sie Kommentare abgeben
<!-<MVC: View-Controller Path = "/i18n" View-Name = "i18n"/>->
2. Fügen Sie die Verarbeitungsschnittstelle in der Hander -Verarbeitungsklasse SpringMvctest hinzu
@AutowiredPrivate ResourcebundLemessageSource messageSource; @RequestMapping ("/i18n") public String testi18n (Lokalschema) {String val = messageSource.getMessage ("i18n.username", null, bookale); System.out.println (Val); zurück "i18n";}Beachten Sie, dass die internationalisierte Verarbeitungsklasse ResourcebundLemessageSource hier injiziert wird und der internationalisierte Immobilienwert unter Verwendung seiner GetMessage -Methode erhalten wird.
Starten Sie den Tomcat -Service und sehen Sie
Was ist also, wenn Sie die Informationen der entsprechenden Sprache in verschiedenen Sprachumgebungen gemäß Ihren eigenen Einstellungen anzeigen?
1. Konfigurieren Sie SessionLocaleresolver und LocalEchangeInterceptor
<!-SessionLocaleresolver konfigurieren-> <bean id = "localeresolver"> </bean> <!-Configure localEchangeInterceptor-> <mvc: Interceptors> <bean> </bean> </mvc: Interceptors>
Der LocalEchangeInterceptor wird hier hauptsächlich verwendet, um Anfragen mit Gebietsschemasinformationen in ein Gebietsschemasobjekt zu analysieren und ein Localeresolver -Objekt zu erhalten.
Danach wird der SessionLocalResolver hier das obige LocalResolver -Objekt in eine Sitzungseigenschaft umwandeln und diese Eigenschaft herausnehmen, dh das Gebietsschemasobjekt, und es an die Anwendung zurückgibt.
2. Fügen Sie einen Hyperlink in index.jsp hinzu
<a href = "i18n? local
Auf diese Weise können wir die Ergebnisse sehen
Nachdem wir über die Internationalisierung gesprochen haben, sprechen wir über die Unterstützung von SpringMVC für JSON.
Im traditionellen Entwicklungsprozess folgt unser Handler, d. H. Die Controller -Schicht, normalerweise der Routine, sich einer JSP -Ansicht zu wenden. Solche Szenarien können jedoch nicht alle Anforderungen erfüllen. Zum Beispiel müssen wir oft nur Daten zurückgeben, anstatt eine JSP -Seite. Zu diesem Zeitpunkt unterstützen die @ResponseBody und @ResponseEntity von Spring MVC3 solche Funktionen. Der Controller gibt die Daten direkt zurück (wir werden hier über JSON -Daten sprechen), anstatt direkt auf die spezifische Ansicht zu zeigen. Hier ist ein einfaches Beispiel für das Hochladen und Herunterladen.
1. Datei -Upload
1.1 Implementieren Sie die AJAX -Anforderung in Index.jsp mit JQuery
<%@ page Language = "java" contentType = "text/html; charset = utf-8" pageCoding = "utf-8"%> <! docType html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><Head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <titels> hier </title> </title> </title> <script type =" src = "scripts/jQuery-1.9.1.min.js"> </script> <script> $ (function () {$ ("#testjson"). click (function () {var url = this.href; var args = {}; Daten [i] .ID; id = "testjson"> testjson </a> </body> </html>Der Kern hier ist eine Ajax -Anfrage, die in JQuery geschrieben wurde
Die angeforderte URL ist die definierte HREF;
Daten sind die Daten, die nach der Anforderungsantwort zurückgegeben wurden.
Unter normalen Umständen sollten wir Informationen von allen Mitarbeitern anfordern und über den Traversal hier alle Informationen von jedem Mitarbeiter wie ID, Lastname usw. erhalten.
1.2. Hier müssen wir drei Glaspakete vorstellen
Diese drei werden hauptsächlich später bei der Umwandlung von Rückgabedaten verwendet.
1.3. Schnittstelle in Handler SpringMvctest hinzufügen
@ResponseBody@requestMapping ("testjson") öffentliche Sammlung <Wephecte> testjson () {return pealthao.getall ();}Mein persönliches Verständnis hier ist es, alle übertragernden Mitarbeiterinformationen als Antwort an die Schnittstelle an die Schnittstelle zurückzugeben und schließlich ein JSON -Datenformular durch eine Reihe von Verarbeitung zu erhalten und dann in der Vordergrundseite zu durchqueren und zu analysieren. Und alles ist dank der Annotation @ResponseBody geschafft.
Insbesondere gibt es einige interne Konverter, die diese Conversions, Bruchpunkte in der Schnittstellenmethode durchführen und Debugging eingeben.
Wählen Sie DispatherServlet, finden Sie dies-> Handleradiapter-> elementData, finden Sie RequestMapingHandlerAdapter in diesem Array, klicken Sie in MessageConverters, und Sie können sehen, dass insgesamt 7 Konverter vorhanden sind
Der 7. Mappingjackson2HttpMessageConverter ist der Konverter, den wir nach dem Hinzufügen der oben genannten drei JAR -Pakete geladen haben. Wie zu sehen ist, gibt es genügend Konverter, damit verschiedene Datentypen verarbeitet werden können.
1.4 Link in index.jsp hinzufügen
<form action = "testFileUpload" methode = "post" engType = "MultiPart/Form-Data"> Datei: <Eingabe type = "Datei" name = "Datei"/> Desc: <input type = "text" name = "desc"/> <input type = "value =" subly "/> </</Form> <br/>
Das endgültige Upload -Ergebnis ist wie folgt
2. Datei -Download
2.1 Bereiten Sie sich darauf vor, die Quelle herunterzuladen
Erstellen Sie ein neues Dateiverzeichnis unter WebContent und setzen Sie aaa.txt als Download -Quelle ein
2.2 Fügen Sie einen Hyperlink in Index.jsp als Download -Portal hinzu
<a href = "testResponseEntity" id = "testjson"> testResponseEntity </a> <br/>
2.3 Hinzufügen von Schnittstellen in Handler SpringMvctest
@RequestMapping ("testResponseEntity") public responseentity <Byte []> testResponseEntity (httpSession Session) löst IOException {byte [] body = null aus; ServletContext ServletContext = session.getServletContext (); InputStream in = servletContext.getResourceAsStream ("/file/aaa.txt"); Body = New Byte [in.Available ()]; in.read (Körper); HttpHeaders headers = new httphoeders (); Headers.Add ("Inhaltsdisposition", "Anhang; Dateiname = aaa.txt"); Httpstatus statusCode = httpstatus.ok; Responseentity <Byte []> response = new responseEnentity <> (Körper, Header, Statuscode); Rückgabeantwort;}Starten Sie Tomcat und wir können sehen, dass aaa.txt heruntergeladen werden kann ~~~
OK, was haben wir bisher getan?
1. Unterstützung der Internationalisierung
2. Datei -Upload
3. Datei -Download
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.