소프트웨어와 제품은 점점 더 많은 기능, 더 강력한 성능 및 더 나은 사용자 경험으로 비트 단위로 개발되고 개선되었습니다. 각 지표의 개선에는 실용적인 작업이 필요합니다. 예를 들어, 귀하의 제품은 상하이 사람들, 베이징 사람들뿐만 아니라 인도인, 프랑스 사람들 등을 위해 더 많은 사람들이 그것을 사용하고 더 많은 사람들이 그것을 사용합니다.이 제품은 국제 무대에 진입했다고 말할 수 있습니다. 인디언 친구들이 제품에 액세스하기 위해 URL에 들어가면 "환영, 제 3 형제"가 인터페이스에 나타나고 친구들이 그 자리에서 혼란스러워한다고 생각합니다. 현재 국제화가 시작되었습니다.
국제 요리를 만드는 것은 생각만큼 복잡하지 않습니다. 대신, 그것은 매우 간단합니다. 믿지 않으면 볼 수 있습니다.
1. ResourceBundLemessagesSource를 주입하십시오
SpringMvc.xml에서 국제 처리를 위해 BeanResourceBundlMessagesSource를 추가하십시오
<bean id = "messageSource"> <property name = "basename"value = "i18n"> </property> </bean>
여기의 속성의 이름은 주입 클래스의 속성 이름과 동일합니다. 여기의 값은 후속 국제화 파일의 이름을 결정합니다. I18N이라는 것을 기억하십시오. 즉시 사용량을 볼 수 있습니다.
2. 국제 문서를 만듭니다
총 3 개의 국제 속성 파일을 작성해야합니다.
i18n.properties- 기본 국제 파일
i18n_en_us.properties- 영어 환경을위한 국제화 된 문서
i18n_zh_cn. 단장 - 중국 환경을위한 국제화 된 문서
참고 : 파일 이름이 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"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <%@ taglib prefix = "fmt"uri = "http://java.sun.com/jsp/jstl/fmt"%"%publl"html "-// w3c/d html 4.01 전환 // en ""http://www.w3.org/tr/html4/loose.dtd"> html> http-equiv = "content-type"content = "text/htf-8"> </head> </head> key = "i18n.username"> </fmt : message> <br> <br> <a href = "i18n2"> i18n2 </a> </body> </html>
i18n2.jsp
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <%@ taglib prefix = "fmt"uri = "http://java.sun.com/jsp/jstl/fmt"%"%publl"html "-// w3c/d html 4.01 전환 // en ""http://www.w3.org/tr/html4/loose.dtd"> html> http-equiv = "content-type"content = "text/htf-8"> </head> </head> key = "i18n.password"> </fmt : message> <br> <br> <br> <a href = "i18n"> i18n </a> </body> </html>
동시에, 우리는 다음과 같이 index.jsp의 항목을 추가하고 i18n.jsp 페이지에 링크해야합니다.
<a href = "i18n"> i18n </a>
처리 할 필요없이 직접 클릭하고 연결하려면 핸들러를 통해보기로 이동할 필요가 없으려면 springmvc.xml에서 태그를 추가해야합니다.
<mvc : view-controller path = "/i18n"view-name = "i18n"/> <mvc : view-controller path = "/i18n2"view-name = "i18n2"/>
이를 통해 주소 표시 줄에서 i18n.jsp 및 i18n2.jsp 페이지에 직접 액세스 할 수 있습니다.
작은 구덩이 : i18n.jsp 및 i18n2.jsp의 인코딩 메소드가 기본 "ISO-8859-1"을 채택하는 경우 페이지에 Barbled 코드가 표시됩니다.
인코딩이 "UTF-8"으로 변경되면 정상적으로 표시 할 수 있습니다.
위는 국제화의 기본 방법입니다. 여전히 i18n.jsp에 직접 액세스 할 필요가 없지만 핸들러 처리 후에 제시되거나 너무 번거롭지 않아야 할 필요가없고 언어를 전환 해야하는 국제 요리를 만들고 싶습니까? 물론 계속해서 보자.
1. 댓글을 달기 전에 springmvc.xml에서 직접 i18n.jsp에 대한 태그 추가
<!-<mvc : view-controller path = "/i18n"view-name = "i18n"/>->
2. Hanlder Processing Class Springmvctest에서 처리 인터페이스 추가
@autowiredPrivate ResourceBundleMessageSource MessageSource; @requestmapping ( "/i18n") public String testi18n (Locale locale) {String val = messageSource.getMessage ( "i18n.username", null, locale); System.out.println (val); "i18n"을 반환합니다.}국제화 된 처리 클래스 ResourceBundEssagesSource는 여기에 주입되며 GetMessage 방법을 사용하여 국제화 된 재산 가치를 얻습니다.
Tomcat 서비스를 시작하고 참조하십시오
자신의 설정에 따라 다른 언어 환경에서 해당 언어의 정보를 표시하면 어떻게됩니까?
1. SessionLocaleresolver 및 LocaleChangeinterceptor를 구성하십시오
<!-sessionlocaleresolver-> <bean id = "localeresolver"> </bean> <!-localechangeinterceptor 구성-> <mvc : interceptors> <ean> </bean> </mvc : interceptors>
여기서 LocaleChangeinterceptor는 주로 로케일 정보를 로케일 객체에 요청하고 Localeresolver 객체를 얻는 데 사용됩니다.
그 후, 여기에서 SessionLocalresolver는 위의 LocalResolver 객체를 세션 속성으로 변환 하여이 속성, 즉 로케일 객체를 꺼내어 응용 프로그램으로 반환합니다.
2. index.jsp에 하이퍼 링크를 추가하십시오
<a href = "i18n? locale = en_cn"> 중국어 </a> <br> <br> <a href = "i18n? locale = en_us"> 영어 </a>
이런 식으로 결과를 볼 수 있습니다
국제화에 대해 이야기 한 후 SpringMVC의 JSON 지원에 대해 이야기 해 봅시다.
전통적인 개발 프로세스에서, 우리의 핸들러, 즉 컨트롤러 계층은 일반적으로 JSP 뷰로 전환하는 루틴을 따릅니다. 그러나 이러한 시나리오는 모든 요구 사항을 충족시킬 수는 없습니다. 예를 들어, 우리는 종종 JSP 페이지 대신 데이터를 반환하면됩니다. 그런 다음이 시점에서 Spring MVC3의 @ResponseBody 및 @Responesentity는 그러한 기능을 지원합니다. 컨트롤러는 특정보기를 직접 지적하지 않고 데이터를 직접 반환합니다 (여기서는 JSON 데이터에 대해 이야기 할 것입니다). 다음은 업로드 및 다운로드의 간단한 예입니다.
1. 파일 업로드
1.1 jQuery를 사용하여 index.jsp에서 ajax 요청을 구현하십시오
<%@ page language = "java"contmenttype = "text/html; charset = utf-8"pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtml 4.01 Transitional // en" "http://www.w3.org/tr/tr/html4/loose.dtd"> html> html> http-quiv ="content-type "content ="text/html; charset = utf-8 "> <title> 제목 </title> <script type> <text/javascript" src = "scripts/jquery-1.9.1.min.js"> </script> <cript> <cript> $ (function () {$ ( "#testjson"). click (function () {var url = this.href; var args = {}; $ .post (url, args, function (data) {data = 0; i <lenghengher). 데이터 [i] var lastname = alert (id + "); id = "testjson"> testjson </a> </body> </html>여기의 핵심은 jQuery로 작성된 Ajax 요청입니다
요청 된 URL은 정의 된 href입니다.
데이터는 요청 응답 후 반환 된 데이터입니다.
정상적인 상황에서는 모든 직원에게 정보를 요청해야하며 여기에서 Traversal을 통해 ID, LastName 등과 같은 각 직원으로부터 모든 정보를 얻게됩니다.
1.2. 여기에 3 개의 항아리 패키지를 소개해야합니다
이 세 가지는 주로 반환 데이터 변환에 나중에 사용됩니다.
1.3. 핸들러 SpringMvcTest에 인터페이스를 추가하십시오
@responsebody@requestmapping ( "testjson") public 컬렉션 <Employee> testjson () {return Employeedao.getall ();}여기서 개인적으로 이해하는 것은 Employeedao를 통해 쿼리 된 모든 직원 정보를 응답으로 인터페이스로 반환하고 마지막으로 일련의 처리를 통해 JSON 데이터 양식을 얻은 다음 전경 페이지에서 트래버스 및 구문 분석하는 것입니다. 그리고 주석 @ResponseBody 덕분에 모두 완료되었습니다.
구체적으로, 이러한 변환을 수행 할 수있는 일부 내부 변환기가 있으며 인터페이스 방법의 포인트를 깨고 디버깅을 입력합니다.
DispatcherServlet을 선택하고,이-> handlerAdiaPters-> ElementData를 찾고,이 배열에서 RequestMappingHandlerAdapter 찾기, MessageConverters를 찾으려면 클릭하면 총 7 개의 변환기가 있음을 알 수 있습니다.
7 번째 매핑 Jackson2httpmessageConverter는 위의 3 개의 JAR 패키지를 추가 한 후로드 한 변환기입니다. 알 수 있듯이, 처리 할 다른 데이터 유형을위한 충분한 변환기가 있습니다.
1.4 index.jsp에 링크를 추가하십시오
<form action = "testfileUpload"method = "post"encType = "multipart/form-data"> 파일 : <input type = "file"name = "file"/> desc : <input type = "text"name = "desc"/> <input type = "value ="제출 "/> <br/>
최종 업로드 결과는 다음과 같습니다
2. 파일 다운로드
2.1 소스를 다운로드 할 준비를합니다
WebContent 아래에서 새 파일 디렉토리를 만들고 AAA.TXT를 다운로드 소스로 넣으십시오.
2.2 다운로드 포털로 index.jsp에서 하이퍼 링크를 추가하십시오.
<a href = "testResponeentity"id = "testjson"> testResponseentity </a> <br/>
2.3 핸들러에서 인터페이스 추가 SpringMvcTest
@RequestMapping ( "testResponsentity") public responseentity <byte []> testResponseentity (httpsession session)는 ioexception {byte [] body = null; ServletContext ServletContext = session.getServletContext (); inputStream in = servletcontext.getResourceasStream ( "/files/aaa.txt"); body = new Byte [in.available ()]; in.Read (Body); httpheaders 헤더 = 새로운 httpheaders (); headers.add ( "Content-Disposition", "첨부 파일; filename = aaa.txt"); httpstatus statuscode = httpstatus.ok; ResponseNtity <byte []> 응답 = New Responsentity <> (Body, Headers, StatusCode); 반환 응답;}Tomcat을 시작하면 aaa.txt를 다운로드 할 수 있음을 알 수 있습니다 ~~~
좋아, 지금까지 우리는 무엇을했는지
1. 지원 국제화
2. 파일 업로드
3. 파일 다운로드
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.