国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - struts2的國際化實現網站整體中英文切換實例代碼

struts2的國際化實現網站整體中英文切換實例代碼

2021-01-28 12:11阿木俠 Java教程

本篇文章主要介紹了struts2的國際化實現網站整體中英文切換實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文介紹了struts2國際化實現網站整體中英文切換實例代碼,分享給大家,具體如下:

環境要求:struts2框架環境搭建成功

為了實現程序的國際化,必須先提供程序所需要的資源文件。資源文件的內容基本是key-value對,其中key是程序使用的部分,而value是程序的顯示部分。

資源文件的命名可以是如下3種形式:

  1. basename_language_country.properties
  2. basename_language.properties
  3. basename.properties

其中basename是資源文件的基本名稱,用戶可自由定義,而language和country是不變的,必須是java所支持的語言和國家。(用到哪個國家語言資源可查官方文檔)

java不可能支持所有的國家和語言,可以通過locale類的getavailablelocale方法獲取支持的,該方法返回一個locale數組,該數組中包含了所有支持的國家和語言。

創建資源文件:

globalmessages_en_us.properties(英文)

struts2的國際化實現網站整體中英文切換實例代碼

globalmessages_zh_cn.properties(中文)

struts2的國際化實現網站整體中英文切換實例代碼

編寫jsp頁面,在這個jsp上測試中英文切換效果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
string path = request.getcontextpath();
string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";
%>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
 <head>
  <base href="<%=basepath%>" rel="external nofollow" >
  <title></title>
 </head>
 <body>
 <s:i18n name="globalmessages">
  <s:text name="check"></s:text>:
  <a href="login.action?request_locale=zh_cn" rel="external nofollow" ><s:text name="chinese"></s:text></a> 
  <a href="login.action?request_locale=en_us" rel="external nofollow" ><s:text name="english"></s:text></a> 
  <br/>
  <h3><s:text name="title"></s:text></h3>
  <s:form action="login" method="post">
      <table width="344" height="300">
        <tr>
          <td> </td>
        </tr>
        <tr>
          <td><s:text name="username" />
          <td><s:textfield name="name" />
          </td>
        </tr>
        <tr>
          <td><s:text name="password" />
          </td>
          <td><s:password name="password" />
          </td>
        </tr>
        <tr>
          <td> </td>
          <td><s:submit value="%{gettext('login')}" /></td>
        </tr>
      </table>
    </s:form>
  </s:i18n>
 </body>
</html>

這里有一個i18n,他就是internationalization(國際化)的英文縮寫,為什么是i18n呢?

internationalization去掉頭尾的i和n剛好還剩下18個字符,漲姿勢了,原來還可以這樣命名

編寫action:

?
1
2
3
4
5
6
7
8
9
import com.opensymphony.xwork2.actionsupport;
 
public class loginaction extends actionsupport{
  private static final long serialversionuid = 8153220869598441387l;
  @override
  public string execute() throws exception {
    return success;
  }
}

這里測試中英文切換,就不做登錄處理了,直接登錄成功。

配置攔截器,在進入action之前進行語言選擇的處理

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class checkinterceptor extends abstractinterceptor{
  private static final long serialversionuid = -1112495747942034188l;
 
  @override
  public string intercept(actioninvocation ai) throws exception {
    actioncontext ac = ai.getinvocationcontext();
    map session = ac.getsession();
    locale locale = (locale)session.get("ww_trans_i18n_locale");
    if(locale==null){
      locale = new locale("zh","cn");
      session.put("ww_trans_i18n_locale",locale);
    }
    return ai.invoke();
  }
 
}

在struts2中,提供了一個i18n的攔截器,這個攔截器在執行action方法之前,自動查找請求中名為request_locale的參數,攔截后轉換為locale對象,放置在用戶session的名為“ww_trans_i18n_locale”的屬性。i18n在程序運行時會被自動加載,我們可以利用這些來設置允許用戶自動選擇網頁的語言。

在struts.xml中配置攔截器和國際化的資源:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8" ?>
<!doctype struts public
  "-//apache software foundation//dtd struts configuration 2.3//en"
  "http://struts.apache.org/dtds/struts-2.3.dtd">
 
<struts>
  <constant name="struts.costom.i18n.resources" value="globalmessages"/>
  <package name="default" extends="struts-default" namespace="/">
    <interceptors>
      <interceptor name="myinter" class="org.locale.action.checkinterceptor"></interceptor>
    </interceptors>
    <action name="login" class="org.locale.action.loginaction">
      <result name="success">/index.jsp</result>
      <interceptor-ref name="defaultstack"></interceptor-ref>
      <interceptor-ref name="myinter"></interceptor-ref>
    </action>
  </package>
</struts>

最后看看運行結果:

選擇語言為中文:

struts2的國際化實現網站整體中英文切換實例代碼

選擇語言為英文:

struts2的國際化實現網站整體中英文切換實例代碼

我們可以看到,已經成功實現了中英文切換,不同語言的切換只需要提供不同國家的語言資源文件即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/weixin_36380516/article/details/72510292

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美视频精品 | 亚洲精品视频在线播放 | 久久中文字幕一区 | av黄色在线看 | 久久美女视频 | 亚洲视频在线看 | 性视屏| 亚洲成人观看 | 黄色99| 毛片免费播放 | 视频一区免费观看 | 精品亚洲永久免费精品 | 亚洲精品片 | 国产精品视频入口 | a级在线免费视频 | 欧美日韩成人 | 在线视频 中文字幕 | 亚洲精品一区久久久久久 | 久久精品国产99精品国产亚洲性色 | 黄色免费观看网站 | 在线亚洲欧美 | 天天摸天天操 | 欧美日一区 | 国内精品久久久久久中文字幕 | 精品一区欧美 | 日韩一级片 | 亚洲 欧美 日韩在线 | 亚洲欧美影院 | 在线观看亚洲精品 | 日本乱轮视频 | 成人av播放 | 久久精品亚洲精品 | 一级毛片免费播放 | 色站综合| 欧美一区二区三区免费观看视频 | 久久精品国产亚洲一区二区三区 | 91久久精品国产91久久 | 国产在线观看高清 | 欧美日韩视频在线观看免费 | 人人爽人人爽人人片av | 亚洲视频欧美视频 |