在Ubuntu上實現JSP國際化,你需要遵循以下步驟:
首先,確保你的Ubuntu系統上已經安裝了Java開發工具包(JDK)和Apache Tomcat服務器。
sudo apt update
sudo apt install openjdk-11-jdk
sudo apt install tomcat9
在你的項目中創建一個src/main/resources
目錄,并在其中為每種語言創建一個屬性文件。例如:
messages_en.properties
(英文)messages_zh_CN.properties
(簡體中文)在這些文件中定義鍵值對,例如:
# messages_en.properties
greeting=Hello
welcome=Welcome to our application
# messages_zh_CN.properties
greeting=你好
welcome=歡迎使用我們的應用程序
如果你使用的是Spring Boot,可以在application.properties
或application.yml
中配置國際化資源文件的位置:
# application.properties
spring.messages.basename=i18n/messages
在你的JSP頁面中,使用Spring的<spring:message>
標簽來顯示國際化文本:
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
<title><spring:message code="welcome"/></title>
</head>
<body>
<h1><spring:message code="greeting"/></h1>
</body>
</html>
確保Tomcat已經配置為支持JSP。通常,Tomcat默認支持JSP,但你可以通過編輯/etc/tomcat9/tomcat9.conf
文件來確認:
sudo nano /etc/tomcat9/tomcat9.conf
確保以下行沒有被注釋掉:
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
將你的項目打包成WAR文件并部署到Tomcat服務器:
mvn package
sudo cp target/your-application.war /var/lib/tomcat9/webapps/
重啟Tomcat服務器:
sudo systemctl restart tomcat9
訪問你的應用程序,例如:http://your-server-ip:8080/your-application
,你應該能夠看到根據瀏覽器語言設置顯示的國際化文本。
如果你需要實現動態語言切換功能,可以在用戶選擇語言時設置會話或請求的Locale,并在Spring配置中啟用LocaleResolver:
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.US);
return slr;
}
然后在控制器中處理語言切換請求:
@RequestMapping("/changeLanguage")
public String changeLanguage(@RequestParam String lang, HttpServletRequest request, HttpServletResponse response) {
Locale locale = new Locale(lang);
LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request);
if (localeResolver != null) {
localeResolver.setLocale(request, response, locale);
}
return "redirect:/";
}
通過以上步驟,你應該能夠在Ubuntu上成功實現JSP國際化。