<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Struts中文問題的解決方法

    時間:2024-07-24 23:23:29 JAVA認證 我要投稿
    • 相關推薦

    關于Struts中文問題的解決方法

      碰到struts中文問題時,在網上查了很多資料,想必碰到過此類問題的朋友也都查過,也都看到過差不多是同一篇文章。

      但是依法炮制了若干遍,JSP頁面上仍然顯示的是亂碼,無奈,實踐出真知,只好自己一遍一遍的試驗,終于成功了,在windows的weblogic8下,和unix的weblogic8下均正確顯示漢字。

      以下是代碼內容:

      首先是JSP頁面的內容,最簡化的一個form

      TestItem English :

      TestItem Chinese :

      注意,頁面的字符集一定要定義成gb2312,否則顯示不了正確的漢字了,代碼上半部的logic:iterate 標簽是 action 處理完畢后,返回給頁面顯示的。至于form提交的部分,由struts機制去做了,我只把 testitem_config 這個 action 的原代碼給出,大家就看明白了:

      public class TestItemConfigAction extends Action {

      public ActionForward execute(ActionMapping mapping, ActionForm form,

      HttpServletRequest request, HttpServletResponse response)throws Exception {

      TestItemConfigForm pcForm = (TestItemConfigForm)form;

      String[] entryIndexArray = pcForm.getEntrypro();

      String testPartKey;

      ArrayList testPartOptionsEn = new ArrayList();

      ArrayList testPartOptionsCn = new ArrayList();

      ServletContext context = getServlet()。getServletContext();

      String file = context.getRealPath(“/WEB-INF/classes/resource/TestItem.properties”);

      PropertiesFileOperate pOperate = new PropertiesFileOperate(file);

      Properties property = pOperate.getProperties();

      int testpartnum = Integer.parseInt(property.getProperty(“test.item.num”));

      if(pcForm.getOperateFlag() != null && !“”。equals(pcForm.getOperateFlag())) {

      if(Integer.parseInt(pcForm.getOperateFlag()) == 1 &&

      pcForm.getTestItemEn() != null && !“”。equals(pcForm.getTestItemEn())){

      String addKeyEn = “test.item.en.” + (testpartnum + 1);

      String addKeyCn = “test.item.cn.” + (testpartnum + 1);

      String addValueEn = pcForm.getTestItemEn()。trim();

      String addValueCn = pcForm.getTestItemCn()。trim();

      String addValueCnWirite = new String(addValueCn.getBytes(“ISO-8859-1”));

      pOperate.modifyProperties(“test.item.num”, (testpartnum + 1) + “”);

      pOperate.addProperties(addKeyEn, addValueEn);

      pOperate.addProperties(addKeyCn, addValueCnWirite);

      pOperate.saveFile();

      pOperate = null;

      }

      if(Integer.parseInt(pcForm.getOperateFlag()) == 2 &&

      pcForm.getTestItemEn() != null && !“”。equals(pcForm.getTestItemEn())){

      int entryIndex = Integer.parseInt(pcForm.getTestItemIndex()。trim());

      String addKeyEn = “test.item.en.” + entryIndex;

      String addKeyCn = “test.item.cn.” + entryIndex;

      String addValueEn = pcForm.getTestItemEn()。trim();

      String addValueCn = pcForm.getTestItemCn()。trim();

      String addValueCnWirite = new String(addValueCn.getBytes(“ISO-8859-1”));

      pOperate.modifyProperties(addKeyEn, addValueEn);

      pOperate.modifyProperties(addKeyCn, addValueCnWirite);

      pOperate.saveFile();

      pOperate = null;

      }

      if(Integer.parseInt(pcForm.getOperateFlag()) == 3){

      for(int i = 0; i 《 entryIndexArray.length; i++){

      String indexEntry = (entryIndexArray[i]。substring(1, entryIndexArray[i]。indexOf(“,”)))。trim();

      String addKeyEn = “test.item.en.” + indexEntry;

      String addKeyCn = “test.item.cn.” + indexEntry;

      pOperate.modifyProperties(addKeyEn, “”);

      pOperate.modifyProperties(addKeyCn, “”);

      }

      pOperate.saveFile();

      pOperate = null;

      }

      }

      PropertiesFileOperate pOperateShow = new PropertiesFileOperate(file);

      Properties propertyShow = pOperateShow.getProperties();

      int testpartNumber = Integer.parseInt(propertyShow.getProperty(“test.item.num”));

      ArrayList array = new ArrayList();

      for(int i = 1; i 《= testpartNumber; i++){

      ArrayList arr = new ArrayList();

      testPartKey = “test.item.en.”+i;

      if (propertyShow.getProperty(testPartKey) != null &&

      !“”。equals(propertyShow.getProperty(testPartKey))){

      arr.add(i+“”);

      testPartOptionsEn.add(propertyShow.getProperty(testPartKey));

      arr.add(propertyShow.getProperty(testPartKey));

      testPartKey = “test.item.cn.”+i;

      testPartOptionsCn.add(new String(propertyShow.getProperty(testPartKey)。getBytes(),“gb2312”));

      arr.add(propertyShow.getProperty(testPartKey));

      array.add(arr);

      }

      }

      request.setAttribute(“box”,array);

      pcForm.reset(mapping, request);

      return mapping.findForward(“testitemone”);

      }

      }

      這個 action 并不復雜, 首先它定義了一個 properties 文件 TestItem.properties,在web服務器下的/WEB-INF/classes/resource/下面,用來記錄頁面上輸入的內容,由于 String addValueCnWirite = new String(addValueCn.getBytes(“ISO-8859-1”)) 這個語句進行了字符轉換,所以 properties 文件中記錄的內容大概都是這樣子的:

      test.item.cn.29=\u7F1D\u9699\u5F02\u5E38

      如果把程序改成記錄到數據庫中,也應該是這個樣子,屬于Unicode編碼吧。

      而當要把記錄的內容輸出到客戶端時候,new String(propertyShow.getProperty(testPartKey)。getBytes(),“gb2312”)) 這個語句又把Unicode編碼轉換成了GB2312,所以要求JSP頁面charset=gb2312,呵呵,這樣在windows 和 unix兩個系統下都可以正常顯示中文了,絕對沒有問題。

    【Struts中文問題的解決方法】相關文章:

    Struts中文問題怎么解決09-09

    電腦問題及解決方法匯總07-14

    紋眉常見問題及解決方法07-03

    硬件常見問題的解決方法10-15

    聲樂學習常見問題與解決方法08-01

    形體訓練中的問題和解決方法08-20

    網絡連接出問題的解決方法10-23

    CAD里的常見問題及解決方法10-03

    電腦鼠標關機后發光問題的解決方法01-14

    主站蜘蛛池模板: 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 国产欧美在线观看精品一区二区| 91人妻人人澡人人爽人人精品| 亚洲精品福利视频| 久久久精品无码专区不卡| 亚洲一区二区三区在线观看精品中文| 无码人妻精品一区二区三区久久久| 国产精品精品自在线拍| 999精品色在线播放| 午夜三级国产精品理论三级| 亚洲第一极品精品无码久久| 免费91麻豆精品国产自产在线观看| 国产精品综合久久第一页| 亚洲AV第一页国产精品| 国产在线不卡午夜精品2021 | 国产午夜精品一区二区三区漫画 | 91探花国产综合在线精品| 亚洲一日韩欧美中文字幕欧美日韩在线精品一区二 | 国产精品久久久久天天影视| 日韩熟女精品一区二区三区| 精品国产一区二区三区久久久狼 | 国模和精品嫩模私拍视频| 国产精品露脸国语对白| 精品人妻少妇一区二区三区| 97久久久精品综合88久久| 久久99精品国产麻豆婷婷| 91精品国产91久久综合| 欧美日韩专区麻豆精品在线 | 97精品人妻系列无码人妻| 亚洲精品一级无码中文字幕| 88国产精品欧美一区二区三区 | 蜜臀av无码人妻精品| 视频二区国产精品职场同事| 97精品人妻系列无码人妻| 亚洲精品无码专区在线播放| 久久99精品久久久久久噜噜| 91精品国产品国语在线不卡| 久久99精品综合国产首页| 国产麻豆精品一区二区三区v视界| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 四虎永久在线精品884aa下载|