トップページphp
982コメント329KB

フレームワークStrutsをいじくり倒す人の為のスレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/04/28 08:14ID:Ub0n1fGR
 流行っているのか、流行っていないのか謎の Struts を語るスレです。
http://www.ingrid.org/jajakarta/struts/
http://jakarta.apache.org/struts/
00201303/04/29 18:05ID:6c9ghD2c
>>19
エディタで書けないもののほうが、あとあと困る気がするが。
専用タグが面倒なことは否定しないが、専用タグ使わないと MVC にならない。
0021nobodyさん03/04/29 18:55ID:???
>>20 確かにそーなんだろーけど、最初はツールで、あとで調整したい人はエディタでタグを、てなアプローチがいいんでは。最初からタグをエディタで書くというのは大変な労力じゃなかろうかと。そこらへんを便利にしてくれるツールはないの?
00221303/04/29 19:55ID:6c9ghD2c
>>21
ずっと最初からエディタで書いているから、ビジュアルな環境自体は不要なデベロッパーが多いと思われ。
それにデザイナーから出てきた HTML を書き換えていく事が多いから、便利ツールがあっても余り役に立たない気がするが?
もっとも、Struts はフレームワークであってツールで無いので、誰かがStruts 用ツールを書いてくれても問題ない。
0023nobodyさん03/04/30 00:26ID:7R70iZIR
>>21
IBMのWSADとかいうIDEがそのへんを面倒見てくれるはず。
0024あぼーんNGNG
あぼーん
00251303/04/30 06:35ID:/Snk6liy
Struts のタグの要素(例:onClick="")に動的な文字列を入れる場合、
onclick='return func(<%=Sample.getID()%>);' はだめだけど、
onclick='<%="return func(" + Sample.getID() + ");"%>);' は実行されるね。
デザインとコンテンツ分離していないな・・・しかし。
0026nobodyさん03/04/30 10:55ID:sH+8Jb43
>>25
>onclick='return func(<%=Sample.getID()%>);' はだめだけど、

なぜ動かないかが謎
00271303/05/01 13:43ID:1itvb5PA
>>26
Struts1.02 Tomcat4.06 J2SE1.41_02 での動作。
単に Struts タグのパースが甘いのではないかと思われ。
0028nobodyさん03/05/02 00:09ID:???
>>25-27
っていうかそれ JSP 拡張タグライブラリの仕様
00291303/05/02 04:03ID:CDnP+fh3
>>28
 知らんかった・・・逝ってきます。
0030あぼーんNGNG
あぼーん
0031nobodyさん03/05/02 11:45ID:U4GCg6UJ
4月からStruts勉強し始めました。
DBの抽象化、フォーム項目検査の共通化は似たようなことを自分でやっていたので、見つけたときはちょっと欝入りました(^^;

っつーことで、「フォームから送信された時にアクションBeanをマップして〜」というのは結構サンプルがWebや本にもある
のですが、他のWebなんかからクエリー文字列で送られてきたパラメータの解釈なんてーのはどうやるのでしょう?
これは多分どこかに答えがあると思うのですが、検索できませんでした(T_T)
多分、受け取るだけならbean:parameter でいいんでしょうが、その後のValidatチェックとかはどうすれば? というコトです。
やっぱり、Bean作ってプロパティに入れて、チェックは自分でシコシコと、なんでしょうか? 出来ればValidatorを使いたいの
ですが……。

あと、logic:iterate で、抽出条件などの初期値をbeanに指定するにはどうすればいいのでしょうか?
ワタシ的には

コレクションを含むBeanを定義。プロパティに抽出条件、抽出実行メソッドを定義
 ↓
JSP内でBean作成。プロパティに抽出条件をセット
 ↓
JSP内で抽出実行メソッドを実行
 ↓
logic:iterate にBeanとコレクションを設定。

……で、いいかなぁ、と思っているのですが「JSP内にスクリプト書いちゃっていいのかなぁ? それともタグライブラリで
出来るのか?」と思い、まだ試していません。多分、これもどこかに答えがある(絶対みんな使うはずだ(^^;))と思うのですが、
これもまだ検索できていません。

以上、「このページを見ろ!」だけでも教えていただけると助かります。よろしくお願いします。
0032nobodyさん03/05/02 13:04ID:NXr20aw7
>>31
Struts使うんなら基本的にJSPには直接アクセスさせないで、必ずActionを経由
するようにしないと、あちこち破綻しまっせ。
00333103/05/02 13:21ID:U4GCg6UJ
>>32

>Struts使うんなら基本的にJSPには直接アクセスさせないで、必ずActionを経由
>するようにしないと、あちこち破綻しまっせ。

他のWebや本でもそう書いてありますね。ということはやはりbeanタグを使うのでしょうか?
そのあたり、どこかに書いてないモノでしょうかねぇ( ´∀`)
※探してるけどやっぱり検索できない(T_T)
0034nobodyさん03/05/02 13:55ID:L5fY5Do4
なんか言ってることがトンチンカンなんだが、ちゃんと勉強してる?
ちなみにバージョンは?
00353103/05/02 14:41ID:U4GCg6UJ
>>34
すみません。多分「ちゃんと」は勉強してません。本とWebの拾い読みです(拝)
バージョンは1.1を使おうと思っています。
0036nobodyさん03/05/02 15:53ID:L5fY5Do4
1.1なら、xmlだね。
00373103/05/02 16:21ID:U4GCg6UJ
>>36

も、もう少し詳しく(^^;
0038あぼーんNGNG
あぼーん
0039nobodyさん03/05/02 23:45ID:CDnP+fh3
>>31
 GETのオプションも ActionForm の中に入ると思った。
 Action に飛ばすのが推奨だけど。
0040あぼーんNGNG
あぼーん
00413103/05/03 03:10ID:4TfEEb3W
>>39
えと、ごめんなさい。誤解があればご指摘を。

……それは、「hogehoge.do?hanya=1」という風にURLで呼び出す、ということでしょうか?
で、表示に必要な情報はBeanに入れてセッションで保持して次のページで表示、ということでしょうか?

うーん、自分で書いてて、何かが違うような気がする……
0042nobodyさん03/05/03 16:02ID:t0/6rwZ0
>>41
 ActionForm からは Action を必ず呼び出すのが推奨だが、
リンクさせたいだけなら、<%= %> とコードをかいても、
<html:link> タグを使ってもいい。
0043nobodyさん03/05/04 01:07ID:M8Vf8h8D
>>42
ActionForm から Action を呼び出すって...
もうすこしわかってから人に教えようよ...
0044nobodyさん03/05/04 02:08ID:tPLquQaP
>>43
ActionFormと結び付けられていないJSPから、Actionを呼び出すの?(笑)
0045nobodyさん03/05/04 02:46ID:M8Vf8h8D
>>44
42の人ですか? 本格的にわかってないのかな...
・ActionForm と Action には呼び出し関係はありません
・ActionForm は Action の引数として渡されます
・ActionForm にリクエストパラメータを設定して
  Action を呼び出すのは ActionServlet です
0046nobodyさん03/05/04 03:49ID:tPLquQaP
>>45
Strutsいじったこと無いのかな...
0047nobodyさん03/05/04 03:55ID:tPLquQaP
>>46
とはいいつつ、意図の補足。

>>41 の話をきいていると、JSP ファイル間でリンクを貼りたいと
いいたいように見えるが、Struts では Struts に従った JSP ファ
イル(ActionForm と関連付けられたフォームを持つ)からは、
Action での処理に移るのが推奨になっている。

だから struts-config.xml で ActionForm を連携している JSP
ファイルからは、他の JSP ファイルに直接リンクを貼るのは望ま
しくないと書いた。

>   Action を呼び出すのは ActionServlet です

 これ自体は間違っていないが、ActionServlet を自分で書かないよな?
00483103/05/04 13:46ID:p4vaAgcq
>>47

>>41 の話をきいていると、JSP ファイル間でリンクを貼りたいと
>いいたいように見えるが、Struts では Struts に従った JSP ファ
>イル(ActionForm と関連付けられたフォームを持つ)からは、
>Action での処理に移るのが推奨になっている。

大体あってます。が、「JSP同士」では無く(まぁそういうこともあるでしょうが)

1.他のサイトからリンクされてる
2.スタティックなHTMLからリンクしたい
3.ビュー側で初期値を与えたい
4.その他、「諸般の事情」でどうしても初手はGETでしかリクエストできない

ようなとき、抽出条件その他の初期値を与えたい場合、どのように処理をすればいいのか、ということです。
>>41では、抽出結果をいちいちセッションで保持するのはメモリの無駄のように思えましたが、考えて見れば
ビュー側で表示が終わったら明示的に消去すればいいんですよね? だからやっぱり>>41で書いたように

hogehoge.do?hanya=1でGETでリクエスト
 ↓
Actionクラスで条件をValidatしビジネスロジックを実行
 ↓
抽出結果をBeanに格納しセッションで保持
 ↓
ビュー側でBeanの内容を表示
 ↓
表示し終わったら、セッションの内容を明示的に破棄(Nullを入れる)

というストーリーでいいのかな、と思いましたが、これだと3.が実現できないんですよね。
どうでしょう、こういうことをした人はいます?(^^;
0049nobodyさん03/05/04 18:56ID:tPLquQaP
>>48
>ビュー側で初期値を与えたい
 ActionForm に初期値をセットすればいいのだと思われ。
 外部から直接、〜.do にアクセスが飛んだ場合でも ActionForm の
インスタンスは作成される。
 コンストラクタか、初期値でモゴモゴっと処理してしまえばよい。

※ ただし推奨方法なのかは謎
0050あぼーんNGNG
あぼーん
0051あぼーんNGNG
あぼーん
00523103/05/04 23:36ID:p4vaAgcq
>>49
そうか、基本のActionFormは作っておいて、おっしゃるとおりコンストラクタか、初期値を設定するメソッド
(まぁ、グローバルなプロパティでもいいんでしょうが)をオーバーライドして、ビューの数だけ継承しながら
作っていけばいいんですね?

出来ればビューだけで解決したかった(HTMLデザイナーに微調整は全部やらせたかった(^^;))のですが、
考えて見れば(MVCの概念では)抽出条件とかってビューには含まれませんものね。

了解しました。この考え方でプロトタイプを作って見ます。アドバイスありがとうございました(拝)
0053nobodyさん03/05/05 12:27ID:JAcSDFlc
ハゲシク使い物にならない、MVCにもなってないプロトが出来上がりそうだな。
それを使わされる下の人間いるの?なんか可哀想だな(ゲラ
0054あぼーんNGNG
あぼーん
00553103/05/05 21:29ID:fyscN38j
>>53
申し訳ありませんが、問題点があれば具体的にご指摘いただければ助かります。
是非ともよろしくお願いします。
0056nobodyさん03/05/05 22:56ID:???
技術評論社が出した「Jakarta Project徹底攻略」を
よんでstrutsの使い方を把握し実際に動かすことに成功したが
あの本を読んでいる限りは、struts-config.xmlファイルの設定が面倒くさそう。
Beanを追加すればするほど肥大化はいやなもんじゃ。

JavaServerFacesに期待しているのだがどうなのだろうか?
0057nobodyさん03/05/05 23:07ID:TDsoNdrN
53ではありませんが。

>>55
もう解決したようですが「Viewで初期値を与える」という発想が
間違いのもとです。
それと>>52で書かれていることも意図が掴めません。

普通に作っていけばActionとActionFormのサブクラスが機能の
数だけ作られて、それで何も混乱の元は無いように思うのですが。

0058あぼーんNGNG
あぼーん
0059nobodyさん03/05/05 23:13ID:TDsoNdrN
>>56
struts-config.xmlを手でいじるのが嫌なら、IBMのWebSphereに付いてる
IDEか、Scioworks CaminoやEclipse用プラグインなどを使うがよろし。
俺はXML手書きのほうが手っ取り早いので使っていませんけど。

http://www.scioworks.com/
http://w3.cube-web.net/eclipse/index.php?%5B%5BStruts%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%5D%5D

JSFに関しては、既存のWebアプリケーションのビジネスロジックは
修正せずに、StrutsカスタムタグをJSFコンポーネントタグに
置き換えられるようにするstruts-facesというライブラリが
あります。まだexperimentalですが。
http://cvs.apache.org/builds/jakarta-struts/nightly/struts-faces/
0060nobodyさん03/05/05 23:22ID:TDsoNdrN
CraignのJSFに関する見解はこのあたりに。
http://jakarta.apache.org/struts/proposals/struts-faces.html
0061あぼーんNGNG
あぼーん
00623103/05/06 00:51ID:OVvSof92
>>57
そうですね。ちょっと整理しましょう。今回解決すべき問題点は二つでした。

(1)システムが動くサーバの外から、抽出条件のパラメータが付いたGETリクエストが飛んでくる。
(2)デザイン的に、ビュー毎に.表示する情報の抽出条件を変化させる必要がある。

で、解決方法として

(1)については、URLを「hogehoge.do?hnya=1」等と記述してもらうことでアクションサーブレットを起動し、あとは通常のStrutsの処理フローに乗せる。
(2)については(MVCの考え方で行けば)抽出条件というのはビューに含んではいけない。たとえビューと一対一で対応するとしても、それぞれに
抽出条件などを設定したコントローラ(=アクションクラス)を用意すべきである。

と理解した。ということです。
0063nobodyさん03/05/06 01:42ID:???
>>31
そもそも解決すべき問題点は、おまえさんの「日本語能力」にあると思うのは漏れだけだろうか。
内容意味不明だし、一体何が知りたくてココに書いてんだ?って感じ。
おまけにStrutsのドキュメント、まともに(全く)読んでない(読めない)感すらある。
0064nobodyさん03/05/06 07:24ID:M26ZMqzh
>>62
 裏技?として ActionForm 内にクエリーを書いてしまう方法もある。
 GETパラメーターを格納(setXXX)したあとに、JSP内部でプロパティーを
参照(getXXX)するので、条件にあった表示が得られる。
00655703/05/06 12:48ID:6G0ArJzR
>>62
だいぶわかりやすくなりました。
今回は書かれている方法でもよさそうな感じですが、一点だけ、

>(2)デザイン的に、ビュー毎に.表示する情報の抽出条件を変化させる必要がある。

この要件がいまいち不可解だったのでした。

抽出条件によってデザインが変わってくるのであれば、それは
別のビューとして(複数のJSPに分けるなどして)実装して、Action
の戻り値を返ることで適切なビューを表示するようにすれば良いし、
デザインは変わらないけど表示すべき情報が可変であるということ
であれば、アクションクラス内で取得した情報を<logic:*>や<bean:*>
タグで好きなように表示すればいいわけですから。

要は、
「JSPに抽出条件を持ってもそれを使用する局面が無い」
イコール
「JSPに抽出条件は含めないほうがいい」
という感じで。
0066nobodyさん03/05/06 23:32ID:mn6KLLDy
1.1の正式版ってel対応になるのかな・・・?
あれってservlet APIの2.4からだよね。

ところでMastering Jakarta Strutsって本読んだ?
あれは酷い。1.0のソースを無理やり1.1にしただけ。
tilesとかvalidatorとかの説明ぜんぜんなし。。。
金返せー
00673103/05/07 15:29ID:YS2KuJ4n
>>65
フォロー、ありがとうございました。この方向でちょっとプロトタイプを作って見ます。
アドバイスどもでした(拝)
0068nobodyさん03/05/07 17:35ID:???
>>66

漏れもMatering Jakarta Struts買ったっす。
1.1Beta3 ベースということで期待してしまったが裏切られた…。

まあ、1.0の情報にしても、漏れの手元には雑誌とかWebとか断片
的なものばかりだったので、まとまった本をゲトしたというだけで満
足しようかなて感じ。

やはりValidatorやTilesの総括的な説明とか、リファレンス的な資料
は是非欲しい今日この頃。
00694303/05/08 01:03ID:QIbU8bsc
>>42, 44, 46, 47
亀レスだけどさ。やっと意味がわかったよ。
あんたが42でいってるActionFormってのはJSPのフォームのことね。
そりゃ用語の使い方間違ってるだろ。
言語能力低い奴と議論するのは疲れるな。
0070nobodyさん03/05/11 03:05ID:???
何言っているか分からない香具師多いな。。
無理して用語を使わなくていいからしっかり自分の言葉で
丁寧に書いておくれ、読んでて疲れるから。
0071nobodyさん03/05/11 15:19ID:???
Tiles で putList を使おうと思ってるんだけど、
Cannot find bean putListName in any scope'
って表示されてうまく動きません、、。

tiles-def.xml
では正しく定義していると思います。

どこか気をつけないといけない点とかあれば、
教えてください。
0072nobodyさん03/05/11 16:18ID:RN6cVwq4
期待アゲ
0073nobodyさん03/05/11 17:24ID:???
ナニを期待しとるんだろ・・・と(ry
0074nobodyさん03/05/13 00:23ID:???
>>66&>>68
仕事で急にサーバサイドJavaをやることになったんでその本を買って勉強してたんだけど、泣いた…。
Javaは基本的な文法ぐらいしか知らなかったのに、納期の都合とはいえいきなりこの本を読むのも問題だが。
Actionクラスのオーバライドで4章ではきちんとexecute()メソッド使ってるのに、7章でいきなりperform()メソッドだもんなぁ(汗
わけわかめ状態だった。
0075nobodyさん03/05/13 20:11ID:HYZm7KE1
質問です。

<html:text />などでActionFormの内容を表示する場合に
出力文字に&などが入っていると、&などに置換されてしまいます。

<bean:write />の場合には filter="false"などでフィルター処理を無効にできるので、
上記と同じ状態を回避できるのですが、
html:text や html:textarea タグなどの場合には、
文字としての&を出力できないのでしょうか?

どなたか方法を知っていたら教えてください。
00767503/05/13 20:13ID:???
修正です。

<html:text />などでActionFormの内容を表示する場合に
出力文字に&などが入っていると、&amp;などに置換されてしまいます。
                      ^^^^^
0077nobodyさん03/05/14 02:17ID:???
>>53
なんか本当に恥ずかしい意見だな…
Strutsモデルだと、いやでもMVCになるだろよ。
ろくに調べもせずに物言うのはイクナイぞ。

>>76
受け取り側で置換された文字列を戻すのはいかんの?
ちなみに入力系でエスケーフはずすと ひろみちゅ あたりに
ネチネチ指摘されちゃうよ。
00787703/05/14 02:18ID:???
>>53
あ、ごめん31の作るシステムがって事ね。

ワタクシも同意見です。
00797603/05/14 16:33ID:???
>77

レスサンクスです。
詳細書きますと、AirH"Phone でtextarea内を編集する時に
textarea内のテキストの改行が
CR+LFだとうまく改行として認識してくれないのです。
(&#13;&#10;)だと改行として認識してくれるので
直接(&#13;&#10;)を出力したいのですが、
Strutsの <text:textarea> タグで出力すると以前書いたように
&が&amp;に変換されてしまうので困っています。

無理やりここだけStrutsから外れて処理するのも
ActionFormの恩恵(validate等)が受けれなくなってしまうので
いやだな〜と思っている次第です。

分かりにくい文章だとは思いますが、
またどなたか解決策や情報ありましたらよろしくお願いします。
0080初心者03/05/16 01:20ID:P4wQZ3na
>>76
<html:text filter="false" .....
みたいなのってなかったっけ?
00817703/05/16 02:31ID:???
>>79
今ソースを追ってみたけど普通にfilter書けちゃってるねみたいだね。
どうせなら html.TextareaTag を拡張すれば?

属性を一つ追加して、doStartTag内の以下の記述に分岐処理
加えるとか。

results.append(">");
if (value != null) {
  results.append(ResponseUtils.filter(value));

 ↓

results.append(">");
if (value != null) {
  if (filter == true){
    results.append(ResponseUtils.filter(value));
  }else{
    //今回変更したい処理
    results.append(changedValue);
  }

もし急ぎだったら、カスタムタグで逃げたほうが早いよ。(たぶん)
0082nobodyさん03/05/16 03:56ID:+YvWQ3K9
Strutsいいねー。Strutsの本を読んでいると
デザインパターンの勉強にもなるし(特にModel部分)。
0083あぼーんNGNG
あぼーん
0084nobodyさん03/05/16 05:38ID:???
>>80
私も当然あると思ったんですけど、無いんですよね〜。

>>81
おー。やはりそうでしたか。しかもサンプルまで書いて頂いて。
ソース手元に無かったので覗いていませんでした。報告助かります。
今、対象となる部分は後回しにしていますので、
すぐにではありませんが余力が出来次第、対応したいと思います。
ありがとうございました。(・∀・)

でも、なんでそんな実装してるんだろ、、。
個人的には、改善して欲しいな。( ´・ω・`)
00858403/05/16 05:39ID:???
>>79 です。
0086nobodyさん03/05/16 17:08ID:teI9CzVh
エラーチェックがうまく行かないです。
WEB-INFの下に以下の内容のApplicationResources.propertiesを置いて、
----
errors.footer=</font>
errors.header=<font color="red">
errors.input={0} 入力エラー
----
ActionFormのValidateでエラーチェックをしているのですが、
ブラウザで見ると、
null null
と表示されます。
これはなぜでしょうか?
0087nobodyさん03/05/16 17:09ID:teI9CzVh
86です。
書き間違えました。
WEB-INFの下ではなくて、
WEB-INF\classesの下です。
ちなみに、Strutsは1.0.2です。
0088あぼーんNGNG
あぼーん
0089あぼーんNGNG
あぼーん
0090nobodyさん03/05/16 18:57ID:X/k6KzQW
 日本語処理は filter 使うのがエレガントだと思うが、みんな 〜 と−の処理ってどうしている?
 Beans内部で Cp932 と JIS マッピングの変換処理するのは反則か?
0091nobodyさん03/05/17 00:58ID:???
>>86
Validate以前に <bean:message key="hogehoge" /> とかで表示はでる?
0092nobodyさん03/05/17 17:27ID:z/6/8Lae
>91
あー。出ないですねぇ...
ApplicationResources.propertiesが見つけられていないのか?
何でかなー。
WEB-INF\classes下に置けばいいんですよね?
00939103/05/17 20:03ID:???
>>92
struts-config.xml に以下の記述はありますか?

<message-resources parameter="ApplicationResources"/>
(プロパティーファイル名が、ApplicationResources.properties で classes 直下の場合)

最初から、これを聞いておけばよかった、、。

0094nobodyさん03/05/17 21:42ID:gyiwxN9i
>90
Windows31Jから他のエンコーディングにするときにマッピングしてます。
(JavaMailする時とか、ファイルに出力するときとか)
jspもservletもWindows31Jに統一しておけば、それほど問題無し。
データベースはutf-8。
00959203/05/17 23:17ID:O2nhd5ot
>93
あります。
あっても、なくても変わらないんですよ。
ちなみに、ApplicationResources.properties では、
-----
errors.footer=<HR></font>
errors.header=<HR><font color="red"><h3>\u5165\u529B\u30A8\u30E9\u30FC</h3>
errors.required={0}\u3092\u6b63\u3057\u304f\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
errors.selected={0}\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-----
と設定し、JSPで、
<bean:message key="errors.required" />
とやっています。
あー。分からないー
0096あぼーんNGNG
あぼーん
00979303/05/18 00:03ID:???
>>95

<bean:message key="errors.required" />
で、nullが表示されるんですか?
Missing message for key errors.required'
とか画面にエラーで出力されませんか?

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
などの宣言が無くて、
<bean:message key="errors.required" />
とそのままタグのまま出力されてるとかってことはないですよね?

リソースが見つからない場合はエラーがでると思うんですけど、
それも出ないんですよね?

一度、同じ環境で、
struts-blank.war で動くかやってみてはいかがでしょうか?
resouece を表示するところまでのサンプルにはなると思います。

参考にならずにすいません。( ´・ω・`)ショボーン
00989203/05/18 10:14ID:RgYrYgHP
>97
>Missing message for key errors.required'
が出ます。
taglibの宣言は入っています。

説明がまずかったようですね。
このメッセージが出るときは、リソースが見つかっていないんですよね?
struts-blank.warを動かしてみます。

いろいろアドバイスありがとうございます。
00999203/05/18 10:49ID:RerIJFH5
struts-blank.warは動きました。
リソースも読み込めます。(文字を変えて試しました)
自分の作ったものと違うのは、Eclipseを使って試しているので、
自分で作ったソースは、
eclipse\workspace\xxxx\WEB-INF\classesなどにあるということ。
tomcatの配下にないとだめなんですかねぇ...

何が、いけないんだろ?
01009703/05/18 10:59ID:???
>>98-99
struts-blank.war は動いたようでよかったです。
(それすら認識されなかったらどうしようかと思っていました。)

私も Eclipse 使っていますが、 Tomcat以下ではありませんがきちんと認識しますよ。
struts-blank の環境を Eclipse に放り込めば多分認識されると思います。

おそらくどこかの宣言がおかしいか足りない等だと思いますが、
このまま struts-blank をベースに開発していった方が楽かもしれませんね。

それでは頑張ってください。
01019203/05/18 11:07ID:Rl7PkOHS
>100
97さん、お付き合いいただき、ありがとうございます。
分かりました。ログを見て気づいたのですが、
web.xmlの
<!-- Action Servlet Configuration -->
が、
<param-value>org.apache.struts.webapp.example.ApplicationResources</param-value>
となっていたので、
<param-value>ApplicationResources</param-value>
と変えました。
これを行ったら、きちんと表示できるようになりました。
validateもOKでした。
ありがとうございます。

これって、もしかして常識ですか?
だとしたら、勉強不足です。申し訳ないです(;_;)。
0102あぼーんNGNG
あぼーん
010310003/05/18 11:49ID:???
>101
私も知りませんでした。
というより struts1.1 しか触ってないので 1.0.2 は全く知りませんでした。

今、 jakarta-struts-1.1-rc1 と jakarta-struts-1.0.2 の struts-blank.war 内の
web.xml を見てみたのですが、
確かに init-param 要素に application がありますね。
ちなみに 1.1 の struts-blank.war の web.xml ではなくなっています。
試してみたところ、1.1でも同じように認識はします。

web.xml での宣言の方が優先されるようなので
おそらく、1.0.1でも、web.xml ではなく、struts-config.xml でのみ定義すれば
うまく動くのではないでしょうか?

今後はそちらが推奨なのかな、、、?( ´・ω・`)

ちなみにドキュメントなどはきちんと読んでませんので違う部分があればご容赦ください。
0104nobodyさん03/05/18 23:38ID:???
常識以前の問題。
Struts以前に、Servletそのもの、全く理解していないだろ?
レベル低過ぎで議論の余地無し。
0105nobodyさん03/05/19 01:03ID:wtvJuzDV
>>104
何をオマエが言いたいのかわからん
自分は分かってるよんってアピールかな?

優しく教えてやればいいじゃん、そんな書き込みするくらいなら。
まあ、俺は面倒くさいから書かないがな(ワラ
※それでも、煽るだけの奴よりはマシだね

<param-value>org.apache.struts.webapp.example.ApplicationResources</param-value>

↑一応Strutsの話だから、問題でもないべ
0106nobodyさん03/05/19 03:14ID:???
>>105
もうちょっと勉強してから書けってことだろ?
って、オマエもわかってなさげだな(w
0107nobodyさん03/05/19 05:33ID:???
>>104-106
餅つけ。
0108山崎渉03/05/22 02:00ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0109nobodyさん03/05/22 19:24ID:+fKyQ+WM
TagLibを使っています。
ビットマップを表示したいのですが、表示するビットマップ名自体は、
Beanのプロパティとして設定されています。
この場合、
<html:img...はどのように記述すべきでしょうか?
いろいろやっていたのですが、すべて実行時にエラーになってしまいます。
例えば、無理やり
<html:img src=<bean:write name="XXX" property="img"/> border="0" />
のようにしてみましたが、できませんでした。
どうするのが一般的でしょうか?
0110nobodyさん03/05/22 22:25ID:???
defineタグ
011110903/05/23 08:58ID:z66Oyt3O
>110
defineタグで、どうやるのでしょう?
もちろん、Beanはdefineしてあります。
教えて君で申し訳ないですが、お願いします。
0112nobodyさん03/05/23 14:09ID:YPcGLQF2
> 111
taglibの入れ子ができないので、一度変数に格納するってこと。
taglibではdefineでできまぷ
011310903/05/23 17:11ID:???
>112
ありがとうございます。
できました。
そういうことだったのですね。
0114nobodyさん03/05/23 18:40ID:hBMC8P4e
JSTLとStruts-ELタグを使えば、

<c:set value="src"><bean:write name="bean" property="prop"/></c:set>
<html-el:img src="${src}"/>

みたいに出来る気がします。
0115あぼーんNGNG
あぼーん
0116山崎渉03/05/28 17:07ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0117nobodyさん03/06/03 16:19ID:L+5xX/pq
これから実際に動かして確認しますが(現在すぐには使えないのです(拝))、
struts-config.xmlの<action-mappings>、pathとtypeは別個のものなんですよね?

何がしたいかというと、「GETメソッドでアクセスしたときに、まったく同じロジックで
JSPだけ違うモノを使いたい」という時に、以下のようなstruts-config.xmlを書けば
OKか? ということです。

<action-mappings>
<action path="/hogehoge_moner" type="hogehoge" name="hogehogeForm">
<forward name="success" path="/moner.jsp" />
</action>
</action-mappings>
<action-mappings>
<action path="/hogehoge_gikoneko" type="hogehoge" name="hogehogeForm">
<forward name="success" path="/gikoneko.jsp" />
</action>
</action-mappings>

で、「hogehoge_moner.do?param=ABC」でmoner.jspにリダイレクトし、「hogehoge_gikoneko.do?param=ABC」
でgikoneko.jspにリダイレクト、hogehogeFormでエラーなどがあったら共通のエラー処理を行い、正しかったら
ロジックも同じ結果が返ってくる、ということでいいんですよね?
(もちろん、同じロジックが使えるように双方のJSPを記述するのは大前提ですが)
0118nobodyさん03/06/03 16:29ID:???
>>117
やりたいことは可能。だがその記述じゃうまく動かない。

1. <action-mappings> はstruts-config.xmlに2つ書けないので、こうする。
<action-mappings>
<action path="/hogehoge_moner" type="hogehoge" name="hogehogeForm">
<forward name="success" path="/moner.jsp" />
</action>
<action path="/hogehoge_gikoneko" type="hogehoge" name="hogehogeForm">
<forward name="success" path="/gikoneko.jsp" />
</action>
</action-mappings>

2. フォワードじゃなくてリダイレクトしたいのならredirect="true"にする
<forward name="success" path="/moner.jsp" redirect="true" />
<forward name="success" path="/gikoneko.jsp" redirect="true" />

3. ActionFormでvalidateを行うのならinput属性を書くべし。
011911703/06/03 23:15ID:L+5xX/pq
>>118
ありがとうございました。早速試してみます。

>2. フォワードじゃなくてリダイレクトしたいのならredirect="true"にする
そうか、二つは違うんですよね。JSP(Strutsでない)でハマったのを思いだしました。

>3. ActionFormでvalidateを行うのならinput属性を書くべし。
あい、気をつけます(拝)
■ このスレッドは過去ログ倉庫に格納されています