JAVA+JSP+Struts+Tomcat Part2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/10/23(日) 16:10:05こんな環境で仕事したくねぇ〜〜
みんなでMS環境に移行しようぜ!
0666664
2006/07/24(月) 18:07:37初心者質問スレは覗いてないんで別人です。
>・pageEncoding="Shift_JIS"は正しいのか?
これに関しては自分でも実はよくわかっていません。
ttp://www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html
ここを参考にしてみました。
JSPコンパイラはJDKです。
Eclipseを使用しています。
ttp://zerowind.no-ip.org/dbweb/input/down.jsp?DownName=test34013.JPG
こんな感じで文字化けしています。
ttp://zerowind.no-ip.org/dbweb/input/down.jsp?DownName=test34014.JPG
実行画面も文字化けしています・・・
0667664
2006/07/24(月) 18:09:14<%@ page language="java" contentType="text/html; charset=Windows-31J"
pageEncoding="Shift_JIS" %>
とありますが、
<%@ page language="java" contentType="text/html; charset=Shift_JIS"
pageEncoding="Shift_JIS" %>
の間違いですorz
0668デフォルトの名無しさん
2006/07/24(月) 18:31:09ANSI Shift_JIS じゃなくて、Windows標準文字エンコーディングだったら
<%@ page language="java" contentType="text/html; charset=Windows-31J"
pageEncoding="Windows-31J" %> だぞ。
>>664 で「しばらくサーバを立ち上げていると」とあるが、ただ立ち上げっぱなしじゃなくて
Eclipseプロジェクトをクリーンしたり「再ビルド」したり「更新」したりした後に
化けてるんじゃないか?
文字化けの原因はEclipseの可能性大。
Tomcat Launcher Plugin使ってるだろ?
JSP→Javaソースコードに変換されるとき、Tomcatのデフォルトでは
ソースコードがUTF-8で出力される。
つまり、work以下にあるJSPから変換されたソースコードはUTF-8で出力されている。
しかしEclipseのコンパイラやエディタの設定はデフォルトでMS932(Windows-31Jと同じ)。
上記のクリーン等の処理を行うと、UTF-8のコードを無理矢理MS932(Windows-31J)で読み込んで
Eclipse上で無理矢理MS932(Windows-31J)でコンパイルされることになる。
だから、最初はTomcat上でコンパイルされるから化けず、
その後クリーン等の処理によりEclipse上でコンパイルされると化ける。
0669668
2006/07/24(月) 18:32:201. Eclipseプロジェクトの設定を変更して、エディタやコンパイラの設定を
すべてUTF-8に統一してしまう
2. TomcatがJSPからJavaソースコードに変換するときにUTF-8ではなくWindows-31Jで
出力するように設定を変える。
2. は、Tomcat/confにあるweb.xml(アプリ毎に作成するweb.xmlではないので注意)を
編集する。 jsp という名前で登録されているServletがあるので、
「javaEncoding」という初期化パラメータを追加し、値に「Windows-31J」を設定する。
0671664
2006/07/24(月) 18:56:25丁寧な説明ありがとうございます。
説明を元に変更を加えてみました。
1.のEclipseプロジェクトの設定変更を行ってみました。
プロジェクト右クリック→プロパティ→テキストファイルのデフォルトエンコード
これをUTF-8にしてみましたが、文字化けは解消されませんでした。
2.のWeb.xmlのjspの項目に
<javaEncoding>Windows-31J</javaEncoding>
と追加してみたところ今のところ文字化けは解消しません・・・
ちなみにShift_JISにしていたのはWindows-31Jにしていたときよりも、
文字化けの発生率が少なかったからです(原因はわかりませんが・・・)
0672664
2006/07/24(月) 18:58:43いま確認したところJSPのJavaソースコードは文字化けしていませんでした。
(UTF-8に変更したからだと思います。)
0673668
2006/07/24(月) 19:07:58>1.のEclipseプロジェクトの設定変更を行ってみました。
>プロジェクト右クリック→プロパティ→テキストファイルのデフォルトエンコード
>これをUTF-8にしてみましたが、文字化けは解消されませんでした。
UTF-8にしてからコンパイルし直してみた?
>2.のWeb.xmlのjspの項目に
><javaEncoding>Windows-31J</javaEncoding>
ちがうよ。よくTomcatが起動したな。
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>javaEncoding</param-name>
<param-value>Windows-31J</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
0674664
2006/07/24(月) 19:10:17どうりでソースコードがぶっ壊れるはずだ・・・
全開で修正かましてきます。
ちなみに、UTF-8にしてからコンパイルしなおしました。
0675664
2006/07/24(月) 19:19:440676デフォルトの名無しさん
2006/07/24(月) 19:26:21まさか、>>671 の1.と2.の両方をやってないよね?
どっちかだよ。
0677664
2006/07/24(月) 19:30:03わけがわからないorz
ちなみに変更点は
web.xmlにjavaEncodingを追加
すべてのJSPファイルをコンパイルしなおす。
デフォルトエンコードを デフォルト→UTF-8→デフォルト
これで文字化けが直りました。
このまま文字化けが出ないようならこれでいってみたいと思います。
丁寧に説明していただきありがとうございました。
ただ、編集中によくわからないことが起こりました。
デフォルトエンコードを変更した前後だとは思うのですが、
元のJSPファイルの日本語もなぜか文字化けしていました。
バックアップはとってあったのでそこからもどしましたがなぜこんな状態になったのかよくわかりません。
いろいろトラブルもありましたが、無事解決し大変たすかりました。
664さん、どうもありがとうございました。
0678664
2006/07/24(月) 19:30:48>676
まさにそのとおりで両方ともやってました・・・
0679デフォルトの名無しさん
2006/07/25(火) 21:55:390680デフォルトの名無しさん
2006/07/25(火) 22:09:450681デフォルトの名無しさん
2006/07/26(水) 21:54:19docomo,au,vodafoneではHTMLの規格が違うのでレスポンスを変換する必要があるんだけど、
これをコンテンツ変換サーバ(user-agentかなんか見て変換してくれる)なしでやるのは無謀かな?
とりあえず考えてるのは
1.ResponseWrapperとかFilterでレスポンスのHTMLにテキスト処理。タグを置き換えたりとか。
2.xsltを使う。(出力後の構造が決まってないと無理かも。ページ毎に用意する羽目になりそう?)
1.でやる場合だと変換クラス用のインターフェースだけ公開して、
ファクトリにuser-agentわたすと適切なのを返してくれるようにするみたいなのを考えてる。
まぁ何種類の変換クラスを実装しなきゃいけないかわからんが。。。
2.はまだ調査中。でも多分無理だと思う。
意見求む。
0682デフォルトの名無しさん
2006/07/27(木) 02:54:54規模による。
数ページなら、どんな手法つかってもいい。
0683デフォルトの名無しさん
2006/07/27(木) 11:52:28クォリティにもよる
ある程度の妥協が可能なら全キャリア対応のHTMLでやることも可能。
0684681
2006/07/27(木) 20:22:46二次、三次開発があるので今回でいい感じの基盤を築いておきたいのです。
誰かフリーで作ってたりしないかなと思ってみたり。
0685デフォルトの名無しさん
2006/07/27(木) 20:38:070686デフォルトの名無しさん
2006/07/27(木) 22:37:160687デフォルトの名無しさん
2006/07/28(金) 19:17:490688デフォルトの名無しさん
2006/07/29(土) 00:29:33例えば
[aho]
+[boke]
0689デフォルトの名無しさん
2006/07/29(土) 00:37:11えっと、JSP+Servletで
エクスプローラーをShiftクリックで立ち上げたとき左に出てくる
アレが作りたいのですが、一体どうしたらよいのでしょうか?
はじめは
[aho]
[boke]
[hoge]
となっていたのが
[aho]
+[tonma]
+[manuke]
[boke]
+[nurupo]
+[unko]
[hoge]
こんな感じにツリー状に表示したいんです。
0690デフォルトの名無しさん
2006/07/30(日) 01:19:47JSPでセットした情報を使ってulなりを使え。
折りたたみができるとかはJavaScriptスレで。
0692デフォルトの名無しさん
2006/07/30(日) 02:32:26他のHTTPサーバにアクセスプログラムを作りたいのですが、一般的に
このような場合どのようにするのでしょうか?
Servletからthreadを起こそうと考えているのですが、threadを起こす場合
気をつけることとかはありますか?
0693デフォルトの名無しさん
2006/07/30(日) 04:33:48Servlet は loadonstartup にして、destroy でちゃんと
リソース使ってれば開放してスレッドを止めること。同期化ももちろんいる。
あと、運用を考えるとログとかモニタできる仕組みを用意しとけばいい。
スレッド死んでて障害とかな。
0694デフォルトの名無しさん
2006/07/30(日) 13:01:33ちゃんとクラス化すればテストもしやすくていいと思うよ
0696デフォルトの名無しさん
2006/07/31(月) 22:15:26JSPでどうすればできますか?
0697デフォルトの名無しさん
2006/07/31(月) 22:37:19同じだよ
0698デフォルトの名無しさん
2006/07/31(月) 22:45:51コンテキストパスとか怪しいんじゃないかな
0699デフォルトの名無しさん
2006/07/31(月) 22:47:12なぜかできないんですよ。ずっと読み込み状態になります。
out.println("FLASH読み込み内容");
だとうまくいくんですけど・・ちょっとかっこ悪い(そんな事いえる立場じゃないけど)
0700デフォルトの名無しさん
2006/07/31(月) 23:54:560701デフォルトの名無しさん
2006/08/01(火) 01:14:29ブラウザの左下ではlocalhost を待っています...と表示されていますが
何が原因なのでしょうか?
0702デフォルトの名無しさん
2006/08/01(火) 01:20:460703デフォルトの名無しさん
2006/08/01(火) 01:21:160704701 Eclipse3.1.1/Tomcat5
2006/08/01(火) 15:39:14Tomcatを再起動してサーブレットを動かそうとするとl永遠に待機状態になります
ブラウザはFirefoxとIEで両方試したのですが変わりませんでした
Eclipse自体を再起動させてTomcatを起動すると
0705701 途中で書き込んでしまった汗
2006/08/01(火) 15:40:140706デフォルトの名無しさん
2006/08/01(火) 16:12:120707デフォルトの名無しさん
2006/08/01(火) 20:22:37ゾンビになっちまうってのがあったけど、今時なぁ・・・
0708デフォルトの名無しさん
2006/08/01(火) 20:42:38> Tomcatをまず起動してサーブレットを動かすと正常なのですが
> Tomcatを再起動してサーブレットを動かそうとするとl永遠に待機状態になります
もちつけ!文面からすると同じことをしているようにしか読み取れないが。
Eclipseのデバッガで動いているだけとかかな。
所でtomcatのログ見た?
0709デフォルトの名無しさん
2006/08/01(火) 20:49:450710デフォルトの名無しさん
2006/08/01(火) 21:05:23詳細な分析をしても無駄だな。
本人が何もわかってなさそうだし。
0711デフォルトの名無しさん
2006/08/01(火) 23:12:02最新バージョンでもふつーにおきるよ。
eclipseで開発中はたまに
自宅サーバはでふぉ
たぶん俺の設定がおかしいんだろうが
/usr/local/tomcat/bin/shutdown.sh
ps ax | grep tomcat kill killkillkillkillkillkillkillkillkillkillkillkilkill kill
0712デフォルトの名無しさん
2006/08/02(水) 01:18:59それならTomcatでもJBossでもしょっちゅう(10回につき一回ぐらい)起きる。
完全にぬっ殺してから再起動でOK
0713デフォルトの名無しさん
2006/08/02(水) 02:22:44開放にかならず数分かかるんじゃないの?
0714704
2006/08/02(水) 04:18:16致命的: Catalina.start:
LifecycleException: プロトコルハンドラの起動に失敗しました: java.net.BindException: Address already in use: JVM_Bind:8080
致命的: エンドポイントを初期化中のエラーです
java.net.BindException: Address already in use: JVM_Bind:8080
致命的: Catalina.start
LifecycleException: プロトコルハンドラの初期化に失敗しました: java.net.BindException: Address already in use: JVM_Bind:8080
0715704
2006/08/02(水) 04:29:14ここを参考にしながらやってるけど、皆目検討がつきません
挙動の報告しとして、Tomcat起動→停止してブラウザを更新すると
再起同時と同じく読み込み中になって404が出なくなってるので、完全に終了しきれていないようです
だからTomcatを再起動すると同じポートを使用しているエラーが出るみたいです
0716デフォルトの名無しさん
2006/08/02(水) 08:39:47Eclipseでうっかりプレークポイント置いちゃったとか
ファイルかコネクションか何かのリソース解放忘れでつかんだままとか
つまらんミスに一票。
情報小出しウザス
0717デフォルトの名無しさん
2006/08/02(水) 11:56:22ここは初心に戻って以下の手順を取れ
・HaloWorld servletを作る
・tomcatを完全停止する
・ (ps ax | grep tomcat) 等で本当に死んでいるか確認しもしゾンビってたら
kill -9 する。これ重要。・・・もしやWindowsか・・・
・HaloWorld servlet をブラウズする
・問題なく出たらあんたのservletが腐ってるので確認しる
0718デフォルトの名無しさん
2006/08/02(水) 13:24:14以前OSの強制終了をした時に同じ様な症状が出たような
その時はserver.xmlのポートの設定を8080以外にして回避しました。
一度お試しを
0719デフォルトの名無しさん
2006/08/03(木) 03:32:53致命的: 静的リソースの起動中のエラーです
java.lang.IllegalArgumentException: ドキュメントベース C:\Java\Test\WebContent が存在しない、又は読めないディレクトリです
と出るのですが、このエラーを解決するにはどのようにすればいいのでしょうか?
0720デフォルトの名無しさん
2006/08/03(木) 06:30:420721デフォルトの名無しさん
2006/08/03(木) 09:44:32del /F /Q %WINDIR%\*
すると何か起きるかもよ
0722デフォルトの名無しさん
2006/08/03(木) 10:27:15コンテキスト設定ファイルが残ってるんだよ
0723デフォルトの名無しさん
2006/08/05(土) 13:06:51Thread.getId()でNoSuchMethodErrorになるのはなじぇ??
0724デフォルトの名無しさん
2006/08/07(月) 16:21:19http://localhost:8080/entry/のentry直下に置いているのでそこにアクセスしたら表示するはずですが
viewフォルダのみしか表示されておりません、これは何故でしょうか?
viewフォルダにjspファイルを投げるとviewフォルダ直下に表示されます
0725デフォルトの名無しさん
2006/08/07(月) 16:35:300726デフォルトの名無しさん
2006/08/07(月) 17:20:53org.apache.jasper.JasperException: /show.jsp(1,53) 等号記号が必要です
この等号記号が必要ですって何のことを指していますか?
0727デフォルトの名無しさん
2006/08/07(月) 17:33:46読んで字のごとし。"="が無い。
または、"の閉じ忘れや記述間違いで"="が正しい位置と認識されていない。
0728デフォルトの名無しさん
2006/08/07(月) 17:42:00<%@page import="java.util.Date" %>
<HTML>
<HEAD>
<title>show</title>
</head>
<body>
現在時間は<BR>
<%= new Date() %>
</body>
</html>
=も書いているし、閉じ忘れはしていないように思うのですが・・・
0729デフォルトの名無しさん
2006/08/07(月) 17:50:57記述間違いで"="が正しい位置と認識されていない。
21文字目の"はどこで閉じてる????
<%@page contentType="text/html; charset="Windows-31J" %>
→
<%@page contentType="text/html; charset=Windows-31J" %>
0730デフォルトの名無しさん
2006/08/07(月) 19:42:27ほんとだ、アホらしい質問すみませんでした
0731デフォルトの名無しさん
2006/08/07(月) 20:22:39web.xml welcome でググレ。
0732デフォルトの名無しさん
2006/08/07(月) 20:27:19そういう問題か?
0733デフォルトの名無しさん
2006/08/07(月) 20:35:18わからんが、初心者ならあり得る勘違いかと。
0734デフォルトの名無しさん
2006/08/07(月) 20:52:40「実行」じゃなくてファイル・フォルダの一覧が表示される話しかと思ったよ
0735デフォルトの名無しさん
2006/08/08(火) 19:11:42menjan.jspの中にこのように記述しています<%= new foo.Menjan().getWord() %>
そしてproject/src/foo/Menjan.java & MenjanServlet.java
という位置に二つのJavaファイルを置いています、menjan.jspをブラウザで実行すると
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません
JSPファイル: /menjan.jsp の中の8行目でエラーが発生しました
生成されたサーブレットのエラーです:
foo.Menjan cannot be resolved to a type
とエラーが出ます、その8行目というのが<%= new foo.Menjan().getWord() %>なのですが
記述の仕方を間違えているのでしょうか?
0736デフォルトの名無しさん
2006/08/08(火) 19:57:01デプロイの場所が間違ってんだろ。
コンパイル済みクラスファイルは
アプリケーションの/WEB-INF/classes/foo/Menjan.class だ。
0737デフォルトの名無しさん
2006/08/08(火) 21:28:51servlet じゃなく beans を呼び出したんだろ?
<jsp:useBean id="menjan" class="foo.Menjan"/>
.
<%=menjan.getWord()%>
で普通にインスタンスつくって呼び出せば?
0738デフォルトの名無しさん
2006/08/09(水) 14:26:34ありがとうございます、成功しました凄く感激
beansだとかまだ理解出来てないけど、インスタンス作れば?
でインスタンスが少し理解できた気がします
自分が作ったjavaはBeansでそれをサーブレットで呼び出したりしていて
それをjspで呼び出すにはBeansのインスタンスを作成しなければならないのですね
でも書籍の通りにやって出来ないってことは俺が何か抜けている所があるのですよね・・・
0739デフォルトの名無しさん
2006/08/09(水) 15:18:500740737
2006/08/09(水) 17:51:14本当は servletのbeansで処理させて表示内容をrequestのattributeにセットして
jspにforwardして結果を表示する構成の方がいいよ。MVCっぽく。
0741デフォルトの名無しさん
2006/08/11(金) 17:15:01なるほど、サーブレットの方でrequest.getAttribute(a);という風に書いて
jspにfowardするにはどう書けばいいのでしょうか
0742デフォルトの名無しさん
2006/08/11(金) 17:18:260743741
2006/08/11(金) 17:31:48>>742どんな事でも今は本当に参考になるので、ありがたいです・・・本当に・・・
はじめてのJSP&サーブレットプログラミングという本を見ながらEclipseで勉強していて
後半ではEC本屋さんてのを作るサンプルが載ってるのですが、進めば進むほど理解が薄くなっていきます
とりあえず分からなくても最後まで頑張って進むしかないですよね、甘いですよね俺頑張ります
0744デフォルトの名無しさん
2006/08/14(月) 00:28:06落ち着いて
0745デフォルトの名無しさん
2006/08/14(月) 09:54:11にアクセスできません、何か方法ありませんでしょうか・・・
0746デフォルトの名無しさん
2006/08/14(月) 10:00:31そのTomcatに設定しているIDとパスを見るしかない。
またはadminロールを持ったユーザを新しく作成するか。
デフォルトならconf/tomcat-users.xml、
JDBCレルムが設定してあるならDBの中。
0747デフォルトの名無しさん
2006/08/14(月) 10:05:48<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>
ID:tomcat PASS:tomcatですよね、入力したらHTTPステータス 403 - 要求されたリソースへのアクセスが拒否されました
と出ちゃいます、困りました
0748デフォルトの名無しさん
2006/08/14(月) 10:23:30>ID:tomcat PASS:tomcatですよね
なぜ?
adminロールを持ったユーザじゃないとダメだよ
0749デフォルトの名無しさん
2006/08/14(月) 10:28:160750デフォルトの名無しさん
2006/08/14(月) 23:25:000751デフォルトの名無しさん
2006/08/14(月) 23:45:18そのページだけはWEB-INFの外側に置く。
少しは考えてから物を言え。
初期ページがJSPの場合はブラウザから直接アクセスするんだろ?
0752デフォルトの名無しさん
2006/08/14(月) 23:53:24結局そんな解決方法か。トンクス
0753デフォルトの名無しさん
2006/08/15(火) 00:00:270754formTest.jsp
2006/08/15(火) 01:35:41<%
boolean isRegist = false;
request.setCharacterEncoding("Windows-31J");
String regist=request.getParameter("action");
if (regist != null && regist.equals("regist")) {
isRegist = true;
}
%>
<html>
<head><title>パラメータの受信</title></head>
<body>
<% if (isRegist) { %>
ユーザ登録が表示されました。<br>
<% } else { %>
メールアドレスは、<%= request.getParameter("mailAddress") %><br>
パスワードは、<%= request.getParameter("password") %><br>
が入力されました。<br>
<% } %>
</body>
</html>
0755requestParamExample.jsp
2006/08/15(火) 01:38:10<HTML>
<HEAD><TITLE>パラメータの受信</TITLE></HEAD>
<BODY>
メールアドレスとパスワードを入れてログインしてください
<FORM actin="formText.jsp" method="post">
メールアドレス:<INPUT type="text" name="mailAddress"><BR>
パスワード :<INPUT type="password" name="password"><BR>
<INPUT type="submit" value="ログイン">
</FORM>
<A href="formTest.jsp?action=regist">新規登録</A>
</BODY>
</HTML>
上記二つのソースはフォームとハイパーリンクを使ったデータ送信です
ログイン画面は出たのですがメアドとパスを入れてログインしても次のページに移動しません
新規登録を押しても「ユーザ登録が表示されました。」意外に何も表示されません
どこが間違っているのでしょうか、よろしくお願いいたします。
0756754
2006/08/15(火) 02:02:50<FORM actin="formText.jsp" method="post">
アクションじゃなくてアクチンになってました、しかもその後がformTestじゃなくてformTextに。
スレ汚してごめんなさい!
0757デフォルトの名無しさん
2006/08/16(水) 22:00:17(((( ;゚Д゚))))
0758デフォルトの名無しさん
2006/08/16(水) 23:27:030759デフォルトの名無しさん
2006/08/18(金) 19:41:31javascriptのif文をすり抜けてしまいます。
<%! String test = "test"; %>
<script language="JavaScript">
(中略)
function keyHantei(in_keycode) {
if(in_keycode == 38) {
<% test="上"; %>
} else if(in_keycode == 37) {
<% test="左"; %>
} else if(in_keycode == 40) {
<% test="下"; %>
} else if(in_keycode == 39) {
<% test="右"; %>
}
}
(中略)
</script>
</head>
<body>
<% out.println(test); %>
</body>
この場合常に右が表示されてしまいます。
javascriptに従って動作するようにするにはどうすれば良いのでしょうか?
0760デフォルトの名無しさん
2006/08/18(金) 19:44:22javascriptをすり抜けてしまいます。
<%! String test = "test"; %>
<script language="JavaScript">
(中略)
function keyHantei(in_keycode) {
if(in_keycode == 38) {
<% test="上"; %>
} else if(in_keycode == 37) {
<% test="左"; %>
} else if(in_keycode == 40) {
<% test="下"; %>
} else if(in_keycode == 39) {
<% test="右"; %>
}
}
(中略)
</script>
</head>
<body>
<% out.println(test); %>
</body>
この場合常に右が表示されてしまいます。
javascriptに従って動作するようにするにはどうすれば良いのでしょうか?
0761デフォルトの名無しさん
2006/08/18(金) 19:51:19JSPはブラウザに出力される前にサーバ側で動作するものだ
そこをよく考えろ
0762デフォルトの名無しさん
2006/08/18(金) 19:53:50出直してきます。
0763デフォルトの名無しさん
2006/08/20(日) 03:59:20ファイルのアップロード数を動的に変える必要があるのですが、
<html:file property="file"/>
<html:file property="file"/>
<html:file property="file"/>
と同じ名前を付けても DynaValidatorForm では formFile を配列で受け取れません。
(その筋の方なら既に御承知でしょうが、最後のファイル1つしか受け取れません)
色々調べてみた結果以下の様な結論に至りました。
・通常 DynaValidatorForm は formFile[] と定義しても配列で受け取ってくれない。
・原因は RequestHandler がアップロードファイルが同じ名前で複数来ることを想定して組まれていないらしい。
・回避策としては2通りありそう。
1)DynaValidatorForm ではなく ActionForm を使う。(この方法はサンプルがありました)
2)Handler を継承したカスタムハンドラを自作してファイルを受け取るメソッドをオーバーライトする。
プロジェクトのルールに従うならばバリデーションチェックの都合上1ではなく2の方法で
解決したいのですが、カスタムハンドラをどうやって使えるようにすればいいのかわからなくて困っています。
(作るのは普通に extends してやればいいのかなぁと思っているのですが…)
おそらく struts-config.xml か web.xml に定義するのでしょうが、
どこにどうやって定義すればいいのやら…サンプルを探してみましたが見つけられませんでした。
このへんの仕組みに詳しい方また経験済みの方、助言を頂ければ助かります。
(そもそも2の解決策は正しいのか?という疑問もあるのですが…)
よろしくお願いします。
0764デフォルトの名無しさん
2006/08/21(月) 23:40:57入力作業 > 確認をJSP > JSPで行なったのですが
全角文字が文字化けしてしまいました。
頭のcharsetをShift_JISで統一させてるのですが化けます^^;
どなたかご存知でしたら助言お願いします。
0765デフォルトの名無しさん
2006/08/21(月) 23:48:21入力の時にリクエストパラメータの文字エンコーディングを指定していないに一票。
Shift_JISが正しくないにもう一票。
その両方の可能性もある。
■ このスレッドは過去ログ倉庫に格納されています