- - PR -
LookupDispatchActionでの日本語使用
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-08-26 12:52
struts1.1にて開発を行っているのですが
あるフォームにボタンを2つ使用いたいためにLookupDispatchActionを 使用することにしました。 <html:submit property="method"> <bean:message key="register"/> </html:submit> にてボタンを指定して<bean:message>のkey属性に application.propertiesファイルに指定したkeyを使うのですが ここのkeyに対応した値にascii文字以外を指定すると Request[/RegisterApp] does not contain handler parameter named method というエラーがでます。 native2ascii化した文字列でも同様にエラーが発生します。 対処方法をご存知の方、ご教示願います。 | ||||
|
投稿日時: 2003-08-26 17:39
エラーの通りです。
struts-config.xmlの<action>要素のparameter属性に"method"が無いよ、とのことです。 <submit property="xxx">と<action parameter="xxx">をあわせる必要があります。 (e.g.)
[修正文] ……と思ったら答えが勘違いでしたね。 keyに日本語とか入れたら…という話ですよね。 やったこと無いので何とも…。 getKeyMethodMapでマッピングする文字をutf-8で記述とか、地道なデバッグが必要そうです。 [ メッセージ編集済み 編集者: Dandan 編集日時 2003-08-26 18:00 ] [ メッセージ編集済み 編集者: Dandan 編集日時 2003-08-26 18:01 ] | ||||
|
投稿日時: 2003-09-01 06:33
私もちょうど同様のエラーで、少し困っています。。
message-resourcesのkeyにasciiのみを指定した際は、正常にフォワー ドできるのですが、native2asciiでUnicode escapeしたものについて はsiggyさんと同様にHTTP応答コード400で以下のようなメッセージが 戻ります。 message Request[/pickupMethod] does not contain handler parameter named action [jsp側] <html:submit property="action"> <bean:message key="button.previous"/> </html:submit> <html:submit property="action"> <bean:message key="button.next"/> </html:submit> view側のjspにはすべてUTF-8で記述しています。 なにか情報をお持ちの方、ご教授ください。 | ||||
|
投稿日時: 2003-09-03 15:46
tomcat4.1 + struts1.1の環境で私も同様の現象に遭遇しました。
そのときはpageディレクティブでの文字コード指定をShift_JISからEUC-JPにしてみたところ、 動作するようになりました。 深く追いかけるつもりはありませんのでナニですが、 問題はたぶんそのあたりにあるのではないかと思います。 | ||||
|
投稿日時: 2003-09-04 14:29
えっと、私の所では特に問題なく使用できています。
で、ソースですがLookupDispatchActionは使用していません。 普通に記述して、propertyと同じsetterがあるDynaValidatorFormを用意して・・・・ とやれば BeanUtils.getProperty(form, "submitボタンのproperty") として取得できます。 ところで、LookupDispatchActionってどう使用するのでしょう? 実は分かってません。^^;
| ||||
|
投稿日時: 2003-10-21 16:16
こんにちは。
おそらくJSPで日本語のボタンを扱う場合は リクエストパラメータとして送信される値も日本語になっていると思います。 つまり受信側のActionServlet側のエンコードを指定してければ 文字化けを起こしてしまう恐れがあるのではないでしょうか。 | ||||
|
投稿日時: 2003-12-13 12:22
1.まず、RequestProcessorのサブクラスをつくって、エンコーディングする処理をいれてコンパイルします
package study; import org.apache.struts.action.RequestProcessor; import javax.servlet.http.*; public class MyRequestProcessor extends RequestProcessor{ public boolean processPreprocess(HttpServletRequest request, HttpServletResponse response){ try{ request.setCharacterEncoding("Shift_JIS"); }catch(Exception e){ System.err.println("MyRequestProcessor#processPreprocess:" + " fail to setCharacterEncoding"); } return true; } } 2.struts-config.xmlに作ったクラスを使用する設定をいれます <controller processorClass="study.MyRequestProcessor" /> 3.さーばのリスタートをすればトラブル解消です | ||||
|
投稿日時: 2005-08-12 10:31
おはようございます。
先日から、悩んでいるので、以下のとおりにやってみたのですが、<controller processorClass="study.MyRequestProcessor" /> のように、struts-configに新しく作ったり、既存のものと交換するとactionが実行できないというエラーが出ます。どうしたらいいでしょうか? 試せる手は尽くしたのですが。。。。 よろしくお願いします。 |