2013年11月14日木曜日

Grails 2.3.2 + GGTS 3.4 環境でgenerate-allしてできたi18nのlang=jaが,上手く表示できなかったのを対応してみたのでメモ

  • Grails 2.3.3では文字化けしない.

tumblrにも書いたけど,こちらにもメモ.

  • 動機: こちらを参考に作業をしていたら,Grailsのバージョン違いのためか,i18nの関連で文字化けに出会って修正したのでメモ
  • 環境: Grails2.3.2+Eclipse4.3(Workspace内の文字コードはUTF-8)+GGTS3.4
  • 流れ?:
    1. Menu/File/New/Grails Project
      Project Name: GrailsApp
    2. ContextMenu/Grails Tools/Create Domain Class
      name: FileEntry
    3. 編集 'grails-app/domain/grailsapp/FileEntry.groovy'
      参考: ' http://www.ntts.co.jp/publish/column/tec/java_02/index_03.html '
    4. ContextMenu/Grails Tools/Open Grails Command Prompt
      grails > generate-all grailsapp.FileEntry
    5. ContextMenu/Grails Tools/Open Grails Command Prompt
      grails > run-app
  • 結果1: ' http://localhost:8080/GrailsApp/fileEntry/index?lang=jp 'にアクセス→文字化け
    • responseのheaderに'Content-Type : text/html;charset=ISO-8859-1'という指定がでている
  • 対応:
    1. メソッドを一つ追加 'grails-app/controllers/grailsapp/FileEntryController.groovy'
      package grailsapp
      …
      class FileEntryController {
       …
       def beforeInterceptor = {
        response.setCharacterEncoding("UTF-8")
       }
       …
      }
      
  • 結果2: ' http://localhost:8080/GrailsApp/fileEntry/index?lang=jp 'にアクセス→改善
    • responseのheaderに'Content-Type : text/html;charset=UTF-8'で正しい指定になってる
アレコレやってみたが上手くいったのはこれ.
もっと賢い設定があるようにも思う.

0 件のコメント: