Программное обеспечение и продукт разрабатываются и улучшаются по биту, с большим количеством функций, более высокой производительности и лучшим пользовательским опытом ... Улучшение каждого показателя требует практических вещей, которые необходимо выполнить. Например, ваш продукт стал больше, и все больше людей используют его не только для Шанхая, народа Пекина, но и для индийских людей, французов и т. Д. Можно сказать, что этот продукт вышел на международную арену. Когда индийские приятели входят в URL, чтобы получить доступ к продукту, «Добро пожаловать, третий брат» появляется на интерфейсе, и я думаю, что приятели смущены на месте. В это время возникла интернационализация.
Чтобы приготовить международные блюда, это на самом деле не так сложно, как вы думаете. Вместо этого это очень просто. Если вы не верите в это, вы можете увидеть ...
1. Inject resourcebundlemessagesource
Добавить Beanresourcebundlmessagesource для международной обработки в Springmvc.xml
<bean id = "messageource"> <name = "baseName" value = "i18n"> </property> </bean>
Имя в собственности здесь такое же, как и название свойства в классе инъекций. Здесь значение определяет имя последующего файла интернационализации. Помните, что это I18N, и вы сразу увидите его использование.
2. Создать международные документы
В общей сложности необходимо создать три международных файла атрибутов
i18n.properties - Международный файл по умолчанию
i18n_en_us.properties - Интернационализированный документ для английской среды
i18n_zh_cn.properties - Интернационализированный документ для китайской среды
Примечание. Почему имена файлов начинаются с i18n? Поскольку в файле конфигурации Springmvc.xml в первой точке настроенное значение I18N
Содержимое файлов i18n.properties и i18n_en_us.properties совпадает с
i18n.username = usernamei18n.password = пароль
i18n_zh_cn.properties
i18n.username =/u7528/u6237/u540di18n.password =/u5bc6/u7801
3. Создайте новую страницу
Создайте две новые страницы, одна - i18n.jsp, который отображает имя пользователя, и есть гиперссылка, чтобы перейти на i18n2.jsp, а другая - i18n2.jsp, которая отображает пароль, и есть гиперссылка, чтобы перейти на i18n.jsp.
i18n.jsp
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%> <! Doctype html html html "////w3 Html 4.01 Transitional // en "" http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv = "title-type" content = "text/html; key = "i18n.username"> </fmt: сообщение> <br> <br> <a href = "i18n2"> i18n2 </a> </body> </html>
i18n2.jsp
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%> <! Doctype html html html "////w3 Html 4.01 Transitional // en "" http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv = "title-type" content = "text/html; key = "i18n.password"> </fmt: сообщение> <br> <br> <br> <a href = "i18n"> i18n </a> </body> </html>
В то же время, очевидно, нам нужно добавить запись в index.jsp и ссылку на страницу i18n.jsp следующим образом
<a href = "i18n"> i18n </a>
Чтобы иметь возможность напрямую щелкнуть и ссылаться без необходимости обрабатывать и прыгать в вид через обработчик, нам нужно добавить теги в Springmvc.xml
<MVC: Pove-Controller Path = "/i18n" View-name = "i18n"/> <mvc: povelloller path = "/i18n2" view-name = "i18n2"/>
Это позволяет вам напрямую получить доступ к страницам i18n.jsp и I18N2.jsp в адресной строке.
Небольшая яма: если метод кодирования в i18n.jsp и i18n2.jsp принимает по умолчанию «ISO-8859-1», на странице будет отображаться искаженный код.
Когда кодирование изменяется на «UTF-8», он может отображаться нормально
Выше всего является основным методом интернационализации. Если я все еще хочу сделать i18n.jsp, которому не нужно напрямую доступ к i18n.jsp, но представлен после обработки обработчиков, или я также хочу приготовить международное блюдо, которое не должно быть таким неприятным и должно переключать языки, возможно ли? Конечно, давайте продолжим видеть-
1. Добавить теги для доступа i18n.jsp непосредственно в Springmvc.xml, прежде чем комментировать
<!-<mvc: parte-controller path = "/i18n" view-name = "i18n"/>->
2. Добавить интерфейс обработки в класс обработки Hanlder Springmvctest
@AutowiredPrivate resourceBundLemessAgesource Speaksource; @RequestMapping ("/i18n") public String testi18n (locale locale) {string val = messageource.getmessage ("i18n.username", null, locale); System.out.println (val); вернуть "i18n";}Обратите внимание, что здесь вводится интернационализированная обработка класса Resourcebundlemessagesource, и интернационализированная стоимость недвижимости получается с использованием его метода GetMessage.
Начните службу Tomcat и посмотрите
Так что, если вы отобразите информацию соответствующего языка в разных языковых средах в соответствии с вашими собственными настройками?
1. Настройка SessionLocalerESolver и LocaleChangeInterceptor
<!-Configure SessionLocalerEsolver-> <Bean Id = "socaleresolver"> </bean> <!-Configure LocaleChangeInterceptor-> <MVC: Interceptors> <Bean> </bean> </mvc: Interceptors>
LocaleChangeInterceptor здесь в основном используется для проведения запросов с информацией о локале в объект локали и получения объекта Localeresolver.
После этого сеанслокалресоолвер здесь преобразует вышеуказанный объект LocalResolver в свойство сеанса и выведет это свойство, то есть объект Locale и вернет его в приложение.
2. Добавить гиперссылку в index.jsp
<a href = "i18n? locale = en_cn"> китайский </a> <br> <br> <a href = "i18n? locale = en_us"> английский </a>
Таким образом, мы можем увидеть результаты
После разговора о интернационализации, давайте поговорим о поддержке SpringMVC JSON.
В традиционном процессе разработки наш обработчик, то есть слой контроллера, обычно соответствует рутине обращения к представлению JSP; Однако такие сценарии не могут соответствовать всем требованиям. Например, нам часто нужно только возвращать данные, а не страницу JSP. Затем в это время @Responsebody и @Responseentity of Spring MVC3 поддерживают такие функции. Контроллер возвращает данные напрямую (мы поговорим о данных JSON здесь), а не указываем непосредственно на конкретный представление. Вот простой пример загрузки и загрузки.
1. Загрузка файла
1.1 Реализовать запрос ajax в index.jsp с использованием jQuery
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"-// w3c // dtd html 4.01 // en "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> Вставьте заголовок здесь </tite> <script =" javascript " src = "scripts/jquery-1.9.1.min.js"> </script> <script> $ (function () {$ ("#testjson"). Click (function () {var url = this.href; var args = {}; $ .post (url, args, function (data) {for (var i = 0; Data [i] .id; id = "testjson"> testjson </a> </body> </html>Ядро здесь - запрос Ajax, написанный в jQuery
Запрашиваемый URL -адрес - это определенный HREF;
Данные - это данные, возвращаемые после ответа на запрос;
При обычных обстоятельствах мы должны запросить информацию от всех сотрудников, и через обход здесь мы получим всю информацию от каждого сотрудника, такую как ID, Lastname и т. Д.
1.2. Здесь нам нужно представить три пакета банка
Эти три в основном используются позже при преобразовании возвратных данных.
1.3. Добавить интерфейс в Handler Springmvctest
@Responsebody@requestmapping ("testjson") public collection <mempieee> testjson () {return hopieedao.getall ();}Мое личное понимание здесь состоит в том, чтобы вернуть всю информацию о сотруднике, запрашиваемую через hopeedao в интерфейс в качестве ответа, и, наконец, получить форму данных JSON через серию обработки, а затем пройти и разрабатывать на странице переднего плана. И все это сделано благодаря аннотации @ResponseBody.
В частности, существуют некоторые внутренние преобразователи для выполнения этих конверсий, разбившихся точек в методе интерфейса и вступления в отладку.
Выберите DispatcherServlet, найдите это-> Handleradiapters-> elementData, найдите requestmappingHandlerAdapter
7 -й Mapping Jackson2httpmessageConverter Вот преобразователь, который мы загрузили после добавления вышеуказанных пакетов JAR. Как видно, существует достаточно преобразователей для различных типов данных для обработки.
1.4 Добавить ссылку в index.jsp
<form action = "testfileupload" method = "post" ectype = "multipart/form-data"> file: <input type = "file" name = "file"/> desc: <input type = "text" name = "/> <input type =" pospod value = "/> </form> <br/>"/> <input = "value ="/> </form> <br/>
Окончательный результат загрузки заключается в следующем
2. Скачать файл
2.1 Приготовьтесь к загрузке источника
Создайте новый файловый каталог в рамках WebContent, поместите AAA.TXT в качестве источника загрузки
2.2 Добавить гиперссылку в index.jsp в качестве портала загрузки
<a href = "testRespenceentity" id = "testjson"> testresponseanty </a> <br/>
2.3 Добавление интерфейса в Handler Springmvctest
@Requestmapping ("testResprespenceentity") public responseent <byte []> testresponseentity (httpsession session) бросает ioexception {byte [] body = null; ServletContext servletContext = session.getServletContext (); InputStream in = ServletContext.getResourCeasStream ("/files/aaa.txt"); body = new Byte [in.vailable ()]; in.read (тело); Httpheaders Headers = new httphaders (); headers.add ("disposition", "Attachment; filename = aaa.txt"); Httpstatus statuscode = httpstatus.ok; Responseentity <byte []> response = new ответа <> (тело, заголовки, StatusCode); возвратный ответ;}Запустить Tomcat, и мы видим, что AAA.TXT можно загрузить ~~~
Хорошо, пока что мы сделали
1. Поддержка интернационализации
2. Загрузка файла
3. Скачать файл
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.