Struts1.2.4のValidateのサンプルですが、日本語も表示されて(Japaneseをクリックしてくださいね)、データ型チェックフォームでも、日付は日本の標準書式yyyy/mm/ddでチェックされるのだけれど.....(すばらしいっ!!)
ただ...肝心の日本語の入力が駄目なんです(泣)。
#たとえば名前欄に「めぐ」と入力すると一発でノックアウトです~。
まだ、素のままじゃ使えないかな?
どこかでエンコーディングを指定してあげて、正しくユニコード化してあげないと駄目かな。
あと、Struts1.2.2 and Tomcat5.5.0 上で発生していた、
>jspで余計なパッケージのimport文があると、
>「生成されたサーブレットのエラーです:
>The import java.sql is never used」 ←(例)
>なぁんてエラーになってしまいます。
という件については、Tomcat5.5.2になってから治っているようです。
投稿者 megu : 2004年09月27日 12:29
コメント
Tomcat 5.5 付属のservlet-samplesのfilterを使うと日本語が正しく入力できます。
場所: $CATALINA_HOME/webapps/servlet-samples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java.
web.xmlの設定も参照してください。
投稿者 Hiro : 2005年02月27日 20:59
Hiroさん、はじめまして。
どうもありがとうございます。
Strutsのサンプル、日本語バージョンはそのままでは動かないんですね?
(環境にもよるのでしょうか。Tomcat5.5やTigerのせいではなくて。)
registration.jspは
<%@ page contentType="text/html;charset=UTF-8" %>
になっていて....
リソースファイルは見つけました。unicodeで記述されていました。
web.xmlには下記のように追加しました。
(servlet_samplesのweb.xmlを参考にしたのですが。)
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<filter-mapping>
<filter-name>EncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
classファイルはservlet_samplesからコピーしてきて....
現在その状態です。
(TOMCATはshutdown→startupしました。)
エラーは出ていないのですが、入力時の文字コード変換はなされません。
きっと私が悪いのだけれど。どこか何か足りないのでしょうね。
もしかして、RegistrationForm.javaのgetterに仕込まなければならないということはないですよね?
Web検索で下記サイトをみつけました。
#Windows、Tomcat5.0、J2SE1.4ですが、うまくいってるんですね。
http://www.javaroad.jp/opensource/js_struts10.htm
投稿者 megu
: 2005年02月27日 23:49
投稿文を拝見する限り、web.xmlの記述がおかしいですね。 私の場合は次のとおりです。改行が入力されないので数珠つなぎです。
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
私の場合はFedoraCore3で、すべての文字セット設定がUTF-8にしてあります。filterの追加以外何もしなくて日本語入力OKです。
投稿者 Hiro : 2005年03月01日 00:51
投稿を送信した後ブラウザで確認したらちゃんと改行されていますね。確認ボタンで表示するフォーマットがおかしいですね。
投稿者 Hiro : 2005年03月01日 01:07
Hiroさん、ご迷惑をおかけしてすみません。
(こんなに親切にしていただいていいのでしょうか?ありがとうございます。)
プレビューで改行が出力されない件、MovableTypeに手を加えていないので。
(これもきっと私のコンフィグが悪いのだとは思うのですが。)
アップグレードしたら治ると思います。
web.xmlの内容は、コメントを投稿する際に一部おとしてしまったようです。(もう、ドジの上塗りで申し訳ないのですが)
filter-mappingをfilterの中に入れてしまったのは、間違いですね。
今、修正しているところです。
なにかエラーが出てしまったようなので、ひっかかってくれたようです。今まで、 filter-mappingが効いていなかったんでしょうね、きっと。
投稿者 megu
: 2005年03月01日 01:23
それから...
Fedora Core1はeucで利用しています。
どうもeucからさよならできなくて。
今度、サーバを入れ替える予定なので、そのときOSをどうしようか迷っています。(っというのは別の話題ですね。)
投稿者 megu
: 2005年03月01日 01:25
Hiroさん、エラーの内容がわかりました。
filter-nameが間違っていました。
まったく、あわてて作業しているのがわかりますね(汗)
今の状態で入力された日本語が正しく表示されるようになったわけではないのですが、よく見かける「??」と表示されるようになりました。
(正しいunicodeに変換できない理由がなにかあったのかも。)
今まではなにんがなんだかわからない化け文字が表示されていたので、少し状況が変わったようです。
日本語は難しいです。
今回、filterというのを教えていただいて、よかったです。
これから役に立つことがあるといいナと思います。
そうそう、MS932の変換などはうまくいくのかしら??
やっぱり手作業でなにか仕込まなければ駄目ですか。
あっでもUTF-8一本槍でいっていれば問題はないのかも。
(もとから機種依存文字は入力できない、、、と思うので。これは間違いかしら?)
今夜はおそいので、またゆっくり考えてみたいと思います。
投稿者 megu
: 2005年03月01日 01:39
