トップページ⇒tech
737コメント270KB

△△もまいら漏れにStrutsの良さを教えてください

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
Strutsマンセーな記事をよく見かけるようになったさっこん。
それでも、漏れにはStrutsの良さがよくわかりません。
めんどくさいだけじゃないかと。
普通にサーブレット&JSPでいいじゃないかと。

そこでもまいらにお願いです。
こんな漏れにStrutsの良さを語ってください。小一時間語ってください。
どんなときに使うとイイのか教えてください。
ストラトスって読んじゃだめな理由もついでに教えてください。
00021NGNG
何て読むか教えれ
0003デフォルトの名無しさんNGNG
すとらうすとらっぷ
0004デフォルトの名無しさんNGNG
           _∧_∧
        / ̄ ( ・∀・)⌒\ ガッ!!
   __    /  _|     |   |
   ヽヽ   /  /  \    |   |           ,,,,,,,iiiiillllll!!!!!!!lllllliiiii,,,,,,,
    \\|  |____|   .|   |           .,llll゙゙゙゙゙        ゙゙゙゙゙lllll,
     \/  \       |   |           .|!!!!,,,,,,,,       ,,,,,,,,,!!!!|
     | ヽ_「\      |   |、         |  ゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙ .| 
     |    \ \――、. |   | ヽ         .|     .゙゙゙゙゙゙゙゙゙゙     |
     |   / \ "-、,  `|  |  ヽ       |               |
  _/   /    "-, "' (_  ヽ  ヽ      .|               |
/    __ノ      "'m__`\ヽ_,,,, ヽ      |               |
`ー― ̄          ヽ、__`/ー_,,,, ゙゙゙゙!!!!!!!lllllllliii|               |
                    \゙゙゙゙゙゙゙!!!!!lllllllliiiii|               |
                      \   ヽ   |               |
                       ヽ   \  |               |
                        |     \.|               |
                        `ヽ、,,_ノ|               |
                              ゙゙!!!,,,,,,,,       ,,,,,,,,,!!!゙゙
                                   ゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙
                                /.// ・l|∵ ヽ\  ←>>1


0005デフォルトの名無しさんNGNG
なんつかw
JAVAに賭けてた人とかかわいそうだな
0006デフォルトの名無しさんNGNG
つーかさ、Javaスレ立てすぎ。
0007ほんものの1 ◆lqgT6FBSpw NGNG
ストラッツってどうよ?
0008ほんものの1 ◆lqgT6FBSpw NGNG
>>5
Javaが理解できなかった人もかわいそうでつね。
0009デフォルトの名無しさんNGNG
ストラッツって言語?
0010デフォルトの名無しさんNGNG
strut (名詞) [=struts]
支柱
気どった歩きぶり
strut (動詞) [=strutting, strutted, struts]
(自動詞)
気どって歩く
0011bloomNGNG
http://www.agemasukudasai.com/bloom/
0012ほんものの1 ◆lqgT6FBSpw NGNG
>>9
Webアプリケーション用のフレームワークでつ。
0013デフォルトの名無しさんNGNG
Strutsの良さ?
あるわけねーだろ。(w
ASP.NETに遠く及ばない糞フレームワークを持ち上げて、提灯記事も必死だな。(藁
0014デフォルトの名無しさんNGNG
ASP.NET と比べてる辺り Struts が何か知らないだろ。
糞であることには変わりないが。
0015デフォルトの名無しさんNGNG
Javaをやってる人は
専門出のDQNか
馬鹿なベンチャー屋
しかいません。
言語設計は(教育用としては)素晴らしいですが
実用には向きません。そういうことをちゃんと部下に教えないといけません
JSPがわかってもアパッチのインストすらできないようでは
明日の日本はありません
0016デフォルトの名無しさんNGNG
>JSPがわかってもアパッチのインストすらできないようでは
プ
0017デフォルトの名無しさんNGNG
>>1
じゃあ、ひとまず Java Server Faces (提供する機能は Struts とほとんど一緒)
を再評価してみてはどうか。
0018デフォルトの名無しさんNGNG
>>15

> 実用には向きません。

いや、向きますけども。
0019デフォルトの名無しさんNGNG
>>17
>Java Server Faces (提供する機能は Struts とほとんど一緒)

ただのASP.NETのパクリ。(プ
0020デフォルトの名無しさんNGNG
>>18

教育用は実用に使えないという法則がどっかにあったような気がするけど
Javaはそうでもないと思う。
0021デフォルトの名無しさんNGNG
>>20
ということにしたいのですね?
0022デフォルトの名無しさんNGNG
みんないいように騙されてるねえ。(w
UNIXの巨大サーバー上で動かしてるからこそ、かろうじて運用に耐えてるだけなのに。(w
本当に使えるものなら、Windowsの中規模サーバーで大体は間に合うはずなのに。(w
それこそASPみたいにね。
0023デフォルトの名無しさんNGNG
このジョークを地で行ってるのがJavaだね。(ゲラ

http://hp.vector.co.jp/authors/VA000092/jokes/strup.html

> 本当のところ、私はC++でDOSを書きました。 これが終わったら、
> デモ版をお渡ししましょう。 コンピュータルームのSparc 20で
> ずっと走らせています。4 CPUでロケットのように速く動きますし、
> たった70MBのディスクしか消費しません。
0024デフォルトの名無しさんNGNG
>>22

> 本当に使えるものなら、Windowsの中規模サーバーで大体は間に合う

Windows でも Linux でも間に合ってますが?
0025デフォルトの名無しさんNGNG
>>24
どうせ社内でしか使わないショボシステムだろ?(ゲラ
0026デフォルトの名無しさんNGNG
アンチ Java の人ってみんな文体が同じだね。
0027デフォルトの名無しさんNGNG
>>26
中の人が全員おんなじなんじゃない?
0028デフォルトの名無しさんNGNG
>>27
ゲラとか嘲笑激藁とかプとか大爆笑とか書いてる奴だろ
タイミングよく不自然に連続投稿しているところがあいつらしい。
0029デフォルトの名無しさんNGNG
>>27-28
>>15がアフォなだけ
0030デフォルトの名無しさんNGNG
>>6
そうでもないやん。

まあいいんじゃね?
WebProg板はPHPスレでほとんどうまってるし。

Javaという言語がそれだけ幅広い分野で使われてるってことなんだから
一口にJavaといってもさまざまな分野があり一つのスレだけでは語りきれないんだし。

ところで >>6 はJavaの代わりにどんなスレをたてて欲しいんだい?
0031デフォルトの名無しさんNGNG
>>30
新言語 さくらたんヽ(´ー`)ノ
0032デフォルトの名無しさんNGNG
今はstrutsよりJavaServerFacesやTurbineに魅力を感じるぞ。

strutsは便利だけどBean追加のたびにstruts-config.xmlファイルの書き換えが面倒。


>>19
ASP.NETもstrutsやJSPカスタムタグのパクリでもあるのだが(w
そしてC#もJavaのパクリ。
0033ほんものの1 ◆lqgT6FBSpw NGNG
>>17
Java Server Facesって、HTMLフォームをそれぞれカスタムタグにしただけだと思ってた。
画面遷移の管理もあり?
0034デフォルトの名無しさんNGNG
すとらっつ
設計が簡素化できるし、作りが単純なので展開しやすいので、割と好きです
Turbineは一度使ってみたいけど、情報がとぼしいので触ってないです^^;
0035ほんものの1 ◆lqgT6FBSpw NGNG
>>34
>設計が簡素化できるし

ここがすごく疑問なんですよね。
ちょっと詳しく教えてもらえませんか?
0036デフォルトの名無しさんNGNG
>>32はWeb+DB Press vol13を読んで感化されている予感
0037デフォルトの名無しさんNGNG
>>36
お前だろ
あげんな、
誰もんな糞雑誌読んでねーよ
0038デフォルトの名無しさんNGNG
表紙がなぁ。。。萎
003932NGNG
>>36
いや、"Jakarta"を鵜呑みにしただけでした(w
なかなかおもろい雑誌だったや
0040デフォルトの名無しさんNGNG
Javaに不満ある香具師が多いのは分かるよ。何かと冗長なんだよな。シンプルなウェブシステム作りたい場合は特に。

サッと作りたい場合はRubyってことになるかな。CGIKitとかWEBrickとかウェブフレームワークも充実していて作りやすい。
0041デフォルトの名無しさんNGNG
Rubyのフレームワークってどんなの?
Strutsに対応するものってあるの?
0042デフォルトの名無しさんNGNG
>>41

http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=Web%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A5%D5%A5%EC%A1%BC%A5%E0%A5%EF%A1%BC%A5%AF



最大の難点は開発環境が無いことだな。悲しい現実を言うならば、ツールが無いからJavaより面倒ってこともあるよ。
004334NGNG
>>35
詳細設計から実装へ、比較的機械的に落とせます

・画面遷移図作成→struts-configに変換
・画面入出力項目→ActionFormに変換
・画面処理    →Actionに変換

この辺決めるのに設計的な判断がいらないです。
これらをコードに埋め込まざるを得ない、べたサーブレットよりはマシです。

とはいえTaglib覚えたりStruts-Config覚えたり色々敷居は高いですが・・・
0044ほんものの1 ◆lqgT6FBSpw NGNG
> 詳細設計から実装へ、比較的機械的に落とせます

あぁ、そういうことですね。

StrutsのTaglibは、ほんとに価値が感じられないので、使う気はないです。
どうなんでしょう。。。
0045ほんものの1 ◆lqgT6FBSpw NGNG
>>42
よく見てないけど、思ったのは、Rubyって(使えるとか使えないとかは置いといて)楽しそうですね。
0046デフォルトの名無しさんNGNG
>>44

Taglib使わなかったら、Strutsを使う意味もないでしょ。
0047ほんものの1 ◆lqgT6FBSpw NGNG
>>46
そうなの?
あのTaglibって、なんかいいとこあるの?
0048デフォルトの名無しさんNGNG
>>47

全部使ったわけではないけど、html、logic、beanは使えたよ。
特に、htmlは使った方がよい。
0049ほんものの1 ◆lqgT6FBSpw NGNG
>>48
そうかなぁ。。。
変なタグ使っても、デザイナがわからなくなるし。
リンクのタグはStrutsのしくみ使う上で必要だろうけど。

フォームのタグは、同じようなものをもってない人には便利なんだろうけど。
みんなそれなりに作ってるんじゃないの?自分なりに便利なの。

logic/beanって何があるの?
005048NGNG
>>49

Formタグと同等の機能を自分で作成したとして、それを使うのに
どれだけの労力を必要とするかだね。

それだけの労力を使って作成したものを新しく入ってきた人に教
える必要があるとしたら、ドキュメントのそろっているStrutsと
の差は歴然としていると思うよ。

今、うちでは日本語があまり出来ない韓国人がいるけど、Struts
は韓国語のページがあるから、説明もほとんど必要ない。

logicですが、iteratorなんかは便利でしたよ。
equalなどはだめですが。
0051ほんものの1 ◆lqgT6FBSpw NGNG
>>50
> Formタグと同等の機能を自分で作成したとして、それを使うのに
> どれだけの労力を必要とするかだね。

実際には、同等ではなく、自分達が作るものに適した機能をもってるんだけどね。
だから、ドキュメントが相対的に貧弱であっても、やろうとすることに似たものがたくさんあれば、あまり問題にはならない。
結局Strutsのタグ使っても、その差の部分は自作する必要があるわけだし。
その自作のやり方を教える方が労力がかかると思われる。

でもドキュメントは同意。
日本語のドキュメントなら問題ないし、英語でもそこまで問題ではないけど、他の言語は無理だね。
使いつづけてるうちはいいけど、

iteratorって、JSTLのforeachよりも便利?
つうか、カスタムタグはJSTLにとりあえず一本化してほしい。あ、だからJSFか。
0052デフォルトの名無しさんNGNG
getter/setterを作るのが面倒い
0053デフォルトの名無しさんNGNG
つくったばっかでださいけどよろ
http://www.h4.dion.ne.jp/~pc-pow/
0054デフォルトの名無しさんNGNG
Struts解説

Struts ファンページ in Japan
http://homepage2.nifty.com/ymagic/struts/realindex.html
0055デフォルトの名無しさんNGNG
糞だろうが何だろうがさっさとオプソ化したものがデファクトスタンダード
取るという実例だな。
0056デフォルトの名無しさんNGNG
>>53
どこにstrutsが使われているのかJSPが使われてるのかServletがつかわれてるのか
わからん。
0057デフォルトの名無しさんNGNG

パンツアニメ?

0058デフォルトの名無しさんNGNG
>>56
サイトの宣伝は放置しろよ。
0059 NGNG
StrutsのTaglibって少しショボイ。痒いところに手が届かない。
だからJSTLや自作のTaglibと併用してる。
0060ほんものの1 ◆lqgT6FBSpw NGNG
ようするに、Strutsいいよぉ、っていってるのは、Taglib含めてのことなのですね?
画面遷移管理だけじゃなく。
0061デフォルトの名無しさんNGNG
仕様を覚えなくてはならないというデメリットがあります。
0062デフォルトの名無しさんNGNG
























0063デフォルトの名無しさんNGNG
>>61

その覚えた後の(ウェブプログラミングの設計についての)学習効果を加味するとどうですか?
0064デフォルトの名無しさんNGNG
>>61,63
Strutsじゃなくてフレームワーク全般に言えることだね。
覚えるための手間がかかるが、覚えた後の効果が高い。
0065名無しさん@LinuxザウルスNGNG
で、苦労して覚えた後に「たかだかこの程度かよ!」という屈辱感を
味わうな。詐欺に気付いたような感覚が。

ここで2種類の人間に分かれるな。全てを捨てて糞と言い切れる
奴と、騙されたのを認めたくないのか無理なマンセーに走る奴と。
0066デフォルトの名無しさんNGNG
>>65
その2種類は覚えるのに苦労した低脳な人間に限定される話。
覚えるのにそれほど苦労しない人間なら「この程度かよ」でも
それほど悔しくないし、使える範囲で適当に使える。
0067デフォルトの名無しさんNGNG
仕事でやってるやつはすべて1から作るより
信頼性も開発スピードもUPするから使ったほうがいいに決まってる
個人でやってるやつはどっちでも好きにすれよ
0068デフォルトの名無しさんNGNG
フォームをまったく使わないページだと
普通に作るのとたいしてかわらない。
0069ほんものの1 ◆lqgT6FBSpw NGNG
>>68
やっぱりTaglib使わないとStruts使う意味ないのかな。
0070デフォルトの名無しさんNGNG
Java Server FacesがJCP(Java Community Process)で標準化されれば
strutsの立場も危うい
0071ほんものの1 ◆lqgT6FBSpw NGNG
WEBDBPRESS13読んだだけではよくわからなかったんだけど、JSFには画面遷移管理も含まれるのかな。
0072デフォルトの名無しさんNGNG
struts1.1b1に対応した解説書でるぞい。
今日amazonで発見。早速メーカーにメール。
どうも1.1b3でも動作確認はしているらしい。
半年ほど前に1.1b2で開発したときは英語しかドキュメントなかったなー。
これでstruts使える香具師増えるかも。
0073デフォルトの名無しさんNGNG
>>67
似たようなものを自作するより、安くて速くて(多分)安全だから使う
だけだよね。

日本では、二番煎じではるかに糞なフレームワークが量産されてますよ。
人が造ったの見ると、作るの簡単そうに見えるのね。
でも、サーバーサイド開発の留意事項の全てを知って作ってるわけじゃ
なくて、マヌケなミスが混じって使い物にならなくなる、というのが
王道的パターン。
0074デフォルトの名無しさんNGNG
>>70-71
JSFなかなかよさげですね。
.NETの猿真似と言われようと、やはりこういうのはニーズが多いだろうからね。
0075デフォルトの名無しさんNGNG
つーか、サーブレット API 自体が CGI に毛の生えた程度だったから
こうもフレームワークが乱立する状況が生まれたわけだ。
0076デフォルトの名無しさんNGNG
>>74
いや、ASP.NETがJSPカスタムタグライブラリの猿真似なんだよ
0077デフォルトの名無しさんNGNG
>>75
結構毛深いな、おい。
007874NGNG
>>76
ありがトン。そうなのか、じゃあ俺はMacがWinをパクったんだとか
ロードオブザリングがハリポタをパクったんだとかいうのと
同じのを信じてたわけかな。(鬱駄
0079ネニグレクト・ラーファNGNG
ttp://www.geocities.jp/fieldabout/
世界の仕組み研究所!!

おまいらみたいな無知君はおいらのページでも見て1から勉強しろでつ。
リンクフリーだけど直リンすんなよゴルァ。
おいらに勝てるヤシはかかってこんかい。
0080デフォルトの名無しさんNGNG
>>79
所詮、HSPはstrutsほどには及ばない。
0081デフォルトの名無しさんNGNG
>>76
>いや、ASP.NETがJSPカスタムタグライブラリの猿真似なんだよ
これを主張するのならば、JSPはASPの猿真似でしかなくなってしまうよ。
(つうか、タグライブラリを待つまでもなく、perlで事前コンバート(タグ
 拡張など)後に自動配置くらい、ずっと前から誰でもしてることだろ?)
0082デフォルトの名無しさんNGNG
>>81
名前を付けて標準化することの価値がわかってないやつはプログラマ失格
0083デフォルトの名無しさんNGNG
>>82
はげ道。
デザインパターンなんかそうだよね
0084デフォルトの名無しさんNGNG
デザパタ読んで、名前を標準化する以外の意味がないと思えれば、上級者といえるだろう。
0085デフォルトの名無しさんNGNG
カスタムタグライブラリの仕掛け自体は用意されたけど、「名前を付けて標準化」を
されたのってそれほど前ではなかったですよね。
ASP.NET発表のどれくらい前の話なんです?
0086デフォルトの名無しさんNGNG
>>84
おみそれしやした
0087デフォルトの名無しさんNGNG
.NETとJ2EEのように、おなじ時期の同じ枠組みの中の同じターゲットの技術について、どっちが先とか後とか言ってても、不毛だとおもふ。
0088デフォルトの名無しさんNGNG
>>84
この板でも
「デザパタに書いてあるパターンなんか、俺なんてずっと前から使ってたし、デザパタだせぇ」
みたいな勘違い君の書き込み、よく見かけるね。
008988NGNG
「デザパタに書いてあるパターンなんか、俺なんてずっと前から使ってたけど、そのパターンをまとめて名前付けたら便利なんて考えても見なかった。
ガンマタンはネ申」
と思うのが上級者ということですね。
0090デフォルトの名無しさんNGNG
>>87
結局、#76がJava厨の妄想で、#81がAPS厨(?)の妄想ってこと?
00911 ◆lqgT6FBSpw NGNG
シーソーにのってれば、どの時点をとっても、その時点かその直前で自分が上にいたと言える。

Java相談スレが1000逝って次スレがなくかったら、こういう話題がこのスレで繰り広げられるってことは、Java相談スレは隔離スレとして機能してたということになりますね。
0092デフォルトの名無しさんNGNG
この前のプロジェクトでは開発初期はStrutsだったんだけど
だんだん置き換えてほとんど普通のServlet/JSPになってしまった。
ちょっとJavascriptとかつかって離れ業をやるインタフェースが
多かったのでTaglibとか使いづらくてしょうがなかった。

でも、簡単にデモンストレーションとか作るんだったら、悪くないなー
そのあとのことはしらないけど
0093デフォルトの名無しさんNGNG
>>92
離れ業JavaScriptをカスタムタグライブラリにすべきだったかと。
009493NGNG
Webで探すと、そういうことやって売ったり配ったりしている奴が
いるよ。外人だけど。
0095デフォルトの名無しさんNGNG
>>94
ガイジンっていうと、アメリカ人かヨーロッパ人・ロシア人のことを指して、韓国人とかイラク人とかは入らない罠?
0096デフォルトの名無しさんNGNG
フォームのないページでStrutsを使う意味ってある?
0097デフォルトの名無しさんNGNG
まあ、
使ったこと無いやつは一回使って
理解してからもう一度自分にその質問を問い掛けてくれ
っていうか、フレームワーク自体に
手を出すのが億劫なんだろ?

>>67>>73のように、理由はちゃんとある
ついてこないやつは別にお好きにどうぞ
0098デフォルトの名無しさんNGNG
>>97
そのフレームワークが一体何を楽にしてくれるのかを理解するまでは、
単なる作業だからな。見返りの保障ナシに、理解に工数突っ込むのは
それはそれで問題かも。
0099デフォルトの名無しさんNGNG
>>98
まあ、物事にたいして「知りたい」という好奇心旺盛な気持ちを持たないやつのほうが、プログラマとして問題だ
0100デフォルトの名無しさんNGNG
フレームワークが提供してくれるものに疑問をもったときに、「無駄かもしれない」と思いながらやるのは蛮勇。
0101デフォルトの名無しさんNGNG
>99
理想論としては然り、だけどこれだけ各種技術が溢れると好奇心の赴くままに
全部を吸収するなんて出来ない。

当然どこかで取捨選択が必要なわけで、そうなれば「何がいいの?」って
概要くらいは聞きたくもなる。

もっともWebプログラマならStrutsの勉強くらいしとけとは思う。日本語の
記事だって半年くらい前から見かけるじゃないか。
0102デフォルトの名無しさんNGNG
まぁ、藻マエらは、オライリーの
Programming Jakarta Strutsを買えってこった!
0103デフォルトの名無しさんNGNG
>>102
邦訳あり?
0104デフォルトの名無しさんNGNG
>>72
書名と著者および出版社が知りたい。

0105デフォルトの名無しさんNGNG
JSPでのフォームの代わりに、Appletを使うことは可能ですか??
0106デフォルトの名無しさんNGNG
>>105
Applet使うなら、JSP使う必要ないじゃん。
HttpConnection使って直接HttpServletと通信しろ。
0107デフォルトの名無しさんNGNG
>>104 コピペして検索汁。因みに邦訳は4/16発売予定
0108デフォルトの名無しさんNGNG
パフォーマンスにうるさい案件でつかえるだろか?
この手の話題はみたことがない。

まぁ、フレームワークなんて使うなといわれそうだけど。
0109デフォルトの名無しさんNGNG
>>108
Strutsがボトルネックになることは少なそうだが。
0110107NGNG
ごめん。マスタリング〜と間違えた。プログラミング〜は邦訳は出ないのかね。
http://www.amazon.co.jp/exec/obidos/ASIN/0596003285
http://www.amazon.co.jp/exec/obidos/ASIN/B000086ZSW
http://www.amazon.co.jp/exec/obidos/ASIN/4798103667
まあ、原書買っちゃってるから出るとかえって悩ましい
0111デフォルトの名無しさんNGNG
>>106
>Applet使うなら、JSP使う必要ないじゃん。
んなこたぁない。
Applet専用のJSPタグがあるやろ
<jsp:plugin>と<jsp:param>だったと思ったが。
0112デフォルトの名無しさんNGNG
>>111
まぁ、>>105の質問が見当外れなわけだが。
0113デフォルトの名無しさんNGNG
>>111
それは、単にJSPの出力であるHTMLにAppletを呼び出すタグを埋め込めるとか
そういうことでしょ。

プロセス実体がどこで何をやるかの切り分けが分かってないな、お前。
0114デフォルトの名無しさんNGNG
>>113
そううことは>>106に言え
>>106の質問が曖昧すぎなんだよ。
しかも>>106はプロセスのことを言い出したかお前
0115デフォルトの名無しさんNGNG
>>114
 >>106ではなく>>105な
01161 ◆lqgT6FBSpw NGNG
StrutsのlogicタグはJSTLに、beanタグはELになって用無し、ということでいいでつか?
htmlタグはJSF次第?
0117デフォルトの名無しさんNGNG
setterやgetter作るのめんどくさい。
0118デフォルトの名無しさんNGNG
setter やら getter やら自動生成するマクロ作るとか、
自動生成してくれる機能が付いたIDE使えば?
0119デフォルトの名無しさんNGNG
今時データしまっとくだけのBeanを手書きしてる人はかわいそうデツネ。
0120デフォルトの名無しさんNGNG
>>119
JSTL使う前提で、Mapで代用してますがなにか?

データしまっとくBeanならまだいいんだけど、Servlet->JSPにわたすだけにBeanを作るのはどんなツール使ってもめんどくさい。
0121デフォルトの名無しさんNGNG
>>117
IDE使うか、エディタのマクロ機能使うか、1.1でDynaActionForm使うか。
0122デフォルトの名無しさんNGNG
>>117
Caminoを買え
0123デフォルトの名無しさんNGNG
DynaActionFormってただのMapでしょ?
バグ増えそう
0124デフォルトの名無しさんNGNG
おいおまえら、オープンソースってものが
どれだけ多くの人にテストされてると思ってんだ?
これほど信頼できるものは無いぞ
0125デフォルトの名無しさんNGNG
>>124
オープンソース一般はあてはまらないよ。
Jakartaのプロダクトでもマイナーなものはしょうもないバグあるし。

さらに話題読み違えてるし。
×バグ多そう
○バグ増えそう

ex.Perlにどんなにバグがなくても、Perlで作ったスクリプトはバグがJavaのプログラムに比べて多い。
0126デフォルトの名無しさんNGNG
>>123
バグって、アプリケーションのバグのことだよね?
たしかにDynaActionForm使うとプロパティ名間違えても実行時までわからないとか
IDE使ってもgetter/setterのメソッド名の自動補完機能が使えないとか
不便なこともある。
0127デフォルトの名無しさんNGNG
オープンソースは開発に費用をかけられないデメリットがあるからな。
0128デフォルトの名無しさんNGNG
>>117
まさかテキストエディタでコーディングしてないよな?
Eclipse使え。
0129117NGNG
結構釣れたな…
0130デフォルトの名無しさんNGNG
釣り日和でつ。
                       ,
                      ,/ヽ
                     ,/   ヽ
            ∧_∧  ,/      ヽ
           ( ´∀`),/          ヽ
           (  つつ@            ヽ
        __  | | |                ヽ
      |――| (__)_)                ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|                ヽ
/⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~
⌒\/⌒\/⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
0131デフォルトの名無しさんNGNG
おまいら、Strutsなんてつまんないもの使ってないで、
WebObjectsでも使えよ。
0132デフォルトの名無しさんNGNG
おまいら、いい加減JSPから卒業しろよ。
0133やすだけいNGNG
>>132
卒業=解雇でつか?
0134デフォルトの名無しさんNGNG
>>110
うわっ。邦訳されるのはよりによってManingのMastering Jakarta Strutsなのか。
類書の中では一・二を争う糞だと思うのだが。
『Struts&タグライブラリ』なんてのとか、邦訳はダメなものから順番か?

0135デフォルトの名無しさんNGNG
いま、サーバーサイドでこれから伸びそうなのって
どんなのあるんですか?
EponicsFastがよさそうなんですが・・・
0136123NGNG
>>124
そうくるとはおもわなかたYo!

>>126
そうです。
実際つかってみたらどうなんだろう、とおもってましたがやっぱそうですか。
RAD向きという印象・・・
0137デフォルトの名無しさんNGNG
>>136
あんたの会社の大してできがよいわけでもない連中が作って、そいつらが
自分の都合でテストしただけの怪しいフレームワークよりは、よく使用さ
れているオブソの方が信用できるさ。
0138デフォルトの名無しさんNGNG
>135
なんか訊き方がニャガオっぽい
0139123NGNG
>>137
流れ嫁Yo!
ちなみに137(=124?)の意見には完全同意です
0140123NGNG
あーなんか俺が流れ読めてなかった
逝ってきます・・・
0141デフォルトの名無しさんNGNG
>>140
>>137の方が流れが違う気がするのだが。
少なくとも>>137と>>136は話題の層が違う。
0142デフォルトの名無しさんNGNG
フォーム作るたびにわざわざフォームクラスを定義するのはアフォだと思う。
キーと値しかないんだから HashMap で十分だ。
0143デフォルトの名無しさんNGNG
今初めてStrutsを使ってサンプル作ってみたんだけど、どうなんだろ?
なんていうか『楽な気がする』って感じかなぁ?
でも我ながらみんなが『Struts便利!』って言ってるからそう感じるのかなって
気がする。。具体的にはどう便利なんだろ?
・taglibが便利?(使い慣れてないから分からないが iterate 等のいかにも
便利そうなものは既に自作してあるからなぁ)

・画面遷移がxmlファイルで指定できる(これはいいかも)

・フォームの受け取りが楽?

でも何も考えずに作ってもMVC(っぽい感じ)になるのは楽かもなぁ。
…ってか何度やってもActionFormのvalidateに処理がいかない。。

質問なんですけど、Strutsで開発すると検索などで使う単純なフォーム
(googleのトップにあるようなやつ)でもActionForm作るんですか?
0144143NGNG
なんか支離滅裂だぁ、スマソ
眠くて。。
0145デフォルトの名無しさんNGNG
>既に自作してあるからなぁ
スタンダードである、多くの技術者に認知されているということの
重要性をわかっていない香具師がまた一人。
01461 ◆lqgT6FBSpw NGNG
>>143
>質問なんですけど、Strutsで開発すると検索などで使う単純なフォーム
>(googleのトップにあるようなやつ)でもActionForm作るんですか?

漏れも知りたい

iterateなんかのlogic系はJSTLがあるから要らない。。。
0147デフォルトの名無しさんNGNG
classとどう違うの?
0148デフォルトの名無しさんNGNG
>>146
> >>143
> >質問なんですけど、Strutsで開発すると検索などで使う単純なフォーム
> >(googleのトップにあるようなやつ)でもActionForm作るんですか?
>
> 漏れも知りたい

そうだよ。

ただ、ウィザード形式の入力画面や、入力→表示といったページはひとつのActionFormで
つくれるから、すべてのFormにたいしてひとつづつ作らないといけないというわけではない。
0149デフォルトの名無しさんNGNG
>>148
俺はJSPで<html:form> タグがある場合はActionFormは
必須ってことだと認識してる。
もしActionFormを定義してなかったらエラーになると思う。
 逆に、表示だけ(bean:write)のみとかだと
formタグはいらないからActionFormもいらないはず。
<path="/hoge" type="HogeAction">でOK。

>>143
struts-config.xmlでvalidate="true"になってる?
一番怪しいのはconfigファイルだな。
0150デフォルトの名無しさんNGNG
DynaActionFormに配列を持たせたい場合はどうやって定義すればいいんですか?
iterateタグで表示して、さらにそこから入力させたいのですが。
0151デフォルトの名無しさんNGNG
>>40
設計ガ助長なんですヨp
0152デフォルトの名無しさんNGNG
>>40
Rubyっていい?
0153143NGNG
>>146,148,149
レスありがとです。
ちなみにvalidate="true"は書いてありましたが、inputが無いのが駄目な
原因でした。(無知って恐いです)

このvalidateって機能は便利ですね、なんとなく。

う〜ん、勉強してみれば結構面白そうだな。。>>struts
0154デフォルトの名無しさんNGNG
>ちなみにvalidate="true"は書いてありましたが、inputが無いのが駄目な
>原因でした。(無知って恐いです)

あれ、validate="true"の場合は必須なんで、ブラウザにエラーがでるはずだけど
validatorを使わずにvalidateメソッドを使う場合にはそうでもないのかしらん?
0155143NGNG
>>154
いや、エラー出てたんですけど、何すれStrutsダウンロードして
から40分ぐらいで作った処女作だったのでどんな属性が有るのかも
分からなかったので…。

その後dtdファイルを読んでみたら分かりました。

そういえば
http://www.ingrid.org/jajakarta/struts/struts1.0/ja/target/documentation/userGuide/building_view.html#form_beans
の下の方にあるファイルのアップロードの解説のJSPは閉じタグが全然ついてないのは一瞬戸惑った。
0156143NGNG
struts1.0.2を使っているのですがエラー時に表示するプロパティファイルって
web.xmlで指定したもの(デフォルトではApplicationResource.property)しか
使えないんですか?

struts-config_1_0.dtdではないけどstruts-config_1_1.dtdでは
message-resourcesタグが使用できますよね。これに代わる機能は
なにかあるのでしょうか?
0157山崎渉NGNG
(^^)
0158 NGNG
ストラッツまんせー
0159デフォルトの名無しさんNGNG
WASversion5でSTRUTSがビジュアルに開発できる
んですがいいですか
0160デフォルトの名無しさんNGNG
eclipse(Tomcatプラグイン&EasyStrutsプラグイン)とStrutsでやってるけど、かなり(・∀・)イイね
0161デフォルトの名無しさんNGNG
strutsまんせーなおまいらに質問。

複数ラインがあるフォームの処理って、strutsではどうするの?
(エクセルのようなテーブル形式の入力フォーム)
0162 NGNG
MVC理論上のコントロールに相当する画面遷移を外だしにすることに
よって設計、および分業がすっきりするという。

一方、現実問題、JSP系システムは画面単位でサーバーとやり取りを
しなければならず、VB的な小さなサーバとのデータのやり取りを
する場合、単純な画面遷移から離脱した、細かいURLのやり取り
をするやり方を使う買うケースは少なくない。

そんなとき、STRUTSの画面遷移における「縛り」は開発的には
邪魔になってしまう。

また、ロジックと画面遷移を外出しにすることによる、ロジックの
つながりの不透明にし、開発側にとって弊害になることも少なくない。
MVCが必ずしも、生産性や機能性において、WEB開発手法における
絶対地位をまだ確立していないことを示す。

TALIBSに関しても、同様に、JSP上のサーバー処理部とクライアント
処理部の直感的区別を妨げ、読みにくくなり、デバッグも困難にさせて
いる部分も少なくない。
0163デフォルトの名無しさんNGNG
JSPがいやな香具師はVelocityなんて(・∀・)イイかもねー。
There is more than one way to do it!ってこった。
0164デフォルトの名無しさんNGNG
>>161
そこらへんについては
Strutsをダウンロードして、struts-exercise-taglib.war
を参考にすると良いよ。簡単にできる。
0165デフォルトの名無しさんNGNG
ここらへんにも書いてあった。
http://seminars.jguru.com/faq/view.jsp?EID=710844
0166デフォルトの名無しさんNGNG
>164,165
1.0.xはこの辺バグだらけだから苦労するんだよな。
1.1早く正式版にならんかな。
0167山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0168161NGNG
>>164,165,166
ありがとさん。
バグあんのかよ。。
いろいろ調べなきゃいけないんじゃ、あんま意味ねーな。
この程度の作りは自分で作ってもそう時間がかかるもんじゃないし。

strutsだめぽ。に1票。
0169デフォルトの名無しさんNGNG
on the form bean:
public QuoteFormLineItem[] getLineItems() {...}
public QuoteFormLineItem getLineItem(int index) {...}

on a the line item: int getQuantity() and setQuantity(int q)

on the jsp:

<logic:iterate id="lineItem" property="lineItems" name="quoteFormBean">
<tr>
<td>
<html:text name="lineItem" property="quantity" indexed="true"/>
</td>
<td>other stuff...</td>
</tr>
</logic:iterate>
Struts1.0.2ではindexed=trueは使えないが、できることはできる。
ただ、ActionFormのScopeがrequestだとできなかった。
このへんがバグなのかな?
0170デフォルトの名無しさんNGNG
マスタリングJakarta Struts読んだ。
だめだこりゃ。
添付のバイナリは1.1b3と1.1RC1だが、内容は1.0.xで書いたものを
あわてて1.1対応にした感じ。
1.1で追加された機能やタグがほとんど扱われていない。
01711 ◆lqgT6FBSpw NGNG
Struts tileとJetspeedって、使い比べた人いる?
0172デフォルトの名無しさんNGNG
>>171
何を基準に比べるの?ぜんぜん別物だよ。
01731 ◆lqgT6FBSpw NGNG
>>172
同じようなものだと思ってた。
01741 ◆lqgT6FBSpw NGNG
Struts Tilesはレイアウトを組み立てる機能だけなのかな。
0175デフォルトの名無しさんNGNG
>>174
おおむねそんな感じ。Tilesは画面の部分部分を部品化してそれを並べていく感じ。
ちなみにJetspeedのベースになってるTurbineはデフォルトで似たような機能がある。

JetspeedはTurbineをベースとしたポータルフレームワークで、ユーザ管理やパーソナライズなどの
ポータルサイトに必要な基礎機能といくつかのポートレットと呼ばれるコンポーネントを提供している。

このへんは一番新しいWEB+DB PRESSに載ってた気がする。
あの記事でもStruts tileとJetspeedを比べるとは言っていないはず。
0176デフォルトの名無しさんNGNG
StrutsとTurbineって、どちらもフレームワークでしょ?
コンセプトが違うの?
何故に、Jakartaで並列さすのかね?
まだ、Turbineは触りしか読んでないんで、識者の説明キボンヌ
0177デフォルトの名無しさんNGNG
Tilesって、xmlファイルでレイアウトを定義する時に
専用のActionServletが必要でしょ?
あれが、困り者。というもの、別なツールでも独自のActionServletを使ってたりするから。
そう言う時はどうすれば良いの?
俺は仕方なくTilesはjspに書いといたけど。
01781 ◆lqgT6FBSpw NGNG
ということは、そのうちStruts Tilesを使ったJetspeedのようなものがでてくるのかな。
もうある?
0179デフォルトの名無しさんNGNG
>>177
たぶん1.0.xの話だよね。
1.1からpluginになったんかな(というか1.0.xにはplugin機能ないけど)
あー本当に早く1.1正式版でないかな。せめて今度の開発が始まるまでに…。
0180デフォルトの名無しさんNGNG
1.0.2でTiles使ったけど、かなり効率化できたよ。
tiles定義ファイルはかなりのサイズになったけど、JSPが散らばるよりはぜんぜんマシ。
総務系Webアプリなら、かなりのお役立ちだと思う。

ただ、JetSpeedの方が「設計してる」という気になってくる。
やってて楽しいのはこっち
0181デフォルトの名無しさんNGNG
TilesでputListとかまともに使った人いる?
あれ、逆にメンテナンス性落としているような気がしてならない。

皆さんに質問。これらのタグの実用上の使い道教えてください。
・bean:page
・bean:struts
・bean:resource
・bean:include
ドキュメント見ても使い方はわかるが使い道がわからない。
いったい何のために用意されたタグなのか?
html:optionsCollectionタグはoptionsより使いやすそうですね。
0182デフォルトの名無しさんNGNG
Strutsで使われている画面マネージャってなんでつか?
Classでつか?どんなしくみなのでつか?
0183デフォルトの名無しさんNGNG
Tiles で putList を使おうと思ってるんだけど、
Cannot find bean putListName in any scope'
って表示されてうまく動きません、、。

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

どこか気をつけないといけない点とかあれば、
教えてください。
0184デフォルトの名無しさんNGNG
>>176
StrutsはあくまでWeb層までのフレームワーク。
TrubineはEJBの全体を包括しているという感じ?
TorqueのようなDB<->JAVAマッピングフレームワークも用意されてる。
って実は俺も良くわかんない。
0185デフォルトの名無しさんNGNG
easystruts
全然easyじゃない
0186デフォルトの名無しさんNGNG
>>184
EJB?????
0187デフォルトの名無しさんNGNG
>>185
うん、使うのにとってもコツがいるよね。
0188デフォルトの名無しさんNGNG
ざっと読んだ感じだけど、なんかきちんとstrutsを理解してる人が少なそうな感じ。
struts覚えるの面倒→否定しとけ みたいな。
PHPでPEAR使わない人もそういう理論が多かったなぁ(関係ないけど)

俺は似たようなフレームワーク作ってたから、strutsがメジャーになってかなり助かった。
作りが糞とかは正直どうでも良い。資料が多くてそこそこつかえるのであれば
自作よりはstrutsを選択すべき。

アーキテクチャーを作る側からすると、自分的にマンセーじゃなかろうと
標準的な仕様を利用した方が、ユーザーやチームを説得するのに楽だよ。
※特にstrutsはWebとかにたくさん資料があるから、教育コストも下がし

あと、strtusのアプローチだと、チームの明示的な分業化が楽。
MVCのカテゴリを明確だし。
0189188NGNG
一応補足するけど、作り手の立場というよりもアーキテクチャーを
決める立場からすると楽ってことね。
実際作るときはこうした方が良さそうってのがたくさんあるし。

Websphereが公式に推してるって事実も大きいかも。
0190188NGNG
う、なんか誤字が多くて馬鹿みたいだ。
189の内容も重複してるし…スマヌ
0191デフォルトの名無しさんNGNG
DataSource、コネクションプーリングについて質問です?
その辺のことあまりよくわかっていないもんで。

Strutsで通常、DataSourceの取得ってどうやってやってます?
ActionServletの継承クラスを作って(plugin)
ActionServlet#findDataSourceしてDataSourceオブジェクトを
使いまわすのかな?(テーブル単位のSQL発行クラスでstatic変数に格納する)

ちなみにfindDataSourceは1.1では非推奨だから、
JNDIを使用してみようと思うんだけど、同様にplugin内で
lookupしてDataSourceを使いまわすってことでOK?

ちなみに、コネクションプールはJNDIを使用した場合は、
APPサーバーのクラスがやってくれるってことだよね?
findDataSourceした場合は、GenericDataSource.javaかな。
特にプールの設定しなくても勝手にやってくれると。

あと、DataSourceを使用した場合は、connection.close()しても
プールに返すんですよね?コネクションの切断ではないですよね?
プールに入れたり返したりするのは、プログラマが意識する必要は
なくて、コネクションプールしてくれるクラスが自動的にやってくれると。

あと、コネクションプールに関してはdbcpを使うのと
APPサーバーのどっちがいいのかな?
長文スマソ。

0192デフォルトの名無しさんNGNG
>>191
ちょっと 使いまわすアプローチ方法が理解できないんだが…

普通はJNDI形式でDataSourceをキャッシュ管理するSingletonのクラスを
作っておいてそれから毎回取得するやり方でいかない?
※いつもStrutsのDataSourceじゃなくてAPPサーバの利用してるから違ってるかも

コネクションプールについては、struts-config.xmlで設定しておけば
勝手にやってもらえるよ。俺の場合APPサーバが商用なんで念のため
APP側でやるようにしてる。

strutsで利用しているdbcpの信頼性って実際のところどうなのかな。
0193191NGNG
>使いまわすアプローチ方法
ActionSerclet継承クラスの
findDataSourceで返ったDataSouceオブジェクトをHogeBeanにset

HogeBean{
setDataSource()
getDataSource()
}

テーブル単位のSQL発行クラスで
private static DataSouce dataSouce = HogeBean.getDataSouce()

特にsingletonで実装してないけど、、、
メモリリークになるかな?なんかおかしいです?

>普通はJNDI形式でDataSourceをキャッシュ管理するSingletonのクラスを
>作っておいてそれから毎回取得するやり方でいかない?
これってlookupは1回だけじゃない?
0194デフォルトの名無しさんNGNG
>>193
こっちの勘違いみたい、そういう実装方法ね。

singletonのアプローチは俺の好みだから、別にそのやり方でもいいんじゃないかな?
HashMapにlookupさせたオブジェクトを格納させるやり方に慣れてたんで。
0195デフォルトの名無しさんNGNG
Struts1.0で採用していたGenericDataSourceの使用は1.1RC1の時点では非推奨。
Jakarta-Commons-DBCPのBasicDataSourceか、Appサーバが提供する機能を使えと。
しかし、昨日あたりからStruts開発者MLではGenericDataSourceへ回帰する
雲行きになってきた。現在投票が行われている真っ最中。
CommonsのDBCPとPoolの次期バージョンがFIXしないので1.1の正式リリースが
延びに延びているのに業を煮やした開発メンバーが多し。
0196デフォルトの名無しさんNGNG
>>195
詳しい情報ありがと〜

俺もMLチェックしておきます。
Struts1.1の構成を見た感じだと、BasicDataSourceでいい気もするんだけどなぁ…
0197191NGNG
JNDIを使用する場合でも
ActionServletのinitでlookupしてやればいいという訳ですね。

>>195
1.0.2でもGenericDataSourceのプールは簡易実装ってあったから
結局のところJNDIの利用がベストなのでは。
1.1はよリリースしてほしー。

0198デフォルトの名無しさんNGNG
入場無料

http://ime.nu/www.net-de-dvd.com/
0199デフォルトの名無しさんNGNG
StrutsのDataSource使うとActionでConnection取得してModel層まで引っ張り回さなきゃ
ならんのが気持ち悪い。
DBの接続管理なんてModel層だけで閉じておきたいところだね。
なので俺はStruts使ってもDB接続はAppサーバのJNDI使う。
0200デフォルトの名無しさんNGNG
Modelというかビジネス層にはConnectionしか渡さない。
トランザクションの制御はその前でやりたいし。
0201デフォルトの名無しさんNGNG
俺も199のアプローチと同じ。
AppサーバからのDataSource取得はビジネス層でしてる。

んでもって、とったDataSourceをDAOへ設定させて利用って感じだす。
0202191NGNG
>StrutsのDataSource使うとActionでConnection取得してModel層まで引っ張り回さなきゃ
>ならんのが気持ち悪い
ActionでfindDataSoureしてDataSouceをDAOに引数として渡すことが
気持ち悪いということかな?

>AppサーバからのDataSource取得はビジネス層でしてる。
JNDIのlookupは必ず1回のみだよね?
そのためにDataSouceオブジェクト?をsingletonで実装するということかな?
0203デフォルトの名無しさんNGNG
>>202
> ActionでfindDataSoureしてDataSouceをDAOに引数として渡すことが
> 気持ち悪いということかな?
そう。俺はEIS層へのアクセスはビジネスロジックと考えている。
Controller層でDataSourceは扱いたくない。
VCの部分はJDBC使ってもEJB使ってもWeb Service使っても同じポリシーで
設計したい。

> JNDIのlookupは必ず1回のみだよね?
そりゃそうでしょ。毎回lookupしてたらおおばあへっどが・・・・
0204デフォルトの名無しさんNGNG
将来的にEJBへのアプローチを考えたときに、java.sql や javax.sql 系の
クラス類はActionServletからいじらせたくないなぁと。
※RowSetのアプローチも考えられるけど微妙

>JNDIのlookupは必ず1回のみだよね?
>そのためにDataSouceオブジェクト?をsingletonで実装するということかな?

そゆこと。
正確にはlookupしたオブジェクトをsingletonインスタンス内にキャッシュさせておく。
キャッシュに存在しなければ再度lookupさせてくって感じね。
ServiceLocatorちっくに考えてます。
0205191NGNG
IBMのBluePrint AuctionでJNDI使ってるから見てみたけど、
Factoryとかなんとか結構複雑になるんすね。
当方、J2EEパターンとか詳しくないので。。。
http://www-6.ibm.com/jp/software/websphere/developer/download/wasstx.html

ちなみにExtension for StrutsがV1.1になってる。今気づいたよ。
以前めちゃくちゃにたたかれてたけど、どうなんだろ?
0206デフォルトの名無しさんNGNG
J2EEパターンは覚えておいて損はないよ。
GoFのデザインパターンより具体的で理解しやすいし。

俺はSunから出てるやつを読んで勉強しますた。
0207191NGNG
>>206
了解!
今、結城 浩の本でGoFのパターン覚えてるとこです。

これのことかな?
http://www.pearsoned.co.jp/washo/java/wa_java15-j.html
ほかにお勧め(易しい感じ)の本があればよろしくです。
0208デフォルトの名無しさんNGNG
>>207
それそれ、具体的なリスク含めて書いてあるからかなり参考になる。
というか、昔自分がはまった事ばかりだったりして…
Strutsとの連携考えながら読み勧めると、アプローチ方法を
見つけやすいかもしれないです。

あとお勧めは、最近出た薄いJ2EEパターンの本。
白とオレンジの表紙だったような。
あれも、分かりやすかったです。
※EJBスレにリンクがあったような…
0209デフォルトの名無しさんNGNG
スレ違いな話題を引っ張るのもアレなんだけど、せっかく見つけたので
↓208で最近出た薄いJ2EEパターンの本ってやつです。

http://www.amazon.co.jp/exec/obidos/ASIN/4822281523/250-7026755-1439463
0210191NGNG
>>209
thanx 立ち読みして決めます。
スレ違いスマソ。
0211デフォルトの名無しさんNGNG
おい、おまいらに質問です!!
おまいらはMVCのViewテンプレートにTilesをつかってますか?
それともVelocityをつかってますか?
0212デフォルトの名無しさんNGNG
>>211
Tiles勉強も含めてさわっています。
構成変更時は結構便利だけどタグがいまいち痒いところに手が届かないでつ。
Velocityはさわってません。
0213デフォルトの名無しさんNGNG
そもそもストラッツが使い物になりません
たとえばデータを100件のうち20件ずつ表示させたり
テーブルの特定の行だけ色をかえるとかできません
できるのかも?
少なくとも容易に出来ないと使えません

0214デフォルトの名無しさんNGNG
>>213
あんたが使えないだけ
Strutsのカスタムタグ使わないよりは使った方がスマートに出来るよ
0215デフォルトの名無しさんNGNG
>>213
> たとえばデータを100件のうち20件ずつ表示させたり

そもそもそのUIはどのツールとか言語でも作りにくいような。
Strutsというかサーブレットでやる場合、検索結果をSessionに保持しておいて、
URLか何かに現在の表示ページを取っておいて、Actionでそれ見て対応かな?

> テーブルの特定の行だけ色をかえるとかできません

これは簡単だろ。
ロジックタグがそのままだと思うけど。
0216デフォルトの名無しさんNGNG
> たとえばデータを100件のうち20件ずつ表示させたり
Strutsでやるんなら検索結果をsessionに入れておいて、
logicのiterateタグのoffsetとlength使う。
検索結果数もbeanのsizeタグ使って取得できる。
0217215NGNG
>>216
なるほど、そっちのほうがViewの責務をはたしてますね。
勉強になりました。

でも、このUIって前画面/次画面ボタンUIでしょ。
嫌いなんだよな〜、どの言語でやっても嵌る。
0218デフォルトの名無しさんNGNG
>>213
僕も前にStrutsでソレを実装したけれど、
そもそもそれって、Viewの役割では無いのでは?

Modeが20件用意して、Viewは単純にそれを表示すれば良いだけでは。
>>216さんのと同じ意見かな。SessionスコープのFormにデータを
入れて置いてあげるだけ。
0219デフォルトの名無しさんNGNG
EJBがあればstrutsはいらない、というわけでもないか?

DBからデータを取り出すのもアレだし
0220デフォルトの名無しさんNGNG
>>219
Strutsはあくまで、MVCの Cがメインで Vをサポート程度。
だから良いといえば良いのだけど。
0221デフォルトの名無しさんNGNG
どこかにいいサンプルあるところない?

タグリブの動作がいまいち掴めてないので、、。

ドキュメントは見たんだけど実際にソースで使っているとこが見たいでつ( ´・ω・‘)
0222デフォルトの名無しさんNGNG
>>221
JAVAワールド(雑誌)の2002/05
典型的な買い物篭なんだけど、とりあえずの部分はこれで十分かも。

あとは使う度にドキュメント調べて渡来かな・・・、やっぱ。
まあ、ドキュメントを有志の方々が日本語化しているだけ多少はましかも。
マシンとしか思えない直訳でも、辞書調べるよりは早いときあるし。
いざとなれば原文か。

0223デフォルトの名無しさんNGNG
テーブルのカラムの色を変えるやり方がやはりわかりません
特定の値によってテーブルの色を変えたい
(たとえば60点以上の人は青とか)
ストラツでは
<td><bean:write・・・</td>となりこれでは色が変えれません
(<td bgcolor=red>のようにしなければならないので)
やっぱタグlibを作らなければだめ?
(タグ¥LIBはややこしそう)
それが出来ないとSTRUTS使う気が・・・・
それとコンポボックスにDBから値を読み込んでセットする方法・
やはりタグLIB?





0224デフォルトの名無しさんNGNG
>>223
JSTLでも使えば?
0225デフォルトの名無しさんNGNG
>>224
JSTL使って解決する問題でもない

>>223
あらかじめActionのexecute(perform)でBeanに色の値を入れておいて
<td bgcolor="<bean:write・・・/>" ><bean:write・・・/></td>
でいいんでないかい?

>コンポボックスにDBから値を読み込んでセットする方法
optionsタグかoptionsCollectionsタグを使う

これぐらいの使い方ぐらい思いつかないでtablib自作は無理ぽ
0226デフォルトの名無しさんNGNG
>>225
Beanに色の判断までやらせると
Viewごとにそれぞれ別な色をつけたい場合に困るのでは?
表現に関する判断はViewでやるべきだと思う。
0227デフォルトの名無しさんNGNG
アダルトDVDの膣内射精シリーズを買っちゃった
看護婦、OL、人妻とっても安かった!

http://www.net-de-dvd.com/
0228デフォルトの名無しさんNGNG
EJBは関係ないよ。
EJB層の話はまったくからまない。

Web層のみ
0229デフォルトの名無しさんNGNG
>>219 はStrutsが何なのかもわかっていないだけ
0230デフォルトの名無しさんNGNG
もしかして、IIS5.0で使えないでつか?
Tomcat3.24 & IIS5.0で色々試したんですが、力尽きた...
0231デフォルトの名無しさんNGNG
IISとStrutsは関係ないと思うぞ
0232230NGNG
IIS5.0 と Tomcat3.24を連携させると、
普通のservletはport8080を指定しなくても
動くんども、strutsを使ってるアプリは404出てしまうでつよ
IISじゃなくて、アッパチなら方法が本家のinstallに書いてあるんでけども、
どうしたらええでしょう

早く帰りたいニダ....

0233デフォルトの名無しさんNGNG
ここのスレはStrutsが何かというより、
それ以前のヴァカが多い気がする。
>>213
氏ねよ。使えねーのはお前の頭だ。
Strutsを使えねーと語るな。
0234デフォルトの名無しさんNGNG
>>230
web.xmlの問題だろ。
0235230NGNG
>>234
うーん、そのstrutsを使ったwebappは、URLにポート番号8080を付けると
問題なく動作する
(テストの為にまだport8080は閉じてない。ちなみに閉じても駄目だった)
アパッチでは、apache-tomcat.confなるファイルを修正することで解決できる
らしいのだが、IISとの連携時に使用するisapi_redirect.dllは、それに相当する
設定が出来るんだろうか....という感じで....テケスタ....
0236デフォルトの名無しさんNGNG
233>>
そういうおまえが使いこなしてるとはおもわれず。
0237デフォルトの名無しさんNGNG
>>229
いやわかってる。
いや、J2EEの中にstrutsと競合するものがあったら邪魔になるかなとおもっただけ。
JDBCとEntityBeanでは競合する部分があるのでstrutsにも同じようなものがあったのかと
思ったよ。

けど、Turbineはstrutsとは競合せざるをえないのかな?
0238デフォルトの名無しさんNGNG
225>>
>>223
>>あらかじめActionのexecute(perform)でBeanに色の値を入れておいて
>><td bgcolor="<bean:write・・・/>" ><bean:write・・・/></td>
>>でいいんでないかい?
なるほど・・・しかしみなさんはどうしてるんですかね?
他に方法がある?



>コンポボックスにDBから値を読み込んでセットする方法
>>optionsタグかoptionsCollectionsタグを使う
>>これぐらいの使い方ぐらい思いつかないでtablib自作は無理ぽ
そのとおりですね(w
まだ勉強中なんでお手柔らかに(w

0239230NGNG
uriworkermap.propertiesの設定忘れてマスタ
一応動くようには成る

でもタグライブラリ使ってると、url中の"?"が";j"に化けるし、
gifとかは読み込まれないし、相変わらず苦戦中...
0240デフォルトの名無しさんNGNG
>>238と似たようなというか
その手の疑問なんだが

たとえばjava.lang.String[][]っていう配列の配列を
テーブルで表現するときどうするか考えたのだが
logic:iterateを2重入れ子にしてもダメだった
かわりにJSTLのforEachもつかったがダメだった
しょうがないので
string[0][i]
string[1][i]・・・
ってなかんじ
やっぱ、コレクションとか単なる配列しか無理なのか?
「配列の配列」って俺よく使うから結構困る
0241デフォルトの名無しさんNGNG
Strutsで、モジュールを動的に取り外したり追加したり出来ますか?


0242デフォルトの名無しさんNGNG
>>241
その質問で何を聞いているのかわかる奴いると思いまつか?
0243デフォルトの名無しさんNGNG
>>241
Struts1.1から追加された機能「モジュール」のことか?
struts-config.xmlを分割できるっていう。
モジュールの定義をstruts-config.xmlに書いてる時点で無理だと思うが。
0244デフォルトの名無しさんNGNG
>>243
モジュールの定義はwe.xmlに書きまつ
0245244NGNG
自爆。web.xmlでした。逝ってきます
0246243NGNG
>>244
そのとおりですた。
http://jakarta.apache.org/struts/userGuide/configuration.html#module_config-inform_controller
しったかはイクナイですな…こちらこそイッテキマヌ

逝く前に >>240
logic:iterateの入れ子でできたよ。
<%
String[][] array = new String[][]{ {"foo", "bar"}, {"hoge", "boke"}, {"uma-", "mazu-"} };
pageContext.setAttribute("array", array);
%>
<table>
<logic:iterate id="subArray" name="array" scope="page">
<tr>
<logic:iterate id="item" name="subArray">
<TD><bean:write name="item"/></TD>
</logic:iterate>
</tr>
</logic:iterate>
</table>
その前に配列の配列をよく使うあたりで不吉な臭いがするが…
0247デフォルトの名無しさんNGNG
配列の配列はできるけど、それに値をセットすることはできんね。
0248デフォルトの名無しさんNGNG
>>247
それは不要なので問題ありません。
それを必要という人は設計を間違えているのです。
0249デフォルトの名無しさんNGNG
STRUTSを使うときのツールは何をつかう
JB8?メモ帳じゃきついようにおもうが
特にエラー特定のとき
0250_NGNG
http://homepage.mac.com/hiroyuki43/
0251244NGNG
>>249
EclipseでAntとTomcatプラグイン
0252デフォルトの名無しさんNGNG
今月のJavaDeveloper買った人いる?
Strutsの影の部分は何だったの?

近所の本屋は立ち読みできないように紐で括られてるので。
ちなみにJavaWorldは買った。
0253デフォルトの名無しさんNGNG
>>252
買ってないがJakartaProject徹底攻略によれば
Beanを一つ追加するたびにstruts-config.xmlを書き換えないといけない
といいう面倒くささ。
Beanを追加した分だけstruts-config.xml
が肥大化する欠点があるということらしい。

ツールによって少しは解決するらしい。
Caminoという有料ツールについても載っていた。
ちょっと記事が古いのでこれが現状ではどうなのかは知らない。
0254山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0255デフォルトの名無しさんNGNG
>>今月のJavaDeveloper買った人いる?
>>Strutsの影の部分は何だったの?
チラッとみたけどわりかし実務的な内容だったような・・・
買うべきか
0256デフォルトの名無しさんNGNG
STRUTS初心者の者です(まだ二日目です)
JDBCからレコードセットを取得して結果を一覧表示指定のですが
アクション側
ServletContext s=getServlet().getServletContext();
SelBunruidaiFormBean p=(SelBunruidaiFormBean)form;
JDBCSQL実行
try {
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("connect ok");
String url = "jdbc:mysql://localhost:3306/sample?useUnicode=true&characterEncoding=SJIS";
String user = "";
String password = "";
Connection con = DriverManager.getConnection(url, user, password);
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from master");
while(rs.next()){
String bunruidaicd=rs.getString(1);
String bunruidainm=rs.getString(2);
}
s.setAttribute("v",e);
st.close();
con.close();
}catch(Exception e){System.out.println("error");}
一覧へ
return(mapping.findForward("ichiran"));
ループの最中の値をどの用にしてわたすか????です
vector とsetattribute getattributeを使うのはわかるのですが
どのようにしてbeanで認識させてjspで表示させるか?
logic タグを使うのをどのようにすればいいか???
ちなみにbunnruidai bunruicdを一覧表示したいのですが
わかる人教示していただければ幸いです。
いちおうネットでしらべてみしたたが対応するやつはなかってです
0257デフォルトの名無しさんNGNG
>>256
Struts以前の問題です。
基本的なJDBC APIを使ったプログラミング
java.utilパッケージの使い方
大文字小文字の区別といった基本的な文法
勉強し直してください。

ちなみに、Strutsを使わなかったらできるのですか?
おそらくそんなんじゃできないでしょう?
0258デフォルトの名無しさんNGNG
久しぶりにこんなDQNなソース見たな。
Struts初心者というか、Java初心者っぽ…
たぶん、レスしても意味わかんねーだろーから、
まずはJava初心者スレで勉強した方が良いよ。

そもそも bunruidaicd,bunruidainm の2つの変数に
延々と値をを入れて何かいいことあるの?
Attributeに設定してる変数もわけわかんねーし。
0259258NGNG
一応ループの最中の値を渡す方法ねw

List list = new ArrayList();

while(rs.next()){
 Bunrui bunrui = new Bunrui();
 bunrui.setBunruidai(rs.getString(1));
 bunrui.setBunruicd(rs.getString(2));
 list.add(bunrui);
}
s.setAttribute("v",list);

これで分からなかったら氏ね
0260デフォルトの名無しさんNGNG
ありがとうございます
予想どおりの2chらしい即効罵倒レス感謝します。
ついでにJSp側では
<logic :iterate name="v">
ここからわかりません。なぜならばbeanつかってないからです
ありがたい罵倒レスをお待ちしています
0261デフォルトの名無しさんNGNG
>>260
この辺を見てlogic:iterateタグの使い方を知るか、
http://www.jajakarta.org/struts/struts1.0/ja/target/documentation/struts-logic.html#iterate
もしくはStrutsの配布ファイルの中のstruts-exercise-taglib.warを
デプロイして、実際に使っているところを見ながら学ぶかすれ。
0262デフォルトの名無しさんNGNG
わからん。ともかく勉強するしかない
0263デフォルトの名無しさんNGNG
こんなことは勉強するとは言わないよ。
0264デフォルトの名無しさんNGNG
さんざん既出だろうけど
そこまでしてStrutsを使う意義があるのだろうかといつも思う
0265デフォルトの名無しさんNGNG
>>264
禿同
基本がわかってないやつは手を出すべきではない
とりあえず、こういうやつ→ttp://www.atmarkit.co.jp/fjava/rensai/smartj01/fig1.gif
を自分でつくってからStrutsつかうと理解深まる

しかし、理解してしまうとStruts使うのが面倒になるんだよな
設定個所多いし・・・
0266デフォルトの名無しさんNGNG
★クリックで救える○○○○があるらしい??★
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0267264NGNG
>>265
結局さ、ビジネスサイドで実装しようと思ったら
それぞれの条件にあわせて設定や機能追加しなきゃならなくて
それなら最初から比較的シンプルでカイタマイズしやすいJSTL使うし

そんなにカスタマイズするところがなければ最初からJSPそのまま使ったりしたほうが・・

と無限ループに陥ってしまう
0268デフォルトの名無しさんNGNG
わかるわかる
なんか、MVCっていうより
Strutsの窮屈な枠の中でプログラミングしてるみたいで気持ち悪い
確かに、複数人数でやるときは開発は楽なんだけどね
たとえば、ValidateやTilesは重宝している
だが、Strutsはそれらに比べて枠の規模がデカイので
四方八方ふさがれた気分
0269デフォルトの名無しさんNGNG
どーせJSFまでのつなぎなんだし、そんなに必死になってStrutsする意味ねー。
0270デフォルトの名無しさんNGNG
今週中にRC2出るよ
0271デフォルトの名無しさんNGNG
ウェブプログラミングの美しい実装方法を考え出すと難しいね。

漏れの一つ得た結論としては、そもそも Java はウェブプログラミングに向いてない。
スクリプト言語がいい。
0272デフォルトの名無しさんNGNG
それは小さいものを作るときには、でしょ
0273デフォルトの名無しさんNGNG
JSF?
JDO?
そんなの本当にあるんか?
0274デフォルトの名無しさんNGNG
JSF(java Server Faces)
http://java.sun.com/j2ee/javaserverfaces/

JDO(java Data Objects)
http://java.sun.com/products/jdo/

まあ、なごめや。
0275デフォルトの名無しさんNGNG
だからはstrutsどいうなるのよ?
すぐにでもなくなるわけでもあるまいし
0276デフォルトの名無しさんNGNG
>>275
いいんじゃない?
まぁ、仕事で扱うようになってから勉強はじめても
ぜ〜んぜん問題ないレベルの難易度だし・・・
マッタリいこうや
0277デフォルトの名無しさんNGNG
仕事でJavaでWebやる香具師はやっておいたほうがいいだろうな。
Strutsがいいとか悪いとか好きとか嫌いとか抜きにして
この先しばらくは仕事する上で持っておいたほうがいいスキルだとは思う。
0278デフォルトの名無しさんNGNG
>>272

そう。Java に単調な文字列処理は向いていない。
GUIプログラミングするときや、複雑なモデルを処理するときは実に素晴らしい言語だと思う。

現実的には文字列を処理することが多いのがウェブプログラミングだから、
そういうときは Ruby, Python じゃネーノ? と
0279デフォルトの名無しさんNGNG
>>278
その文字列処理をなくすためにStrutsとか、その他フレームワークとかあるんだと思うけど?

実際、Strutsを使って作って、文字列を処理することろって頻出するの?
そういうのって設計がおかしくない?
0280デフォルトの名無しさんNGNG
おまいら教えてください。

ロードバランサがあってセッションが使えない環境で、ブラウザからの
入力を確認画面を経由したのちDBに格納させようとしてます。

画面遷移は、入力->確認->完了の三枚ですが、入力と確認のところで
同じ FormBean を使いまわしてます。要は、scope が request で
パラメータを 1 つのFormBean で渡し続けるというものです。

で、そのときの checkbox の扱いなんですが、html:multibox を使って
FormBean に用意したString型の配列に入れますよね。そこまでは OK
です。受け取った値を(確認画面のJSPで) hidden で再度 FormBean に
渡そうとして苦戦してます。

FormBean には String[] getStrings() と setStrings(String[] strings)
がある場合に、うまいこと配列を渡す方法がわからんのです。

<html:form action="/hogeAction" scope="request">
<html:submit property="submit" value="送信"/>

<html:hidden property="param1"/>
<html:hidden property="param2"/>
</html:form>

とすると FormBean から値を受け取って、その値を hidden に埋められる
のでシンプルにかけるのですが、このときに配列だったらどうしたら
いいんだろう、と小一時間以上悩んでいます。


0281280NGNG
ちなみに logic:iterate と html:form + html:hidden でやろうとして
煮詰まってます。
0282デフォルトの名無しさんNGNG
なぜセッションがつかえない?
じゃ買い物かごみたいな機能もロードバランサーなら無理なのか?
素直にJSPでやればサーブレットがわで
param1=v¶m2=vとしてクエリーストリングでJSPでGET(w
0283動画直リンNGNG
http://homepage.mac.com/hitomi18/
0284デフォルトの名無しさんNGNG
>>280
HttpServletRequest#getParameterValues()とかわかる?

それにしてもへぼなロードバランサだな。SESSIONIDとかでアプリケーションサーバ固定できないの?
0285デフォルトの名無しさんNGNG
まあまあ、ロードバランサーの機種によってはできないこともあるさ。
>>280
で、Strutsのバージョンは?1.1RC1だったらlogicのiterateと組み合わせで
hiddenタグのindexed属性使いな。
http://jakarta.apache.org/struts/userGuide/struts-html.html#hidden
iterateタグの内側でindexed="true"としておけば
property="param" を name="param[n]"と生成してくれる。
0286デフォルトの名無しさんNGNG
>>284
はたしてヘボかな。
高可用性とスケーラビリティの面からいったら
 HttpSessionなしのステートレスアプリ>アプリサーバ固定のバランシング
だろ。

0287デフォルトの名無しさんNGNG
>>286
ちゅうかそんなの適材適所だろ?

結果として上手く行けばそれが最適。
ただ、大体の場合は隣の芝生は良く見えるし、作ったシステムは一から(=設計から)作り直したくなる。
0288280NGNG
おまいらレスありがとうございます。

セッションが使えない理由というか、ロードバランサーを扱ってるのが
他部署というのと自分自身ロードバランサーで何ができるのかいまいち
よくわかってない新人なので、セッションが使えないというより
セッションを使えないと思い込んでいる、あるいは使おうと思えば
使えるらしいけどできれば使いたくないんだと解釈してください。

>>284
> HttpServletRequest#getParameterValues()とかわかる?

極力 Struts が提供してる API とタグライブラリで済ませようと
思っています。FormBean に String 型の配列の getter/setter
を用意してやると html:multibox でそれに値を set したり、
logic:iterate で取り出したりできるんだったら html:hidden で
配列に set することもできるはずだろうと。固執し過ぎ?

>>285
>hiddenタグのindexed属性使いな。
> http://jakarta.apache.org/struts/userGuide/struts-html.html#hidden

ごっつぁんです! で、今それをやろうとして試行錯誤中です。(1.1RC1です)
いまいち使い方がよくわかりませんが踏ん張ってみるタイ。
0289285NGNG
> 極力 Struts が提供してる API とタグライブラリで済ませようと
> 思っています。FormBean に String 型の配列の getter/setter
> を用意してやると html:multibox でそれに値を set したり、
> logic:iterate で取り出したりできるんだったら html:hidden で
> 配列に set することもできるはずだろうと。固執し過ぎ?

それでいいと思うよ。がんがれ。
0290280NGNG
>>289
> それでいいと思うよ。がんがれ。

がんがります。

で、とりあえず logic:iterate は使わないで html:hidden を使って
FormBean の配列に値を流し込んでみようと思いまして色々やって
みました。

SomeForm の stringArray[] フィールドに setStringArray(String[] strings)
と String[] getStringArray() があるとして、

<html:form action="/someAction" scope="request">
<html:hidden property="stringArray"/>

<html:submit property="submit" value="送信"/>
</html:form>

これだと生成される input タグの value は String[]#toString() に
なってしまいクラスIDとかが出てしまって没。
0291280NGNG
<html:form action="/someAction" scope="request">
<html:hidden property="stringArray[0]"/>
<html:hidden property="stringArray[1]"/>

<html:submit property="submit" value="送信"/>
</html:form>

の場合input タグは

<input type="hidden" name="stringArray[0]" value="hoge">
<input type="hidden" name="stringArray[1]" value="foo">

となって一見良さそうだけど、

javax.servlet.ServletException: BeanUtils.populate

なんて例外が出てしまいました。

配列に流し込む場合 HTML には

<input type="hidden" name="stringArray" value="hoge">
<input type="hidden" name="stringArray" value="foo">

というタグが出る必要があるんですよね。試行錯誤中。
0292280NGNG
BeanUtils.populate が出る原因は ActionForm で String[] stringArray が
null だったことのようです。

private String[] stringArray = new String[10];

public String[] getStringArray() {
...
}

public void setStringArray(String[] stringArray) {
...
}

とかしてやったら出なくなりました。でもこの場合って配列の数を固定
させなきゃいけないんですよね。うーん。やればやるほどはまる。
0293ageNGNG
RC2キター!
0294293NGNG
名前間違えた・・・逝ってきます
0295デフォルトの名無しさんNGNG
Strutsイイ!!!!
0296デフォルトの名無しさんNGNG
いくつか本が出ているみたいだけど、どれが良さげ?
0297デフォルトの名無しさんNGNG
>>296
名前忘れたけど2000円のやつがイイ!!
validateとかtilesとかDynabeanとか
対応してるやつ買っとけ
0298デフォルトの名無しさんNGNG
>>297
これですか。
http://www.amazon.co.jp/exec/obidos/ASIN/4798005495/qid=1056471591/sr=1-1/ref=sr_1_2_1/250-1862850-0337052
しばらく見ないうちにStruts本増えたね。オライリーの馬本も和訳が出てるし。
0299デフォルトの名無しさんNGNG
>>298
簡単すとらっつですかね?お勧めは。
あと、おらいりいは今日発売かな?
その2冊でとりあえずはいけると思う。

0300デフォルトの名無しさんNGNG
>>299
だまされたよ。明日じゃん。
0301デフォルトの名無しさんNGNG
いままでテキストエディタ+antでしこしこStrutsしてたんですが、周りが
徐々に蝕まれだし、形勢利無く、Eclipseに乗り換えました。

結果としては大満足してるんですが、ただ一つ、
ApplicationResources.propertiesの置き場所にのみ困ってます。

基本的にはWEB-INF/classes/<パッケージフォルダ>/においてるんですが、
そうすると再ビルドのとき、必ず消されてしまうんですよ。

ここはありさんを使って毎回コピーするしかないんですかねー
0302デフォルトの名無しさんNGNG
>>301
srcの下におけばコピーされるよ。
プロパティファイル用のプラグイン使えばnative2asciiもやってくれるし。
0303デフォルトの名無しさんNGNG
関係ないけどさぁ。いまいちEclipseの良さが分からないのよ。
まず第一に全ての動作が遅い。。
エディタで入力していて表示が追い付いてくれない。
俺の環境だけなんすかね?

それと、新規ファイルを作成する時に毎回継承するクラスとかを
聞かれるのが非常に嫌だ。自分で入力した方が早いし直感的。

でも、まわりの勢いに負けそう。
0304デフォルトの名無しさんNGNG
>>303
遅いってどのぐらいのPC?

継承ボックスは書き込まずにOK押せばいい
あとで自分で書き込めばいい
0305デフォルトの名無しさんNGNG
おまえらのおかげで
Struts本、オライリーとカンタンの二冊注文しちまったじゃないか!
しかも、今日届く!
ワクワクしてきたじゃあないかぁ!!
0306デフォルトの名無しさんNGNG
>>300
すまんかったけど、”?”つけたじゃん。
ごめん。

というわけで、あっしも今日買いにいくっす。
0307デフォルトの名無しさんNGNG
>>302
コピーされますた。アヒャ(AA略
うーーん、Eclipse賢いなぁ。

0308デフォルトの名無しさんNGNG
今から勉強&開発にとりくむとしたら、1.0.2と1.1RCのどちらがよろしいでしょうか?
0309デフォルトの名無しさんNGNG
>>308
1.1じゃないの?
下の安定バージョンで覚える意味は特にないよ。
1.0を実務で使うときになったらやれば十分でしょ?
あー、これ使えねーのかよ、1.0だめだな、って。w
0310デフォルトの名無しさんNGNG
strutsの勉強本探してるんですけど
カンタンstrutsって(・∀・)イイ!!ですか?
0311デフォルトの名無しさんNGNG
来週あたりfinalリリースage
0312デフォルトの名無しさんNGNG
>302
それって自分でプラグイン書くってこと?
それとも元々ついてるの?
0313デフォルトの名無しさんNGNG
おい、さっき届いたぞ2冊
いまから読むので感想聞かせてくれよな
0314デフォルトの名無しさんNGNG
>>313
聞かせてくれって、藻前の所に届いたんだろ。
藻前の感想を書いてくれよ
0315デフォルトの名無しさんNGNG
大きさは両方ともB5変で、手にしっかりとなじみます
カンタンの方は中に書いてあるソースコードのフォントが
俺的に好みではないがわかりやすくかかれているので良しとする
Windows環境、Linux環境のそれぞれの説明がある(一応動作確認部分だけ)
使うデータベースは両環境ともPostgresSQLらしい・・・
LinuxではPostgreSQL使ったことあったが
Winでは使ったことなかったので俺的にはうれしい(Cygwin使うみたい)
「他のプロダクトとの連携」の章では
Eclipseのプラグインの使い方が載っている
オライリーのほうは、まあ言わなくてもだいたい内容は想像できるだろう
ちなみに、まだこれから読むので上の感想は
あくまでも第一印象として捕らえて欲しい
「こういう説明はありますか?」
「あの技術についての説明あるの?」
といった質問にはできるだけ答えますが
良し悪しには答えるの勇気いるので勘弁してください
(察してください)
0316デフォルトの名無しさんNGNG
>>312
http://graze.tripod.co.jp/plugin/
0317デフォルトの名無しさんNGNG
>>315
それら2冊は「JAVAは中級ぐらいの本を独学、仕事で使うのでStrutsを短期間で理解したい」
というワシの思いに答えてくれそうですか?
0318デフォルトの名無しさんNGNG
>>315
十分だと思う
内部事情まで知らなくてもいいのなら
「カンタン」の方で十分
0319デフォルトの名無しさんNGNG
ソースも追いやすいから、StrutsはMVC風の啓蒙にはいい存在だな
0320317NGNG
>>318
助かります。
早速アマゾンで買うでつ。
引き続き読破後の感想などをお願いしまつ。
0321デフォルトの名無しさんNGNG
オライリーのほうは
EJBとどう連携するかも書いてある
ロギング、パフォーマンス考察・・・
Validatorの単独使用・・・
まあ、最終的には読んどくべきか
0322デフォルトの名無しさんNGNG
>>321
机の上にドンと飾っておいて、上司・同僚を威圧したければオライリーに限るな。
よくわかるのは「カンタン」だろうが、これを会社で読むとなめられそうだから、家で読むべきだな。

てことは、

「カンタン」にオライリーの皮をかぶせて会社で読む

が最強ということか。
0323デフォルトの名無しさんNGNG
まあ、おら煎りいはリファレンス代わりとかその程度でしょ?
読むと賢くなった気にはなれる。
入門書には不適だけど、たまにピンポイントで必要なことが見つかったり。

簡単Strutsはいいよ、とりあえずその本と、StrutsについてくるWarを見れば十分じゃないの?

0324デフォルトの名無しさんNGNG
すいません「war」ってなんて読むんですか?
ワー、ウォー、戦争
「jar」
ジャー、ジェイエイアール、日本アーカイブ機構
0325デフォルトの名無しさんNGNG
「うぉー」、「じゃー」。ついでに「いやー」

「わー」って読むやつ、しね。
0326デフォルトの名無しさんNGNG
earは難しい
イィェアー(ル)
0327デフォルトの名無しさんNGNG
わー
0328デフォルトの名無しさんNGNG
うわああああぁぁぁぁぁぁ
0329デフォルトの名無しさんNGNG
おい、洒落にならなくなった
Amazonで二冊注文した俺だが
今日になってまたAmazonから「カンタン」の方だけ
送られてきました
俺、2回クリックするようなことしてないんだけど・・・
っていうか、「カンタン」の方だけ来るって言うのもおかしい
Amazonのショッピングカートデバッグしてもいいですか?
0330デフォルトの名無しさんNGNG
War=だぶりゅえいあある、昔天竜が立ち上げたプロレス団体・・・。

>>329
普通に返品すればいいんじゃないの?
2冊たのんでイネーよって。
0331デフォルトの名無しさんNGNG
>316
お前の言ってるプラグインと俺の思ってたプラグインはどうやら違うようだ。
つうか、普通このスレでプラグインっつったら org.apache.struts.action.PlugIn のことだろうがよ。
0332デフォルトの名無しさんNGNG
俺は301->302->312->316の流れがすんなり理解できたが
既にEclipse使ってるからかな。
件のプラグインも使用済みだし。
0333デフォルトの名無しさんNGNG
配列をiterateで回して、htmlTagのValueに入れるにはどうすれば良いですか?
出来れば、Beanを作りたくないのですが。
(スクリプトレットも使いたく無い)
// Action
String[] wkArray = {"hoge", "foo"};
request.setAttribute("StringArray", wkArray);

// JSP
<logic:iterate id="loop" name="StringArray" type="java.lang.String">
<bean:write name="loop">
<%-- <html:hidden name="loop" property=""/> --%>
</logic:iterate>
0334デフォルトの名無しさんNGNG
>>333
おれなら、めんどくさいこと考えるのは嫌いなので
最初からJavaクラス作って吐き出させる
0335_NGNG
http://homepage.mac.com/hiroyuki44/
0336デフォルトの名無しさんNGNG
上から読んでもストラッツ
下から読んでもストラッツ
0337デフォルトの名無しさんNGNG
     ∧∧Λ
ピュ.ー ( ゜∇゜ )つ <上から読んでもストラッツ
  =〔~∪ ̄ ̄〕   下から読んでもストウルツ
  = ◎――◎   全然ちゃうやんけボケ〜(゜∇゜)/ 「ウンマンコ」
0338デフォルトの名無しさんNGNG
帯に短し襷に長し、て感じ
0339デフォルトの名無しさんNGNG
Struts 1.1 age
0340デフォルトの名無しさんNGNG
速度と支柱の組み合わせってどうなの?
0341デフォルトの名無しさんNGNG
Tilesイイ!!!

>>340
支柱はJavaServer顔との組み合わせが多くなりそうな悪寒。
0342デフォルトの名無しさんNGNG
リリース直後の1.1で基幹システムを作るのには勇気がいるナァ
チキンなオレは1.02でいいや。
0343デフォルトの名無しさんNGNG
>>342
1.0.2だとダイナマンが使えない
0344デフォルトの名無しさんNGNG
>>342
1.1b2の頃から1.1を見ていると、1.1finalは「出たばかり」という感じが全くしない。
むしろ、ブラッシュアップされて、バグフィックスされてようやく安定版として
リリースされた、という感じ。
0345デフォルトの名無しさんNGNG
>342
全然メンテナンスされていない放置プレイの1.02の方がよっぽど不安だぞ。
0346デフォルトの名無しさんNGNG
ちょうど今、Strutsを使って開発をやってるんだけど
オライリー本すごくいいね。結構役に立ってる。

今のところ一番まともなStruts日本語本だ。
0347デフォルトの名無しさんNGNG
>>346
いや、そうでもない。
「あ、これ知りたかったんだよな」
と思うところに差し掛かかって、
ワクワクしながら読み進めると
説明が簡単に終わっていたり
0348デフォルトの名無しさんNGNG
まあ、半年前より情報は十分あるだろ。
半年前なんて、技術評論社かなんかの本だけだったような。
雑誌で取り上げられても、よくて買い物篭まで。

ほんはオライリーと簡単Strutsで十分。
0349デフォルトの名無しさんNGNG
インターネット上にStrutsで運用してるサイトってあります?
知ってたら教えてケロ。
0350ななしちゃんNGNG
ASCIIのStrutsプログラミング講座ってどうよ!?
0351デフォルトの名無しさんNGNG
>>349
2ちゃんねる
0352デフォルトの名無しさんNGNG
>>349
派遣情報サイト「はたらこねっと」
http://www.hatarako.net/
拡張子がモロに.do
0353デフォルトの名無しさんNGNG
HTMLのTABLEで表になってるとこの一行一行に
テキストボックスとかチェックボックスがある場合の
ActionFormにsetさせるための記述の仕方教えて下さい。
0354デフォルトの名無しさんNGNG
>>353
プロパティを配列型にすればいい。
0355デフォルトの名無しさんNGNG
HTMLのソースはどんな感じで、getterとsetterはどんな感じですか?
これは常識ですか?
どこかに書いてありますか?
0356デフォルトの名無しさんNGNG
>>355
そんぐらい調べたらどうだ?常識と言えば常識。というか
ちょっと考えれば誰でも思いつくことだろ?
HTMLは普通に
<input type="text" name="propertyA">
<input type="text" name="propertyA">
<input type="text" name="propertyA">
<input type="text" name="propertyA">
と複数の同名プロパティがあった場合はパラメータはStringの配列で
受け取れるだろ?(←常識。Struts固有でもなんでもない。Webやってれば誰でも知っている。)
Strutsのカスタムタグを使ったらこうなるだろ?これぐらい想像してくれ。
<html:text property="propertyA">
<html:text property="propertyA">
<html:text property="propertyA">
<html:text property="propertyA">
だからActionFormはプロパティが配列型なんだよ。
private String[] propertyrA;
public String[] getPropertyA() (←getterはプロパティの型を戻すから戻り値がString[]型)
public void setPropertyA(String[] propertyA)  (setterはプロパティと同型の引数を取る)
0357デフォルトの名無しさんNGNG
>>356
だせーやり方、やっぱみんなこの程度のやり方してんだな。だせー。
0358デフォルトの名無しさんNGNG
もっとエレガントなやり方知ってるけど教えてあげない。
0359デフォルトの名無しさんNGNG
>>358
自分の知ってること、覚えたことを
他人に教える余裕の無い人

そんな余裕の無い人の知識なんて大したもんじゃない
0360356NGNG
>>357-358
ActionFormにはMap-backedやList使ったり、
JSPではiterate使ってindexed使ったりとかか?
JSTL使えばもちっとシンプルに書けるかもな。
しかし、>>355 のレベルじゃそこまで教えても理解できんだろ。
とりあえず>>356までで充分じゃないのか?>>355には。
っちゅうことであのような回答になった。
0361デフォルトの名無しさんNGNG
知性が皆無に近い教えてくんを相手にする方は
大変でしょう。素直に尊敬いたします。
0362デフォルトの名無しさんNGNG
それでもだせぇ。
表は行の集まりなんだから、行の他の項目と無関係に列で値を抜くのはだせぇ。
0363デフォルトの名無しさんNGNG
>>362
Beanのネスト構成にするとか?
でもそれだとDynaActionFormにできないんだよね・・・・
HTMLはあくまで平面なので、俺はDynaActionFormとかで普通に受け取って、
Acitonでネスト構成のオブジェクトに変換している。
BeanUtils使うと結構簡単にできるし。
0364デフォルトの名無しさんNGNG
ちなみに複数のチェックボックスは<html:multibox/>を使わないとつらいよ。
↓テキストボックスなどは「ここの可変行数のフォームを扱うには?」を見ればできると思う。
http://homepage2.nifty.com/ymagic/struts/faq.html
0365コンスタンツNGNG
Struts猛勉強中です。

まずはstruts-exampleアプリケーションの解析をやってるんですが、
このアプリ、Sessionに追加するbeanのIDやらなにやら、コンスタント
な値一切合財をConstantsっていうクラスに格納してるんですね。
これはこれで見やすいのですが、コンスタント値を変えるたびに
リコンパイルが発生するのは少々マズーな気がします。
これってメジャーなやり方なんでしょうか。

strutsらしいコンスタント値の持ち方ってどんなんでしょうね?
web.xmlでinit-paramを指定する・・・ではあまりに普通すぎる?

イイ!やりかたがあったら教えてください。

p.s.カンタン本、タイトルとは裏腹に読むトコ多くていいっすねぇ。。
0366デフォルトの名無しさんNGNG
【教訓】普通であることはすばらしい事である。
by ジョセフ・ジョースター
0367デフォルトの名無しさんNGNG
>>365
propertiesファイルに書くのはどう?
struts-config.xmlには<message-resources />を複数書いて
複数のpropertiesを使い分けられるのは知ってる?
0368ともNGNG
みてね〜♪
http://s-rf9.free-city.net/page003.html
0369デフォルトの名無しさんNGNG
>>365
struts-exampleのソースは見てないんですが、Struts自体のソースコード
での定数の使い方から推測するに、多分Constantsで定義されている定数
って通常変更する必要のないものだけじゃないですか?(Beanのキー値なんて
一度決めたら仕様変更でも無い限り変更しないですよね)

で、頻繁に書き換えるリソースは>>367でも書かれているように
プロパティを使うのが普通だと思います。struts-config.xmlで以下のように
定義したメッセージリソースは、

<message-resources key="message.foo" parameter="resources.foo"/>

プロパティの値はActionクラスのサブクラス中で、

MessageResources resources = getResources(request, "message.foo");
String message = resources.getMessage("key");

という感じで取得できます。

0370369NGNG
ちなみにJSPからメッセージリソースを参照する場合はbundle属性に
キーを指定して、

<bean:message bundle="message.foo" key="key"/>
<html:img bundle="message.foo" srcKey="key"/>

という感じで参照できます。
0371デフォルトの名無しさんNGNG
>>365

> strutsらしいコンスタント値の持ち方ってどんなんでしょうね?

「値が固定されていること」が重要か、「値の中身」が重要か。
どちらなのかによって実装方法は変わる。

前者ならばソース中に constant として定義する。
後者ならば後に変更できるようにする。

後に変更できるようにするにしても、やり方によって運用が異なる。
 ・アプリのインストールが必要
  (.properties ファイルを起動時に読み込み)
 ・設定管理クラスが持つ再読み込みメソッドのコールが必要
  (リソース管理クラスが .propertiesファイルを読み込む)
 ・即時に更新される
  (データベースに格納している)

それぞれ信頼度とコストも異なるから、仕様や設計ポリシー、運用手順で選ぶべきだよ。
一概には言えない。
0372デフォルトの名無しさんNGNG
>>366-367
>>369-370

なるほど、勉強になります。
変更の可能性を考えて使い分けたいと思います。
0373デフォルトの名無しさんNGNG
Struts-ELって使ってる人いる?

あんまり近くで使ってる人いないから、結局Struts1.1+JSTLで
やってしまっているんだが…


0374デフォルトの名無しさんNGNG
それで手元の問題が要領よく解決するなら、無理に新技術使う必要ないでしょ。
0375デフォルトの名無しさんNGNG
>>374
最近それを理解出来ない厨房プログラマが周囲に多発&増殖しております。
『家でJSTL使った見たら、(・∀・)イイ!感じだから』、『みんなTorqueが
便利だと言ってるから』etc,,,という理由で新技術を取り込もうとする輩が
多くて。。しかも、ここでいう『みんな』は大抵は2chを指す。
0376デフォルトの名無しさんNGNG
そして愛用書はJavaWorldってか
0377デフォルトの名無しさんNGNG
>>375
まあ、実際便利かもよ。
乗り換えのコストを払う価値があるかどうかの見きわめって
結構難しいかも。
0378デフォルトの名無しさんNGNG
プログラマ視点での技術評価と、コスト・安定性・将来性を交えた総合評価は違うからね。
0379デフォルトの名無しさんNGNG
>>374
いや、単にStruts-ELの方が便利そうだったから聞いただけです。
他に使っている人がいたら参考になるし。

>>375
新技術を否定してる人が、その新技術を実際に使った事が
無いことも多いと思いますよ。
周りに2,3年前のJavaの知識で止まっちゃってる人が多いので…
※文句言ってる人がantやjakarta系ライブラリ知らない事もあるし

とりあえず、どんどん納期が短くなっていく最近の開発だと、
新しい技術やコンポーネントで、少しでも逃げ道を探して
いかないと、死にそうになります。

もうじっくり開発できる時代はないんだろうなぁ…
0380デフォルトの名無しさんNGNG
>>377
>>375の台詞例はただの例ですのでそれらが良くないとは
思いません。実際Torqueは便利だと思います。

>>379
>新技術を否定してる人が、その新技術を実際に使った事が
>無いことも多いと思いますよ。
そういう人にはその新技術がどういうメリットとデメリットを
持っているかを示して説得しないと。。。

そういう説得をせずにただ、『***は便利っぽい』といういい加減な
理由で推薦されても困るっていう話。特にデメリットを示さずに推薦
するのは悪徳商法に近いものさえ感じる(まぁ、いい過ぎかもしれんが)
0381375NGNG
>>380=>>375でし。

>>376
正解!しかも全文鵜呑み
0382デフォルトの名無しさんNGNG
>>381
JWは提灯だからなあ。
0383デフォルトの名無しさんNGNG
ちょっと質問させてください
ActionFormのプロパティに
String vName;
っていう名前付けたのですが
これを動かすとgetterメソッドがないって言われてしまいました
しばらく何でだろう?とはまっていたのですが、
なぜか勘が働き、プロパティの名前をvvNameに変えたら
動きました
既出の話かもしれませんが
getVName()はダメでgetVvName()はOKということは
Strutsが読みにいくgetterは
get+最初の文字を大文字にする+2番目は小文字に変換+残りは変更なし
ということなのでしょうか?
結局、じかんなくて試せなかったのですが
もしかしたら最初の直す前のvName場合
getterをgetVname()にすればよかったのですかね?
いちおう、アクセサはすべてEclipseの自動生成なのですが
そのときはgetVName()となっていました
これは、Strutsの仕様なのでしょうか
もしくは、アクセサ書くときのお決まりなのでしょうか
0384デフォルトの名無しさんNGNG
>>383
アクセサ書くときの決まりだね。詳しくはこちらをどうぞ。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/beans/Introspector.html#decapitalize(java.lang.String)
0385デフォルトの名無しさんNGNG
>>384
ありがとうございます
ってことはEclipseはそこまで行き届いてないということですかね?
生成時にリフレクション使ってないのかな?
まあ、あんな名前つける俺も俺だけど・・・
0386デフォルトの名無しさんNGNG
>>385
リンク先を読んだんだろうか?行き届いているというか、
EclipseにしてもStrutsにしてもJava標準の作法に従っただけでしょ。
リフレクションは必ず使っているはず。
ま、このは知らないと結構はまるところらしいよ。
Java Houseにも同様の記事があった気がする。
0387デフォルトの名無しさんNGNG
>>386
いやだからね
使っているのにどうしてEclipseはきちんと直さないの?
ってことです
あるいは命名時に警告ダイアログ出すとか
行き届いてないって言うのはそういう意味です
0388デフォルトの名無しさんNGNG
俺も知らなかったのだが、プロパティ名の2番目の文字は小文字じゃないと
いけないってこと?
0389デフォルトの名無しさんNGNG
>>388
そうなんすよ
っていうかそのルールに従って読みに行くので
「見つかりません」となりました
おれも最初の文字だけと思ってたよ
だから、みんなも知ってるのかな?的な意味で書いたわけです
0390デフォルトの名無しさんNGNG
BeanInfo実装しれ。
0391デフォルトの名無しさんNGNG
すいませんStrutsのカスタムタグなんですが
所々で「value」属性を使うと思うんですが
例えば
<logic:greaterThan name="mybean" property="point1" value="0">
コレなら動くんですが
valueを直接mybeanのプロパティから取得したいので
<logic:greaterThan name="mybean" property="point1" value="point2">
(point2はmybeanのプロパティ)
ということをやりたいのですが
「point2」という文字のまま比較対象になっているみたいなのです
なので、
value="<%=mybean.getPoint2()%>"
とやれば一応動くのですが
こういうぐあいに、スクリプトレットが混ざるのが気持ち悪いんですが
(だったら最初からスクリプトレットでいいじゃんって言う意味で気持ち悪い)
こういうものなのでしょうか?
それとも、ほかにやり方あるんでしょうか?
0392デフォルトの名無しさんNGNG
>>391
<bean:write />では?
0393デフォルトの名無しさんNGNG
>>392
ありがとうございます

以前にそれやってやっぱダメでした
念のため今やってみましたがダメです

っていうか普通のプログラマなら
JSP内に値をハードコートせずにBeanからもらってくるのが普通ですよね
みんな>>391で書いたようにやってたとしたら気持ち悪いと思わないんですかね?

それとも、私の頭の中に
「Strutsのカスタムタグ使えば、スクリプトレットは使わなくていい」
っていう、思い込みがあるのですが
これは勘違いなんでしょうか?
0394デフォルトの名無しさんNGNG
>>393
やっぱりvalue値などにbeanの値を入れたい場合はJavaのコードが絡んでくるな。
解決策としては以下のものがあげられる。
1. JSTLを使う
2. Struts-elを使う
3. JSP2.0まで待つ

これらであれば式言語が使えるからコードの量はずいぶん減るな。
式言語については以下を参照。
http://www-6.ibm.com/jp/developerworks/java/030411/j_j-jstl0211.html

正直Strutsのタグライブラリは使いづらいので、htmlのフォーム関連以外は
JSTL使ったほうがいいと思うけど。
0395デフォルトの名無しさんNGNG
ありがとうございます
やはり使いづらいですか
勉強してまいります
0396デフォルトの名無しさんNGNG
>>393
勘違いしているようだが、
スクリプトレットは <% %>
<%= %> はRuntime Expression(実行時式)
0397デフォルトの名無しさんNGNG
ビューのテンプレートにスクリプトレットを間接的にも全く含まない
方法がほしいなら、Struts-Velocityにすれ!頼むから流行ってクリ〜。

0398デフォルトの名無しさんNGNG
>>397
日本語の技術情報を多く出して、裾野を広げてください。
0399デフォルトの名無しさんNGNG
ターミナル・ベロシティってなんだったっけ?ゲーム?
04001 ◆lqgT6FBSpw NGNG
>>399
映画。
そしてスレちがい。
0401デフォルトの名無しさんNGNG
漏れもVelocityはいいと思うが
流行るかどうかといわれると…。
0402デフォルトの名無しさんNGNG
まあ、JSP作成だけじゃないからねVelocityは
0403デフォルトの名無しさんNGNG
あ?ぼけか?何が流行るかどうかだ?あ?
お前は日本しか頭にないのか?
日本で流行るかどうかが問題なのか?あ?
流行るかどうかってどこを基準に言ってるんだ?あ?
外国の人(プロジェクト)が書いたソース見てみろ!!
Velocity使ってるのが多く見られるぞ。
0404_NGNG
http://homepage.mac.com/hiroyuki44/
0405デフォルトの名無しさんNGNG
>>403
残念ながら、日本で流行るかどうかは重要なのだよ。
周りで誰も使っていないのに「外国では」と言って
周囲の知らない技術得意げに使われてもねぇ・・・・
0406デフォルトの名無しさんNGNG
Velocityのようなテンプレート言語もそうだし、タグライブラリもそうなんだが、
スクリプトレットを極力使わない理由に
「デザイナーにコードを触らせない」「デザイナーの負担を軽くする」
ってのがあると思うんだけど、テンプレート言語やタグライブラリ使うとローカ
ルマシンでブラウザを使い、直ちにデザイン検証ってのがやりにくくなり、かえ
ってデザイナーフレンドリーでなくなるのでは?

と思うのは漏れだけ?

デバッグや後々のメンテをラクにするため、という点ではわかるんだけど。

<%= %>くらいなら、デザイナに書かせてもいいよね?書かせてるよね?(確認)
0407369NGNG
>>406
Velocityだったらローカルマシンでの検証はJSPよりもはるかに
やりやすいと思うけど。
<%= %> をデザイナに書かせると、ローカルでのデザインのプレビューは
まず不可能でしょ。
0408デフォルトの名無しさんNGNG
>>407
それは言えてる。タグライブラリなんかもそうだよね。特にstruts-html
0409デフォルトの名無しさんNGNG
>>406
おまえ、Velocity使ったことないだろ。
0410406NGNG
ないよ。
>>397を見て、それほどいいものならと今日から触り始めたところ。
いままさにforumdemo.warをデプロイせんとす。
0411デフォルトの名無しさんNGNG
PHPでSmartyに慣れてる俺としては
Velocityの方がしっくりくる。
0412デフォルトの名無しさんNGNG
>>403
日本しか頭に無くは無いが、日本で流行る事は重要。
舌街はやってほすぃ。
0413山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0414デフォルトの名無しさんNGNG
Velocity仕事で使い始めたが、ホントに普及すんだろかね。
0415デフォルトの名無しさんNGNG
>>414
たとえば君が、ここで

「Velocity仕事で使い始めた。スゲーよこれ!(以下レポート)」
とカキコすることにより、興味をもつ者が増え、
投じた一石が鏡の水面に無限の波紋を描くように、
一個の原子の振動が回りの原子に作用し、やがて物質全体を
振動させ巨大なエネルギーを生み出すように、
地に蒔かれた一粒の麦が芽吹き花開き実をつけては枯れその
実が再び地に落ちを繰り返すうちに豊穣の麦畑が広がるように、
皆が使い始めやがてVelocityが時代を席巻するようになる可能
性もあるわけだ。

先ずは種蒔く人となれ。
仕事で使ってみたところの具体的な感想を求む。
0416デフォルトの名無しさんNGNG
自動送信メールの本文テンプレートとして*.vmを用意しておくような
使い方はしているけど、JSPの代替にするには機能面で心配。

VelocityでJSPを置き換えられちゃってる人に聞きたいんだけど、
カスタムタグが使えなくて困ることってほとんど無い?
0417デフォルトの名無しさんNGNG
velocity使えねーな、おい。







なんて逝ってみる。
0418デフォルトの名無しさんNGNG
後日同僚が>>417を見て『velocityって使えないね』なんて
いわない事を強く祈ってます。
同僚、後輩にチャンネラ大杉だっつーの。

あ、俺もか。
0419デフォルトの名無しさんNGNG
Velocityはいいんだけど、本流でないっていうか。。

>>416
自分で書くべし
http://nekop.programmers.jp/velocity-tools/docs/ja/
0420デフォルトの名無しさんNGNG
あ、でももりあがって欲しいですです
0421デフォルトの名無しさんNGNG
>>416
>カスタムタグが使えなくて困ることってほとんど無い?

非常にシンプルな作りなので、
カスタムタグと同様の動きは、工夫次第でできる。

Toolsを自分で拡張することで、事実上何でもありになる。
0422397NGNG
お、意外と興味ある奴多いんだなあ。ちょとウレチイ。

Cocoonみたいに、「全部XSLT」ってのもどうなんだろ。XSLTはそれ自身が
わけわからんから、難しいかな。PDFファイルとエクセルファイルが作れる
のは、おいしいかも。

くたばれJSP!というか、くたばれASPの亡霊!という気持ちがありまして。
何でロジック層をJSPで書くんだよ!というプロジェクトにただ今埋没中 つД`)
デバッグがムズイムズイ。
設計者に「あなたデバッガ使ったことないんですか?」と小一時間問い詰めたい。
0423デフォルトの名無しさんNGNG
>>422
>何でロジック層をJSPで書くんだよ!というプロジェクトにただ今埋没中 つД`)
>デバッグがムズイムズイ。
>設計者に「あなたデバッガ使ったことないんですか?」と小一時間問い詰めたい。

というか、基本中の基本、MVC知ってますか?ってね
0424デフォルトの名無しさんNGNG
strutsってJakarta TurbineやJakarta JetSpeed、 Cocoonと併用できる?
併用するの難しい?
ひとつのページにこれら全部使うの難しい?
さらに、これにくわえVelocity使うのは難しい?
0425デフォルトの名無しさんNGNG
>>424
何言ってんだお前、全部別もんじゃねーかボケ
おそらく自分で言ってて意味わかてね-だろお前
0426デフォルトの名無しさんNGNG
>>424
TorqueやEJBとくっつくんだから、そんなのできるに決まってるだろ。
難しいかどうかは君の能力しだいだと思う。
0427デフォルトの名無しさんNGNG
>>426

てゆーか、たとえば、JSPファイル内にPHPコードを埋めることってできんの?
0428デフォルトの名無しさんNGNG
>>427
それは考えればわかるんではないか
0429デフォルトの名無しさんNGNG
>>428
できないとは思うけど>>425を見ていると「できる」といっているような・・・・。

他のファイルやディレクトリに置いてリンクさせるなり委譲させるなりは
できることはわかってるけどさ。
0430デフォルトの名無しさんNGNG
さらに、PHPやJSPの中にSSIを埋め込んだり、と
0431デフォルトの名無しさんNGNG
やっぱり一番気になるのはstrutsで作ったWebpageのメンテナンス、保守、管理、
拡張可能性だのう。
strutsは再利用しやすい?

struts-config.xmlを更新するのが面倒そうな印象がある。
0432デフォルトの名無しさんNGNG
>>431
>やっぱり一番気になるのはstrutsで作ったWebpageのメンテナンス、保守、管理、
>拡張可能性だのう。
>strutsは再利用しやすい?

フレームワークって再利用部分を構成してるから
フレームワークって言うんじゃないの?

>struts-config.xmlを更新するのが面倒そうな印象がある
そんなこたーない

っていうか使ってみてよ一度でイイから
0433デフォルトの名無しさんNGNG
>>432
いや、使ったんだけどさ。
ベーンを追加するたびにstruts-config.xmlに書き加えるってのがどうも。
0434デフォルトの名無しさんNGNG
>>433
ある程度の開発してればわかると思うけど
そういう情報を
XMLにするか、HashMapにするかどんなやり方でやっても
絶対、修正個所は出てくる
おれはStruts出る前に自分でサーブレットの遷移先とリクエスト情報を
HashMapに入れるやり方でやってたが
どっちにしてもweb.xml書き換えないといけない

で、Strutsやこういうやり方の利点は新しくベーン作ったときに
その他のファイルは再コンパイルしなくてイイって言うことなんだよ
新たな要求が出てきた場合にそのclassファイルを客に渡して
struts-config.xmlを書き換えるだけでいいって言うこと

どうせ修正個所が出てくるならワザワザ再コンパイルするようなやり方と
XMLファイルを修正するのとどっちがいい?

逆に聞くけど他にいい方法ある?
0435デフォルトの名無しさんNGNG
>>434
おい、俺・・・必死だな
0436デフォルトの名無しさんNGNG
JBossならMBeanにしてホットデプロイってとこだな。
0437デフォルトの名無しさんNGNG
>>436
おいちょっと待て
言ってること正しいが
脈絡分からん
全然わからん
だれ?誰なの?なに?何が目的なの?
ホットデプロイだなんて・・・
いやらしい!まあ、いやらしい!
0438デフォルトの名無しさんNGNG
おい、このスレはなにか?
関白宣言じゃないのか?

♪もまいらおれに・・・・

♪Strutsのよさを・・・

♪教えてください・・・

♪たのむから・・・・

♪かなりむずかしい〜

♪話かもしれないけど・・・

♪Strutsのよさを・・・

♪聞かせてください・・・
0439デフォルトの名無しさんNGNG
Velocity-Tool1.0リリースあげ
これでStrutsでのVelocity利用も進むか?
0440デフォルトの名無しさんNGNG
♪strutsを仕事に・・・
♪使ったけれど・・・
♪言うに言えない・・・
♪ことだらけ・・・
♪かなり愚痴が多い・・・
♪話になるが・・・
♪もれの本音も・・・
♪聞いとくれ・・・
0441デフォルトの名無しさんNGNG
>>434
他にいい方法。

あるディレクトリに突然クラスが現れたら
antでstruts-config.xmlを自動更新できないかな?
0442デフォルトの名無しさんNGNG
Caminoを使うという手もあるけれど金がかかる。

Eclipseでリファクタリング機能もXML側に機能されるとありがたい。
そんなstrutsプラグインある?
0443デフォルトの名無しさんNGNG
XDocletが上手いことやってくれないかな。
0444_NGNG
http://homepage.mac.com/hiroyuki44/hankaku02.html
0445デフォルトの名無しさんNGNG
おれはEJB手書きしていたので
Strutsの設定ファイルなんて全然苦じゃね
しかも1枚だし
0446デフォルトの名無しさんNGNG
Strutsについて質問なんですが(他に何の質問するんだよ)
複数ページにまたがる項目を1枚のActionフォームで扱ってるんですが(そんな高度なことお前には無理)
1ページ目にチェックボックスがあるんですが(ホントかよ)
それをチェックして2ページ目に行った後「戻る」で戻り、(「戻る」だから「戻る」の他にどこ行くんだよ)
さらに、そのチェックボックスをチェックしないで2ページ目に進み(なんでまたそんなめんどくさいこと)
また、1ページ目に戻るとチェックボックスがチェックされている状態なんです(しらねーよそんなもん)

で、チェックボックスって言うのはチェックされているときはリクエストパラメータにkey=valueとして送られるんですが(まあな)
何もチェックされていない場合はそう言うのが送られずにActionFormの内容も前回のままなのかな?と、思い(思っちゃったよw)
送られてこないときにはActionFormのフラグをfalse(Actionクラスからset(false)呼び出し)に設定するようにしているのですが(汚ねーよ)
こんなやり方でいいのでしょうか?(動くならいいだろ?)
0447デフォルトの名無しさんNGNG
で、追加なのですが(なんだよまた来たのかョ)
本にはresetメソッド使えと書いてあるんですが(105Pな)
ココで初期化しても複数ページにわたる場合は(だからお前には無理)
1ページ目に戻ると前回チェックされていたとしてもクリアされるんです(あたりまえじゃん)
なのでrequest内にそのチェックボックスのパラメータが送られてきたことを
調べるためにActionFormではなく前述のようにActionのなかでrequest.getParameter("...")
でnullかどうか調べています(だから動けばいいでしょ)



0448デフォルトの名無しさんNGNG
>>446->>447

回答得たければもっと簡潔な文章かけよ。
くだらんこといれてると読む気にもならん。

0449デフォルトの名無しさんNGNG
>>443
XDocletか。それもAntで使えない?
0450デフォルトの名無しさんNGNG
兄さん>>448はマジですよ
0451デフォルトの名無しさんNGNG
>>449
XDocletに@strutsタグがあったね。
XDoclet + ant + strutsで問題なさそう。

http://xdoclet.sourceforge.net/tags/apache-tags.html#Tag%20Usage,%20Class%20Level%20(@struts)

0452デフォルトの名無しさんNGNG
 Struts本(JakartaプロジェクトカンタンStruts【秀和システム】)買った。
ここで大きな声で言おう!

『  こ  ん  な  も  の  い  ら  ぬ  !  』

 まぁ、これからはじめる人は良いかもしれないけど…。
少しだけ調べる力がある人(普通のプログラマにはある)なら
ネットで足りる。
 あえてフォローすると、Strutsタグについてのリファレンスにはなるかな?
こういうのはブラウザで見るよりも本の方がいいからね。
 俺は会社が『Struts本読んでみてよ(=人柱になれ)』と
お金をくれたから買ったんだよ。一日で読み終わるよ、まじで。
0453デフォルトの名無しさんNGNG
>>452
同感。
発売前はちょっと期待してたけど、立ち読みして買うのやめた。
1.1ではActionMappingsはDEPRECATEDなのに、そのことに一切触れず、
あたかも現役クラスであるかのような記述がある。
タグや構成ファイルの説明でも、モジュール相対と書くべきところが
コンテキスト相対と書いてあったりする。
0454デフォルトの名無しさんNGNG
>>452-453
ということは、ブランドに惹かれてオライリーのウマ本買った俺は正解ですか?
0455デフォルトの名無しさんNGNG
ウマ本どう?

うちの近くじゃ売ってないから中身が確認できん
0456452NGNG
>>454
むしろこっちが聞きたい。馬本はどう?
俺も>>455と一緒で近所に売ってないから未確認なんだよね。
でも、Strutsについての本と言ってもStruts自体シンプルな作りだから
どの本も似たような感じになりそう。
ポイントはタグ周りのリファレンスとしての利用価値と
サンプルアプリの質かな?
どちらにせよ、Struts処女じゃなければ(すべての)本の必要性は感じないかも。
0457デフォルトの名無しさんNGNG
>>
たしかに、カンタンは誤字脱字多いな
しかし、馬(オライリ)が良いかというとそうでもない
なぜか?
はっきり言って、オライリーは
なんか、どの項目も駆け足で説明しているみたいで気持ち悪いよ
で、いつもオライリーではあることだが構成(まとめ方)が悪い

Strutsつかって開発している人には実際必要ないんじゃない?
と、おもうわけよ2冊とも・・・だいたいStrutsだって進化するはずだから
実際の生の情報を吸収したほうがいいし、こんな本買うほどのものでもない
0458デフォルトの名無しさんNGNG
おい。おれ、オライリー1冊と
カンタンStrutsを間違って2冊買った
例の俺だが、
やっぱ、Struts自体それほど難解なものじゃないので
一般人は必要ない
さらに言うなら簡単ストラッツのほうを一冊誰かもらってくれ頼む
0459デフォルトの名無しさんNGNG
>>458
よかったらもらえませんか?
メアド入れてます。
0460デフォルトの名無しさんNGNG
マジレスすると、Struts本は全く不要。
ソースを追うのが一番楽に理解できるからるほんとに。
FrontControllerパターンだからエントリポイントは1ヶ所だし。

書籍のメリットはタグライブラリのリファレンスだけだな。
0461デフォルトの名無しさんNGNG
>>460
はげどう。
Strutsのソースコードはそんなにたいした量じゃないしね。
「あの本使えねぇ」「この本使えねぇ」言ってるのは
自分で調べる能力が無く何かに頼らなければならない人か
英語できない人。
0462デフォルトの名無しさんNGNG
そういえば、最近>>1にStrutsの良さを教えるやつがいないな(藁
0463デフォルトの名無しさんNGNG
>>461
あほか。
「自分で調べる能力が無く何かに頼らなければならない人か
英語できない人。」のためにそういう本があるんだろ。
0464デフォルトの名無しさんNGNG
大変よく出来ました◎
http://homepage3.nifty.com/coco-nut/
とても見やすく出来ました◎
http://homepage3.nifty.com/coco-nut/fe/ero.html
0465デフォルトの名無しさんNGNG
>>456
>サンプルアプリの質かな?
ウマ本のサンプルアプリはオライリーのサイトからDLできるよ。
ショッピングカートなサンプルアプリ等があった。まだよくみてないから質はわからんけど。
0466デフォルトの名無しさんNGNG
>>465
買ってない人は
http://sourceforge.net/projects/struts/ の
Beer4All Shopping Cart Demo が完全版?なのでこれを試して
感想をよろしければ聞かせて下さい。

おれは向いてないのかな。さっぱり分かりませんでした。
storefrontはなんか永続化のところが抜けてるみたい。
特にOJBというかTORQUEのテーブルの作り方とか
OQLとかORMがさっぱりです。
セッションBEANの方もよく分かりませんでした。
パッケージ名の分類もutilとかserviceとかframeworkとか
ああいう分類が普通なのでしょうか。
読んだ方教えて下さい。
0467456NGNG
>>466
今日明日は無理だけど(明日から出張…)、適当に
暇見つけてみてみるつもり。
わざわざURLまで書いてくれてありがとう!
0468デフォルトの名無しさんNGNG
>>463
そうだよ。だから「あの本がどうだ、この本がどうだ」と言っているヤツは
自分で調べる能力がない奴か英語できない奴に限られるんだろ?
0469デフォルトの名無しさんNGNG
>>463
ネットワークの外部接続を許可していない情報センターに常駐している奴とかな。

んで、本はバカのためにあると言う奴らは、自分がどうやって大きくなったか
考えた方がいいと思うけど。
たまたまStrutという技術を自分がやろうとしたときに、自分に多くの
予備知識があったから、入門者向けの簡単な本なんて要らないと言う結果になっただけ。

ネット上で調べられると言うのは、たまたまその技術が公開されていて、
親切な人がいろいろやってWebに載せていてくれるから。
それを受け売りして理解した気になって、偉そうな気分になっている奴の方がバカ。
偉そうな事を言うなら、その理解した事を自分なりにまとめて、本やWebで公開しろよ。

どうせ、コミュニティに貢献しようと言う気も無いんだろうけどな。
0470デフォルトの名無しさんNGNG
♪ソ ソ ソクラテスか プラトンか

 ニ ニ ニーチェか サルトルか

 みーんな悩んで大きくなった
0471デフォルトの名無しさんNGNG
情報に金を払うと言う事を知らない後進国ニッポン
0472デフォルトの名無しさんNGNG
本は、未知の概念を頭の中に導入する際には便利だよね。
それ以降は、リファレンス部分以外は役立たずになるけど。
そう思っていて買う分には何の問題もないっす。
0473デフォルトの名無しさんNGNG
>>468
そんな自明なことをわざわざ書くなってことだよ。
0474デフォルトの名無しさんNGNG
判ってないのはいらないといってる奴らだろ。

英語もできない、マニュアルも読まない、
そんな奴でも開発でStrutsを使うプロジェクトに入るかもしれない。
そういう奴を1%でも救うのがああいう本だ。

まあ、実際フレームワークってみっちり理解する一部の人と、
使えるレベルの多数の人で開発するために提供されるもんだろ?

その使えるレベルの底辺を如何に救うかが成功のポイントだと思うけど。
0475456NGNG
>>474
なるほど〜、言われてみればそうですな。
納得。
0476デフォルトの名無しさんNGNG
ちょっと疑問に思うことがあるので質問させていただきます

JSPファイルを直接呼ぶのはいけないらしいのですが
一番最初の画面だけは特別なのでしょうか?

Strutsに詳しい方教えてください
0477デフォルトの名無しさんNGNG
すいません上げさせてください
0478デフォルトの名無しさんNGNG
>>476
いけなくはないが、MVCをきっちり考えたら
リクエストを受けるのはViewのJSPではなくControllerのほうが望ましいな。
> 一番最初の画面だけは特別なのでしょうか?
一番最初だけはって何故思うのかな?
0479デフォルトの名無しさんNGNG
可愛い娘たちが貴方を癒します・・・☆
http://yahooo.s2.x-beat.com/linkvp2/linkvp2.html

0480デフォルトの名無しさんNGNG
>>476
>一番最初の画面だけは特別なのでしょうか?
いや、特別じゃないと思う。
『だめ、絶対』とは言わないけど、>>478が
言う通りリクエストは常にControllerが処理するべきだと思うな。
0481デフォルトの名無しさんNGNG
>>478,480
ありがとうございます

「一番最初」と思ったのは、本のサンプルなどでよく取り上げられる例で
loginさせるサンプルがあるのですが
それの入り口は直で.jspファイルなんですよね
で、この.jspファイルの遷移元ってどこから来たのでしょう?ということになるのです
ですから、一番最初は特別なのかなとおもいまして・・・
とくに、こういう場合
(最初にBeanの値を参照しなくてもいいので)例えばtextフィールドの中は空欄でも良い訳ですから
最初は特別なのかなと言う思いに拍車がかかったのかもしれません

で、また変なことなのですが.doっていうのはなんかセキュリティ的にいけないのかなと思い
変更したいのですがコレはStruts的には許されるのでしょうか?
0482デフォルトの名無しさんNGNG
>doっていうのはなんかセキュリティ的にいけないのかな
この根拠がまったくわからん。なんで???
0483デフォルトの名無しさんNGNG
>>481
JSP を直接参照するように設計するのも、まちがいはまったくない。
ただ、JSPを直接参照する場合には、Servletサイドで行うようなintelligentな処理をまったく行えなくなる。
これは後々おおきなデメリットになるよ。

必ず ActionServlet を介してから JSP なりの presentation layer に転送するのがベストプラクティス。
/WEB-INF 以下に JSP を配置することもある。
こうすれば、必ず ActionServlet を経由することになるし、JSP を直接リクエストされることもなくなる。



servlet-mapping には、*.do ではなく /do/* を使ったほうがよいとされているな。
たとえばExcelファイルを出力したりする場合に、拡張子で問題が起きることがあるらしい。

「セキュリティ的にいけない」というのは確かに意味がわからん。


0484デフォルトの名無しさんNGNG
>>483
/do/* を使うとモジュール分割できなくなるよ。
ちょっと機能が多くなるとモジュール分割はとてもイイ!のに。
0485デフォルトの名無しさんNGNG
拡張子がdo
↓
Struts使ってやがるなこのサイト (メモメモ・・・
↓
Struts重大なセキュリティーホール発見される
↓
よっしゃあのサイト攻撃だ!

ってことじゃない?w
Strutsのセキュリティーってなによw

でもまあ、個人的には[do]を変えたいって言うのは賛成だな
だってダサいんだもんパチスロのMr.Doを思い出す
0486デフォルトの名無しさんNGNG
>>485
>拡張子がdo
>↓
>Struts使ってやがるなこのサイト (メモメモ・・・
WAFも.doだろ。
なんでそれだけでStrutsに限定されるのか意味不明。

>>481
同梱サンプルやドキュメントに倣って.doを使う例がよく見うけられるが、
Struts的には変更しても無問題
0487デフォルトの名無しさんNGNG
Perlやなんかで組んで、拡張子だけjava風にしてるサイトだってあるだろ。
IBMのどっかのサイトでそう薦めてたぞ。
0488デフォルトの名無しさんNGNG
>>487
ソー希。
0489デフォルトの名無しさんNGNG
>>487
こんな拡張子はいやだ
http://www.2ch.net/2ch.do
0490デフォルトの名無しさんNGNG
お客さんに『拡張子は .do じゃなくちゃ駄目なの?』って聞かれて
『いや、理論上は何でも出来ますよ。』って答えたら『拡張子を
サイト名と同じにしてくれ』っていわれた。

ほんとにいいのか、お客さんよ〜。
http://***/logon.2ch
http://***/adduser.2ch
http://***/userlist.2ch
みたいな……。

………、いいかも。。。(藁
0491デフォルトの名無しさんNGNG
>>490
別にいいんじゃない?
0492デフォルトの名無しさんNGNG
>>491
2chを例にしたからよく見えるですよ、たぶん。。

実際のサイト名は10文字あるですよね。
例えるなら

http://***/logon.applejapan
http://***/adduser.applejapan
http://***/userlist.applejapan

こんな感じ。。。
別に悪いとは思わないけど、ちょっとやだなって…
0493デフォルトの名無しさんNGNG
*.aspに変えてみた
「へー.NETですか?」
「いえJavaです」
「JavaでもASP使えるんですか?」
「Javaは言語も超越します」
「さすがですねJava」
0494デフォルトの名無しさんNGNG
.douyo に変えてみた。
パラメータ付きのURLなんか
xxx.douyo?xxx=yyy
どうよ?
0495デフォルトの名無しさんNGNG
>>494
洒落が効いててグッド
0496デフォルトの名無しさんNGNG
>>494
動かすたびに動揺しているように見える。
0497デフォルトの名無しさんNGNG
>>494
ついでに、アクションのpathの値も /ibmとか /microsoftにすると
/ibm.douyo?xxx=zzz とか /microsoft.douyo?aaa=bbb とかw
0498デフォルトの名無しさんNGNG
/microsoft.douyo?bug=many&user=many
0499デフォルトの名無しさんNGNG
■■■■■■■■■■■■■■■■■■■
■■□□□□■■□□□■■□□□□■■
■■□■■□■■■□■■■□■■□■■
■■□■■■■■■□■■■■□■■■■
■■□■□□■■■□■■■■■□■■■
■■□■■□■■■□■■■□■■□■■
■■□□□□■■□□□■■□□□□■■
■■■■■■■■■■■■■■■■■■■
0500デフォルトの名無しさんNGNG
>>494
>「JavaでもASP使えるんですか?」
>「Javaは言語も超越します」

このあたりちょっとおかしいような気が。
0501デフォルトの名無しさんNGNG
おまいら知ってた?
Actionがスレッドセーフじゃないこと。
インスタンス変数使っていたんだけどさ。

試験で他のクライアントの結果がでてきちゃってさ。ビクーリしたよ。
よくよく調べてみればinitializeでインスタンス作って、使いまわしてるなんて知らなくって。
やっぱframework使うにしても、中身と動き知ってから使うべきだな。

0502デフォルトの名無しさんNGNG
ちゃんと reset() メソッドをオーバーライドしているか?
0503デフォルトの名無しさんNGNG
>>502
ActionFormの話は誰もしてないぞ。
0504デフォルトの名無しさんNGNG
>>501
ちゃんとUsersGuideに書いてあるのだが・・・
http://jakarta.apache.org/struts/userGuide/building_controller.html
4.4.1 Action Class Design Guidelines 見れ。
0505デフォルトの名無しさんNGNG
>>504
ほんとだ。書いてあるね。しかも太字でご丁寧に。
全部一読しておくよ。
0506デフォルトの名無しさんNGNG
StrutsでPCからと、ケータイからのアクセスを振り分ける処理でFilterを使いたいのですが
Filterの実装について決まり事はありますか?
普通のサーブレットみたく、web.xmlに指定してやろうと思うんですが
問題はないですよね?
0507デフォルトの名無しさんNGNG
どういう発想をしたらActionのサブクラスにインスタンス変数を定義したくなるのか興味津々
0508デフォルトの名無しさんNGNG
>>507
外注の新人と外注のPMに聞いてくれ。
ソース見なかったおれも悪い。
0509デフォルトの名無しさんNGNG
>>506
問題はない。Filter継承してマッピングするだけだ。
でもURLの振り分けに使うだけだったら設計考え直したほうがいい。

0510デフォルトの名無しさんNGNG
>>508
まあ実際のところ、スレッドセーフか否かなんて意識したことも無くて
単にインスタンス変数を使っていないから問題に気付いていない、
っていう連中も沢山いるんだろうね。
0511デフォルトの名無しさんNGNG
>>509

ありがとうございます
とりあえず、logの取得場所を同じにしたい要件なんです
0512デフォルトの名無しさんNGNG
すいません
質問なんですが
Actionサーブレットからの遷移先をJSPにするのではなく
XML文書をXSLでHTMLに変換してそれをそのまま出力(PrintWriter#print())としたいのですが
どうするのが一番イイのでしょうか?

いまは、
1.struts-config.xmlの<action-mappings>でforward要素書かない
2・Actionサーブレットの戻り値をnullにする
一応、これやれば動くのですが
このやり方でいいのか心配なのです。
こういう場合にStrutsには他のやり方用意されているのか?というのが知りたいのです。

Strutsマスターの方おしえてくださいお願いします
0513デフォルトの名無しさんNGNG
>>512
わたしんとこで、帳票だすのにiTextでやてって、
ActionのForwordは書かずに、Responceに流して次画面遷移してるよ。

回答になってないかな?
0514デフォルトの名無しさんNGNG
>>512
基本的にはそれでかまわないんだろうけど、
「リクエスト処理やDB処理などを行うアクション」と「XSLT処理とHTML出力を行うアクション」
は別にしといた方が良いと思う。後者がJSPの代わりにViewになるようなイメージ。
0515デフォルトの名無しさんNGNG
>>512
「XML文書をXSLでHTMLに変換してそれをそのまま出力」だけを行うServletを用意して
IncludeActionかForwardActionを使うという方法もある。

<action path="/xmlToHtml"
type="org.apache.struts.actions.IncludeAction"
scope="request"
parameter="/path/to/xmlConvertServlet">
0516デフォルトの名無しさんNGNG
TwoStepViewパターンを意識しておくことを薦める。

1stStep: 論理的画面として出力
2ndStep: 物理的画面として出力

たとえば XML出力→XSLT変換を加えてHTML出力とか。
表示に必要な内容を保持するオブジェクト出力→JSPで加工したJSP出力とか。
0517デフォルトの名無しさんNGNG
XMLで一時ビューを出力するようにしておけば

→GUIに貼り付け
→PDFで出力、印刷
→HTMLで出力
→Word、EXCELなどで出力
等など

といったエンジンを作っておけば、どんなビューでも
簡単に作れるようになるね。Apache-Cocoonはステキだね。
0518山崎 渉NGNG
(^^)
0519デフォルトの名無しさんNGNG
strutsでフィルター使いたいのですが
それに相当するクラスっていうのは用意されているんですか?
いまは、普通にフィルター実装してるんですが・・・どうなんでしょう?
0520デフォルトの名無しさんNGNG

フィルターは2.0からみたいなので、それしかないな
ただ、アプリ全体なら手間かかんないけど
一部だけ使うのならweb.xmlの編集しないといけないな
わかってるだろうけど
0521デフォルトの名無しさんNGNG
http://www.jttk.zaq.ne.jp/akiroom846/
0522デフォルトの名無しさんNGNG
すいません、
入力フォーム使わずにほかの処理だけする
Actionクラスはないのでしょうか?
0523デフォルトの名無しさんNGNG
>>522
ある。っていうか
入力フォーム使うか使わないかは自由だが・・・?
0524デフォルトの名無しさんNGNG
Strutsのモジュール機能を使って管理者用のモジュールを
作ろうと思っています。そして以下のようなアクションマッピングを
記述したのですが、一つ納得がいかない箇所が有ります。

モジュール名:admin

<action
 path = "/top"
 type = "package.name.AdminAction"
 scope = "request"
 input = "/WEB-INF/pages/admin/top.jsp">
  <forward name="success"path="/WEB-INF/pages/admin/top.jsp" />
</action>

このように記述したところ/WEB-INF/***としている箇所がすべて/admin/WEB-INF/***
というように解釈されます。
しかし、それだと一般から直接アクセスされるところにjspを置く事になってしま
います。それはしたくないのですが解決策は有るのでしょうか?
0525デフォルトの名無しさんNGNG
<forward name="success"path="/WEB-INF/pages/admin/top.jsp" />
は
<forward name="success"path="/WEB-INF/pages/admin/top.jsp" contextRelative="true" />
とする。
input = "/WEB-INF/pages/admin/top.jsp"
は
ForwardActionを使ったactionマッピングを別途定義する。
<action path="/top"
parameter="/WEB-INF/pages/admin/top.jsp"
type="org.apache.struts.actions.ForwardAction" />
そして、inputからはそのactionを呼ぶ
input = "/top.do"
0526デフォルトの名無しさんNGNG
>>525
なるほど。そうやってやるのですか。
でもそうするとforwardは良いですが、inputの為にForwardAction
を別途用意しなくてはいけないということになりますよね(設定ファイルに
記述するだけとはいえ…)。
とにかくこれで試してみます。
0527526NGNG
『ありがとうございます』
の一言を忘れてました。
謝
0528デフォルトの名無しさんNGNG
>>524
pagesディレクトリをadminディレクトリに作成して、そこにjspを配置。
一般クライアントからpagesディレクトリ以下へのアクセスを禁止する

WEB-INFディレクトリ以下にページを置くのって、
単にWEB-INFディレクトリへの一般クライアントのアクセスが禁止されてるからでしょ?
0529デフォルトの名無しさんNGNG
>>524
>>528の意見を勧めるよ。
完全にサーブレット介してのJSPアクセスしたいんであれば
web.xmlで*.jspのアクセスを禁じるとかやれば良いんではないの?

とりあえず、WEB-INF以下にjspファイル置くのはオススメしません。
※weblogicで痛い目に遭います…
0530デフォルトの名無しさんNGNG
>>529
そうなのかぁ。
SturtsコミッタのHusted氏のWebサイトにあるThe Struts Catalogでは
"Place all Java ServerPages below WEB-INF"なんてあるんだけどね。
http://husted.com/struts/catalog.html
まあ、そこにも
"Note: This is not supported by all containers (e.g. WebLogic). "
なんて注意書きはあるんだけど。
0531デフォルトの名無しさんNGNG
WEB-INF以下のリソースをアクセスできないっつーのはWebLogicが悪いんだよな。
Servlet2.3仕様から「Servletコンテナからはアクセス可能」と名言されてるのに。
0532デフォルトの名無しさんNGNG
>>531
まあ、そうなんだけど実際WebLogic使う機会って多いからさ・・・

どうせならどのAPPサーバでも動くようなディレクトリ構成に
しておいた方が良いよ。
0533デフォルトの名無しさんNGNG
Velocity Tools 1.0 リリースAge
0534デフォルトの名無しさんNGNG
>533
ずいぶんのんびりした報告だな(w
0535デフォルトの名無しさんNGNG
Torque ってどうよ?
0536デフォルトの名無しさんNGNG
>>535
書く場所も違うし
時代も違う
どこから現れたんだ?w
0537デフォルトの名無しさんNGNG
>>536
どこに書けばいいんだ?
いいじゃん、元Jakartaファミリーだろ。
0538デフォルトの名無しさんNGNG
http://pc2.2ch.net/test/read.cgi/tech/1049030272
直ぐ近くやんけ。
0539デフォルトの名無しさんNGNG
>>538
君、いい人だね。
0540デフォルトの名無しさんNGNG
>>539
ついでに書き込んでおいてやったぞ
0541デフォルトの名無しさんNGNG
>>540
Torqueについては、そのスレに死ぬほど書いてある。
過去ログ読んでから書けや。
0542デフォルトの名無しさんNGNG
>>540
いい人だが有能ではないね。
0543デフォルトの名無しさんNGNG
ああ、またTorqueの被害者が一人...
0544デフォルトの名無しさんNGNG
>>543
ていうか、そういう書き込み見てて恥ずかしいからやめれ。
自分で使いこなせてないって宣言してるようなもん。
機能をきちんと把握してれば、十分業務レベルで使いこなせてるぞ。

アーキテクチャーがよろしくないとか、そういう話は別ね。(念のため)
0545デフォルトの名無しさんNGNG
>>544
すまんのう。
3.0 beta2の頃の駄目駄目なイメージがいまだに残ってるもんで。
0546デフォルトの名無しさんNGNG
>>545
いったい何が駄目駄目なんだ?
具体的に挙げてくれ!
0547デフォルトの名無しさんNGNG
最近、とりあえずTorque叩いとけ的な雰囲気を感じるね。
単に動作検証に失敗してるだけなんじゃない?
0548デフォルトの名無しさんNGNG
>>547
そうなのかあ。
何が駄目なのか具体的に挙げてくれれば、グルたちが助けてくれるだろうにのう。
0549デフォルトの名無しさんNGNG
Torque別に不満ないけどなぁ。
あえて言うとすればパフォーマンスくらいかな?
適当にSQL直で書くよりはいいけど。
0550デフォルトの名無しさんNGNG
>>549
パフォーマンスって別にSQL実行するだけでしょ?
ひょっとして JOIN せずに毎回DB見に行ってるとか?
0551デフォルトの名無しさんNGNG
>>538
が Torque スレ教えてくれた。
0552デフォルトの名無しさんNGNG
>>550
Oracleだと、ちょっとしたSQLの書き方によって死ぬほどパフォーマンスが
変わったりするので、意図したとおりのSQLを吐けないと困るときがあるのよ。
んで、吐かれるSQLをいちいちチェックしながらTorque(に限らないORM)で書いて
いくと、結局直でSQLを書くのと変わらないというか…
納品物のソースにはSQLは直接出てこないので、見た目綺麗になるけど。

まぁ、Oracle使わないといけない時点で、ORMを使うという選択肢はないんだけどね…
0553524NGNG
>>528-529
返事遅れましたがレスありがとうございます。
おっしゃる通りWEB-INF以下にjspを置くのは
直接のアクセスを禁止する為です。

いろいろ考えた結果>>528氏の意見でやってみようと思います。
(ほとんど修正要らないし)

なにより設定ファイルがスッキリするのがうれしいっすね。
0554デフォルトの名無しさんNGNG
>>552
Torqueじゃないけど、うち今使ってるのよ。
ORMとOracleの組み合わせ…

参照の組み合わせはすべてviewで作成したんだけど
保守に入ってそのアプローチで良かったと死ぬほど思った。
データ件数大幅に変わって、実行計画が変わっちゃったときとか青ざめるよね。
0555デフォルトの名無しさんNGNG
>>517
> XMLで一時ビューを出力するようにしておけば
ってのに大変興味あるんですが、いいツールあります?

Velocityあたりでできるんでしょうか?
会社でだれかがjtiddyとかいってたけど微妙に違う気がする。。。。

0556デフォルトの名無しさんNGNG
>>555
まあ、ツールって言うか
サーブレットCocoon使ってみなさい
0557デフォルトの名無しさんNGNG
ちょっと質問なんですが、

DynaValidatorFormで、scopeをrequestで使用した場合はform-propertyの内容が
毎回初期化されますが、scopeをsessionで使用した場合は最初の一回初期化され
ずっとform-propertyの内容が保持されます。

で、あるページに来たらform-propertyの内容を初期化したいので、下記のように
初期化しているのですが、form-propertyの数が多いので大変です。ほかによい方
法がありましたら教えてください。

BeanUtils.setProperty( form, "aaa", "" );
BeanUtils.setProperty( form, "bbb", "" );
BeanUtils.setProperty( form, "ccc", "" );
BeanUtils.setProperty( form, "ddd", "" );
:
:
0558デフォルトの名無しさんNGNG
>>557
resetメソッド呼べばいいじゃん
0559デフォルトの名無しさんNGNG
>>558
でも、Dynaだぜ?

>>557
正しいやり方はこうだ!

request.getSession().removeAttribute("属性名");

0560&rlo;ンアア&lro;naMsturtSNGNG
>>559
そういうことだ
0561557NGNG
>>558-559
すばやいレスありがとうございます。

sessionの属性を削除するんですか、それは気が付きませんでした。

ありがとうございました。
0562デフォルトの名無しさんNGNG
>>561

Servletをきちんと理解する前に
Strutsに手を出しただろ?
それじゃ困るんだよ。
基本だよ基本。
0563517NGNG
>>555
Apache-Cocoonだって書いたつもりでしたが。
http://cocoon.apache.org/
0564デフォルトの名無しさんNGNG
>>559
resetメソッドあるよ?なんでDynaだと呼んじゃいけないのさ?
http://jakarta.apache.org/struts/api/org/apache/struts/action/DynaActionForm.html

struts-config.xmlにinitial書いているのならresetじゃなくてinitializeメソッド呼べ。
initializaなら「Initialize all bean properties to their initial values」だ。
0565デフォルトの名無しさんNGNG
>>564
まあな、
だが基本は>>559のやりかただ!なぜか?
チェックボックスとかもしあった場合にはresetは効かない
そういう意味でもsession.removeAttribute(attName);
の方がいい
0566デフォルトの名無しさんNGNG
>>565
> チェックボックスとかもしあった場合にはresetは効かない
ハぁ?
0567デフォルトの名無しさんNGNG
>>565
中途半端な知識で混乱させるのいいかげんにやめれ
0568565NGNG
>>566-567

ん?おまえらDynaActionFormの
resetメソッドを好きなように実装できるの?そんなばかな・・・
それとも、言っている事が上手く伝わってないのか・・・
0569デフォルトの名無しさんNGNG
> チェックボックスとかもしあった場合にはresetは効かない
これ解説してくれ
0570デフォルトの名無しさんNGNG
>>568
form-propertyを初期化したいのならinitialize使えばいいわけだが
0571565NGNG

>>569
>チェックボックスとかもしあった場合にはresetは効かない

チェックボックスの値をクリアするにはresetメソッドの中で
チェックボックスをクリアする処理を自分で書かないといけません
コレはなぜなのかまずわかりますか?
チェックボックスの値はチェックボックスがチェックされているときしか
リクエストパラメータに送られません
なので、最初にtrueを入れてフォームのSUBMITボタン押したとします
そのあと、今度同じフォームでチェックを外したとしても
リクエストパラメータには「checkbox1=false」等というパラメータは送られません
つまり、Formの中ではずーっとチェックボックスに当たるプロパティはtrueになります
なので、resetメソッドの中でチェックボックスをクリアする処理を自分で書かないといけません

これと同じでDynaActionFormのresetメソッドの中でチェックボックスをクリアする処理は自分で書かないといけません
でもコレは不可能です。DynaActionFormはそのまま使うクラスなので無理です。




>>570
>form-propertyを初期化したいのならinitialize使えばいいわけだが

initializeは、どこでどのタイミングで呼びますか?


0572デフォルトの名無しさんNGNG
>>571
ご苦労さんwよくできました。
initilizeは好きなタイミングで呼べばいいんじゃないの?
>>557が一生懸命BeanUtils・・・と書いているタイミングで呼べば。
0573デフォルトの名無しさんNGNG
>>571
「チェックボックスとかもしあった場合は」じゃなくてDynaActionFormでは、と言うべきでは?
だってチェックボックスの有無に関係なくDynaActionFormではそのままではプロパティ値の初期化はできないのだから。
それとも、チェックボックスじゃない場合はDynaActionForm使った場合でもプロパティ値の初期化できるとでも?
0574565NGNG
>>572

>ご苦労さんwよくできました。
コレはどういう意味が?;;

>>573

初期化は出来ます

resetは出来ません←たぶんこっちが言いたいのだと思いますが・・・

そうですね
0575デフォルトの名無しさんNGNG
>>565のいってる事は合ってると思うよ。
反論してる奴の方が意味分からん。

sessionスコープでのチェックボックスの取り扱いって
色々面倒くさいんだよね…
0576575NGNG
あと、DynaActionFormのreset実装だけど、必要なら個別に継承を利用したらいかんの?
Struts1.0.2でActionFormを死ぬほど作ってたから、粒度が細かくなってもあまり違和感がない・・・
※いや、試してないんだけどね。
0577デフォルトの名無しさんNGNG
継承ならDynaの意味ないですので
0578デフォルトの名無しさんNGNG
>>577
え?Dynaの機能を利用しつつresetとか特殊な処理とかを実装する
拡張継承って意味なんだけど。
プロパティとか主要validateを書く必要ない分、楽にならないかな?
0579デフォルトの名無しさんNGNG
リセットするプロパティ名とかどうやって取得するの?
それやるぐらいだったら、最初からActionFormつかっても良いのではないでしょうか?
という意味です。
0580デフォルトの名無しさんNGNG
>>579
プロパティをstruts-config.xmlだけの記述で済ませたいって事だよね。

プロパティ記述がActionFormとstruts-config.xmlに分散しちゃうのは
やっぱだめなのかな。
※LabelValueのListとかをActionForm側に持たせたり。

項目数が多いときにDynaとValidatorの組み合わせが素敵だったもんで…

0581デフォルトの名無しさんNGNG
reset()って呼び出すものじゃなくて、呼ばれるものだろ?

フレームワークがreset()を呼び出したときに、
必要な処理(booleanなフィールドをfalseにするとか)を行うものだと思っていたが。

フォームビーンがセッションスコープの場合は再利用されるから、
reset()のタイミングで初期化が必要なわけでしょ。
0582デフォルトの名無しさんNGNG
>>581
明示的に呼んじゃいけないわけじゃないだろ?
アプリケーションから呼ぶと何か不具合でもあるのか?
フレームワークからしか呼んでは行けない理由でもあるのか?
0583581NGNG
>582
おっしゃるとおり、呼び出しても何の問題もありません。

ただ >>557 の状況で、reset()にクリアを実装してしまったら、
ページ毎にreset()が呼び出されて、フィールドがクリアされてしまうから、
元も子もないと思うのだが、間違っているか?
0584デフォルトの名無しさんNGNG
詳しく説明するとだいたいあっていますが、随所に誤解を招く発言が気になりますね。
・reset()って呼び出すものじゃなくて、呼ばれるものだろ?
 →そうとも限りません
・ チェックボックスとかもしあった場合にはresetは効かない
 非常に紛らわしい表現です。普通はチェックボックスがある場合はresetを使え、と言われていますが
 この表現だとチェックボックスがあるとresetメソッドが使えないように読めますよね?

565と581が同一人物かはわかりませんが。
557は572が書いたようにinitializeを呼ぶのが一番手っ取り早いと思います。
呼ばれるタイミングにもよるがremoveAttribute使った場合はパフォーマンスが気になります。
そのたびに毎回DynaBeanオブジェクトを新たにインスタンス化しますので。
0585デフォルトの名無しさんNGNG
565の自作自演と捕らえても宜しいでしょうか?
0586デフォルトの名無しさんNGNG
>584
今まで、resetを呼びたいと思ったことは無いんだが、
どういうときに呼びたくなるのか、教えてくれ。

Actionの中から呼ぶんだよな?

Actionの中に入ったときには、すでにリクエストのパラメータによって
フォームビーンの値はセットされているだろ。
それからreset()呼んで、どう役に立つんだ?
0587デフォルトの名無しさんNGNG
レベル低すぎ
0588デフォルトの名無しさんNGNG
どうでもいいんだけど、DynaActionFormは、私はいつも使っていません。
プロジェクトでも禁止にしています。

Map と同様で、DynaActionForm の場合、キー名の文字列が間違っていてもコンパイルでは
わからないですよね? 動かしてみないとわからないため、私はどんな小さい ActionFormでも、
いつもクラスをわざわざ作成しています。

じゃぁおまえは Map を使わないのか?と言われるとそんなことはないけど....
0589デフォルトの名無しさんNGNG
>>588
それじゃ、BeanUtilsも使えないな。
っちゅうか、Strtus使えないじゃん。そんなこと言ってたら。
コンパイルは通るけどstruts-config.xmlの
<form-bean>や<acrion>に書くクラス名が違っていたら・・・
0590デフォルトの名無しさんNGNG
>>589
避けられる範囲のもは避けるということだろ。
日本語の読解が苦手だとチーム開発で苦労するよ。
0591_NGNG
http://homepage.mac.com/hiroyuki45/jaz01.html
0592デフォルトの名無しさんNGNG
<html:text property="hoge[0]" value=""/>
<html:text property="hoge[1]" value=""/>
<html:text property="hoge[2]" value=""/>

でクエリーに
yesI.do?hoge[3]=aaa
と直接入れられると問答無用でjavax.servlet.ServletException: BeanUtils.populate
が発生します

validateチェックとか例外ハンドリングもできないしどうすりゃいいの?
0593デフォルトの名無しさんNGNG
>>592
向こうが勝手に配列にしてくれるので

<html:text property="hoge" value=""/>
<html:text property="hoge" value=""/>
<html:text property="hoge" value=""/>

と、書いてください
0594592NGNG
>>593

うーん、それだと配列の順番がバラバラになるから困るんだよね
実際には
<html:text property="hoge[0]" value=""/> <html:text property="foo[0]" value=""/>
<html:text property="hoge[1]" value=""/> <html:text property="foo[1]" value=""/>
みたいに対応してるし

わざわざそんなクエリー入れる奴はいないだろうけど500エラーは何か恥ずかしい
0595デフォルトの名無しさんNGNG
>>594
バラバラってどういうこと?
書いてる順番になるはずだが・・・
ソースの表示でHTMLを見てごらんよ
0596デフォルトの名無しさんNGNG
>>594
500エラーが恥ずかしいってだけなら、エラーページ用のJSP用意してweb.xmlでエラーページ指定してやれば?
0597デフォルトの名無しさんNGNG
っていうか、パラメータでエラーになっちゃうような設計がマズイ
面倒だけどパラメタの検証するようにつくれよ
無効な値の場合TOPページ飛ぶようにするとか・・・
0598592NGNG
>>595

そのままでは
<html:text property="hoge" value=""/> <html:text property="foo" value=""/>
<html:text property="hoge" value=""/> <html:text property="foo" value=""/>
↓
<input type="text" name="hoge"> <input type="text" name="foo">
<input type="text" name="hoge"> <input type="text" name="foo">

となるだけで
確かにlogicタグのループ内ででindexed="true"にすれば勝手に配列にしてくれるけど
結局[0] .. [1]というようなnameになっていまうわけなんですよ

>>596
まあ、そうするしかないんだが最初からエラーがでるのわかってるのに設計ミスに
気付いてないと思われそうじゃん?そんなことないか
せめてvalidateのところまで到達してくれればerror吐けるのに

>>597
検証したいんだけどどこでできるかと悩んでるわけです
今のところ解決策としてはFilterでActionServletにくる前に検証してリダイレクトさせるくらい
しか思いつかないっす

ちなみにstrutsのexampleで試しても500エラーでます
こういう配列使って構築してるサイトならどこでもそうなると思うけど
0599デフォルトの名無しさんNGNG
>>592
力になりたいのだが、何をやりたいのかよくわからん

まず、ActionFormの中では

String[] hoge=new String[5];//数は適当だが
String[] foo=new String[5];
とかなってるだろ?

JSPの方は
<html:text property="hoge" value=""/> <html:text property="foo" value=""/>
<html:text property="hoge" value=""/> <html:text property="foo" value=""/>
↑のままでイイ

でvalidate()メソッドを実装すればいいんでないの?


ただし、このフォームのページにもう一度戻ってくる必要がある場合
教えてくれ(この場合、俺も散々悩んだからな・・・1スレでは足りない)
0600592NGNG
>>599
ありがとうございます

具体的な例として複数の名前:フリガナを入力するフォームがあるとします
htmlではこうなりますよね

名前1:<input type="text" name="name[0]">フリガナ1:<input type="text" name="kana[0]">
名前2:<input type="text" name="name[1]">フリガナ2:<input type="text" name="kana[1]">
名前3:<input type="text" name="name[2]">フリガナ3:<input type="text" name="kana[2]">

idex 0→名前1:フリガナ1
idex 1→名前2:フリガナ2
idex 2→名前3:フリガナ3
と対応してる必要があるわけです

ActionFormは
String[] name= new String[3];
String[] kana = new String[3];
こんな感じ

もちろん普通に入力してsubmitしてくれれば何の問題もないわけですが
input.do?name[3]=aaa
とクエリーを手入力するユーザーがいた場合
validateやexecuteにいく前に500エラーが発生する
本来ならエラー画面にforwardして「入力項目に誤りがあります」等と表示するべきですよね

配列じゃなくname1 kana1 name2 kana2にすればいいかもしれないが
それでは拡張性がなくなるし保守が大変そう
0601デフォルトの名無しさんNGNG
>>600
いま、自分が作った似たような感じのアプリで試したのですが
エラーになりますな・・・
javax.servlet.ServletException: BeanUtils.populate
java.lang.ArrayIndexOutOfBoundsException

配列の場合は考慮されてないか・・・
エラーページ作るしかないのか?

0602デフォルトの名無しさんNGNG
>>595
サーバにリクエストを送る時点でブラウザが
HTML中での出現順にならべて送るようにW3Cの仕様で規定されているが、
Servletのrequest.getParameterValues()では何の規定もないはず。

たぶん出現順にならんでるんだけどね。
0603デフォルトの名無しさんNGNG
>592
想定範囲外のindexはsetしなければよい

public void setFoos(int i, String foo) {
  if (0 <= i && i < 3) {
    // set
  }
}
0604デフォルトの名無しさんNGNG
>>603
それを、どこに書くの?
0605デフォルトの名無しさんNGNG
>>604
Strutsつーか、Java頑張れよ…
0606デフォルトの名無しさんNGNG
>>605
お前だろボケw
配列のプロパティで容量オーバーのインデックスが送られてきたときは
なぜかそのままエラーになる
なので>>603のようなことやったとしてもその前にエラーになる
だから「どこに書くの?」ってこと

>>603
どこに書くんですかそれを?
public void setFoos(int i, String foo)←このメソッド誰が呼ぶんでしょうか?
例え呼んだとしてもコレ呼ぶ前にエラーになってます
0607デフォルトの名無しさんNGNG
>606
605じゃないけど
>public void setFoos(int i, String foo)←このメソッド誰が呼ぶんでしょうか?
commons-beanutilsでpopulateしてくれるんじゃないの?

String[] foos; のセッタとして
void setFoos(String[]) のかわりに void SetFoos(int i, String foo) を書いたら。
0608デフォルトの名無しさんNGNG
>>607
ですから、エラーが
javax.servlet.ServletException: BeanUtils.populate
なんですよ!
だから、
>String[] foos; のセッタとして
>void setFoos(String[]) のかわりに void SetFoos(int i, String foo) を書いたら。
こんなことやっても無理その前に前述のエラーでます
0609デフォルトの名無しさんNGNG
FormBeanが生成される前段階で、フォームから送信された値のパースで
コケてるということだろ。
>>603、>>605はStruts初心者ということで許してやってくれ。
0610デフォルトの名無しさんNGNG
元の説明が悪すぎるな。
0611デフォルトの名無しさんNGNG
>607
やってみたのか?
0612デフォルトの名無しさんNGNG
592が粘着な上に自己解決できない人間だということで終了なのでは?
0613599=601=604=606=608NGNG
>>610

592のことか?
まあそうだが、実際動かせば、言ってる事が理解できる
動かさずに理解不能とか言ってる奴はいかんけどね

>>611

607じゃないけど、おれは全部確認した
0614599=601=604=606=608NGNG
>>612
あんたが粘着って思ってるのは
質問者(>>592)ではなくて
多分俺のことだと思うが・・・
0615609NGNG
結局、commons-beanutilsのPropertyUtils.javaの1469行目辺り、
setIndexedProperty()メソッド最後の以下の部分で
ArrayIndexOutOfBoundsExceptionを捕捉するようにするしかないのでは?

> } else {
> // Modify the specified value in the array
> Array.set(array, index, value);
> }

0616609NGNG
もしくは、org.apache.struts.util.RequestUtilsのpopulate()
メソッド内ですかね。
0617デフォルトの名無しさんNGNG
void setFoos(int k, String foo) を作ったときに、同時に
String getFoos(int k) も作った?

組だよ。
0618デフォルトの名無しさんNGNG
void setFoos(String[] foos);
String[] getFoos();
は、削除しなきゃだめだよ。
0619デフォルトの名無しさんNGNG
599=601=604=606=608が粘着な上に自己解決できない人間だということで終了なのでは?
0620デフォルトの名無しさんNGNG
やれやれ。 Jakartaも浮かばれないね。
0621デフォルトの名無しさんNGNG

>>619>>620

質問にも答えず、横から茶々入れるやつらが言うことではありませんよ。
0622デフォルトの名無しさんNGNG
なぜ質問に答えていないと断定できるのだね?
0623デフォルトの名無しさんNGNG
>ですから、エラーが
>javax.servlet.ServletException: BeanUtils.populate
>なんですよ!

自分の思い通りの答えが返ってこないからってキレるなよ
答える気なくす
0624デフォルトの名無しさんNGNG
>>622>>623


>なぜ質問に答えていないと断定できるのだね?
今まで解答してた人がそんな発言しますか?

>>ですから、エラーが
>>javax.servlet.ServletException: BeanUtils.populate
>>なんですよ!
>自分の思い通りの答えが返ってこないからってキレるなよ
>答える気なくす

本当にそうでしょうか?自分が勘で答えているから答えられないだけではないですか?
それに、このことは既に>>601で述べられています
散々「前スレ読め」と言われているのに
見ないで適当な答えを返せばキレてもしょうがないのでは?(実際にキレてるのかは知らんが)
つまり、前を読んでいない&試していないのに茶々入れてるのがバレバレってことですね
0625デフォルトの名無しさんNGNG
ったく、答えてもらってるのに粘着するなよ。
0626デフォルトの名無しさんNGNG
ソースあるだろ。ソース嫁。>粘着
0627621、624NGNG
>>625

私は質問者じゃないですよ?
0628デフォルトの名無しさんNGNG
>>627
要するにお前が、こういうときだけ出てきて茶化す奴ということだな。
0629621、624NGNG
>>628
そんなことはないです
0630デフォルトの名無しさんNGNG
621,624が粘着といわれる理由がわかったよ…
0631621、624NGNG
>>630
どのあたりでしょうか?
0632デフォルトの名無しさんNGNG
盛り上がってる所すいませんが、一つ教えて下さい。
『Struts1.1rc2を使用』
DynaValidatorFormを使用している箇所で同時にファイルアップロード
を行いたいのですが、struts-config.xmlにはどのような記述を
すれば良いのでしょうか?

現在以下のような記述になっています。
<form-beans>
  <form-property name = "comment" type="java.lang.String" />
  <form-property name = "image"type = "org.apache.struts.upload.FormFile" />
</form-bean>

しかしFormFile自体はインターフェースだからだと思うのですが、以下のようなエラーが
発生します。

org.apache.commons.beanutils.ConversionException:
Cannot assign value of type 'org.apache.struts.upload.CommonsMultipartRequestHandler$CommonsFormFile'
to property 'title_image' of type 'java.lang.String

もしかして! と思ってstruts-configの中でFormFile を DiskFile に変更して試してみましたが、
同じエラーが発生しました。
何か解決方法があるのか?
ActionFormを作るしか無いのか?
教えて下さるとうれしいっす!
0633632NGNG
ごめんなさい。
エラー文字列内の[title_image]を[image]と読み替えて下さい。
0634632NGNG
あ’’ーーーーーーーーーーーー

申し訳有りません。
自己解決しました。
DynaValidatorFormではなく
DynaValidatorActionFormを使用したところ
解決したようです。

ちなみにまだDynaValidatorFormとDynaValidatorActionFormの
違いも分かっていません。ドキュメント読んでみます。

スレ汚し激謝
0635621、624NGNG
>>632
あのですね
ファイルノアップロードする時は
ActionFormを使用してください
0636デフォルトの名無しさんNGNG
相手がすでに理解したことを、結果だけ繰り返し言っても仕方ないだろ。
関根潤三かよ。
0637621、624NGNG
>>636
正直スマンかった
かぶっただけなんだよ
0638デフォルトの名無しさんNGNG
>>634
「解決した」と思っているところでスマソだが
それでは解決じゃないんだよ。
http://jakarta.apache.org/struts/userGuide/building_controller.html#dyna_action_form_classes
DynaActionFormとそのサブクラスではプロパティの型として
org.apache.struts.upload.FormFile型はサポートしていないのだよ。
>>635の言うように通常のActionFormを使いなさい。
DynaValidatorFormとDynaValidatorActionFormの違いはValidatorが
「どのActionFormか?」を識別するのにform-beanのnameの値で識別するか
actionのpathの値で識別するかの違い。
つまり、ValidatorActionFormやDynaValidatorActionFormは
同じActionFormでもaction毎に細かくプロパティのチェック条件を
分けられる。ただし、これらは今のところJavaScriptの併用は不可。

それから、なんでRC2?1.1final出てるよー
0639609NGNG
>>624
おい!
俺も一旦お前を擁護してみたが、ちゃんと検証し直したら>>617の
通り、action.do?foo[10000]=fooでアクセスしても例外など起きなくなったぞ。
今からでも遅くないから謝っとけ。な。

FromBeanにプロパティ String[] name がある場合、
public String getName(int i) {
return name[i];
}
public void setName(int i, String name) {
if (0 <= i && i < this.name.length) {
this.name[i] = name;
}
}
の二つのメソッドが定義されていれば、範囲外の添字が
パラメータとして指定されても問題ない。
0640621、624NGNG
>>632
あのですね
ファイルノアップロードする時は
ActionFormを使用してください
0641デフォルトの名無しさんNGNG
解決方法はいろいろあるかも知れないんだから、自分が知らない方法を提示している
人がいるからって、罵倒するのはどうかと思うんだが。
とりあえず試してみろと言いたい。
せっかく教えてもらっているのに、自分でそれを解決できなかったからって、
できないって!なんて言われたら正直答える気なくす。
0642621、624NGNG
>>609

え?いつ擁護しました?
ホントに勘違いしているようですが
私は、>>608さんじゃないですよ

そんなコトより、あなたの発言
>>>603、>>605はStruts初心者ということで許してやってくれ
↑についてあやまっておいた方がいいと思われますが・・・
0643621、624NGNG
>>632
あのですね
ファイルノアップロードする時は
ActionFormを使用してください
0644デフォルトの名無しさんNGNG

>>641 名前:デフォルトの名無しさん 投稿日:03/08/14 13:03

言ってることはよくわかるし、正しいけど
お前自体普段からそう思って答えたりしてんのか?
お前自体がゴチャゴチャ言われたからってマジになんなよ
それに、相手が切れたってカンケー無いじゃんほっとけばいい
どうせ、夏なんだし・・
まあたぶん>>605、>>606当たりでおかしくなってきたのだが・・・
0645デフォルトの名無しさんNGNG
んーとですね、解らないことがあったらとりあえず掲示板で聞こうなんて思っているうちは
多分上達しないんで、自分でいろいろやって理解するほうがいいです。
いろいろなMLなんか見てても、質問する人は毎回質問か、単発の質問で消えるか
ばっかりで、その人が答える側に回ったのなんて、殆ど見たことないしなぁ。

とりあえず、思いつく限りのすべてのパターンを使ってみればいいんじゃないか?

あと、このスレはいつからStruts質問スレになったんだ?
0646デフォルトの名無しさんNGNG
>>641おまいのやる気はその程度プ
0647デフォルトの名無しさんNGNG
>>644
質問して教えてもらうということは、どういうことか理解しての発言ですか?
相手に切れられてまで教えようと思う人はマゾ以外皆無だと思いますが。
0648デフォルトの名無しさんNGNG
こうやって回答者がどんどん減って行くんだなぁ…
残るのは真性厨房のみ。
0649デフォルトの名無しさんNGNG
>>674
なんだよ、自分の時だけ静粛に語りやがって
0650592NGNG
>>603
の通りやればできました

どうもcommonsのBeanUtilsの仕組みをよくわかってなかったみたいで
添字つきのアクセッサは書いてたのですがヨソでも使われてるとは考えてませんでした

皆様どうもお騒がせしました
0651デフォルトの名無しさんNGNG
>静粛に語り

静粛?

口パク?
それとも、目で物を言うということ?
0652デフォルトの名無しさんNGNG
>>647

この件に関した話じゃないけど
回答者の言葉じりつかんで、
つっこみいれるのはいいけど、もう少し穏やかに印象良く指摘できないものかなとも思う
逆に、指摘された方は素直に「すまんかった」っていえればいいいのだが・・・
0653デフォルトの名無しさんNGNG
>>608 を見て、誰が追加で回答しようと思う?
せっかく答えても、正しく当てないで、こんなことやっても無理とか言い出すし。
これって、言葉尻捕らえてることになるのか?
0654652NGNG
>>653
俺に言ってる?
>この件に関した話じゃないけど
って書いてます。
0655デフォルトの名無しさんNGNG
お前ら、ここをどこだと思ってる?
煽りがいやなら、MLで質問しろ。
回答するほうも同じだ。
0656デフォルトの名無しさんNGNG
てか、伸びすぎ
0657デフォルトの名無しさんNGNG

普段は無視する質問でも
誰か一人が答えを言うと
おせっかいなことに余計な肉付けして
さらに話が膨らみ
質問とはカンケーないところで
バトル
0658デフォルトの名無しさんNGNG
>>653
だから、前に書いてあること読まないで書き込むから
切れたんじゃないの?

尚且つ、
>>607だけでは説明不十分
その時点では、「出来ない」っていわれても仕方が無い
最終的な完全なやり方は
>>617で発表されたわけであって・・・・

擁護するつもりは無いけどね
0659632NGNG
>>638
わぁ、そうなんですか。
ありがとうございます、為になりました。
しかし、今のところDynaValidatorActionFormでファイルの
アップロードが出来ているのですが、サポートされていないの
でしょうか? ちょっといろいろ検証してみます。

DynaValidatorForm と DynaValidatorActionFormの違いは
教えていただいてやって分かりました。
分かりやすい解説ベリーサンクスです。
0660デフォルトの名無しさんNGNG
>>658
ここ質問スレじゃないし。
軽く答えてもらえただけでもありがたいのに。
0661デフォルトの名無しさんNGNG
>>660
おまえも上乗せ突っ込みに参加したいの?w

0662デフォルトの名無しさんNGNG
>>658
完全なやり方を一発で知りたかったら、金出してしかるべき会社に聞けばいいのに。
掲示板やMLで聞いたって、最低限のヒント小出しにされるの当たり前。
0663デフォルトの名無しさんNGNG
>完全なやり方を一発で知りたかったら、金出してしかるべき会社に聞けばいいのに。
ばかですか?
なんか凄い話にもっていってますねププ
だったら、最初から答えなきゃいいじゃん・・・
それでもなぜ答えるのか、それは
小出しにして、意地悪してるんでしょ?
0664デフォルトの名無しさんNGNG
すげーレベル低いやついるな。
そりゃまともに答えてもらえないわ。
0665デフォルトの名無しさんNGNG
>>664
もう関わるなよ、おまえも思われてるぞ
おれ?俺は思われてもいい。どうせ高校だし
0666665NGNG
>>664
っていうか、>>662さんかな?反論できないと
他人の振りして「すげーレベル低いやついるな。」ですか?
0667デフォルトの名無しさんNGNG
って言うか、知りたいことの正しい解答を得ようとするなら、金を払うのは常識じゃないか?
掲示板やMLを無料相談だと思って使われると困るんだけど。
0668デフォルトの名無しさんNGNG
高校生だって、金払って学校通って勉強教わってるんだろ…
自分で払ってないから解らんかも知らんが
0669デフォルトの名無しさんNGNG
>>667
>>668
話し飛びすぎ
0670デフォルトの名無しさんNGNG
親のありがたみがわからないで社会に出ると、
無責任な質問とかしちゃう大人になるんだろうなぁ。
会社の署名入りでよくもこんな質問できるなという
ものをMLでよく見るが。
匿名掲示板で質問するだけ、こいつらはまだ頭が回ってるということか(w
0671デフォルトの名無しさんNGNG
>>670
なんか、質問者=高校生ってなってるお前の妄想が怖い
国語とか弱いですか?
0672デフォルトの名無しさんNGNG
2ちゃんねるなんかで聞かなきゃ完全な答えが返ってくるか既にあるというのはナシかどうか試してみるレス
0673デフォルトの名無しさんNGNG
もうやめよーって、人間同士の罵倒は無意味にスレを消費するだけ
0674デフォルトの名無しさんNGNG
>>671
665で俺高校って書いてあるからでは?
0675デフォルトの名無しさんNGNG
>>671
つーかそれ以前に、670のどこがリアル高校生を前提に書いてあるんだよ…
学生時代にそういうことだったから、大人になっても
ろくな質問できないんだなぁって書いてるんじゃないのか?
妄想も(以下略
0676デフォルトの名無しさんNGNG

>>675
>学生時代にそういうことだったから、大人になっても
>ろくな質問できないんだなぁって書いてるんじゃないのか?

同じだよ、『質問者=学生』なんて言ってないじゃん

665は横からいきなり出てきた高校生。
その高校生を、質問者だと勘違いしている
0677デフォルトの名無しさんNGNG
たかが2chでの回答にお金払えって言ってるやつは
苦しい言い草だな。
0678デフォルトの名無しさんNGNG
つーか、お前が高校生だろ?
じゃないと、その高校生が質問者か質問したことない人かどうかわからんよ。
もう粘着はいいって。
0679デフォルトの名無しさんNGNG
>>677
金払えって言うんじゃなくて、思い通りの回答が得られなくて
キレるのは筋違いだよ、金払ってるわけでもないのにってことだろ?
0680676NGNG

>>678俺に言ってんの?
俺の書き込みよく見れよ
>『質問者=学生』なんて言ってないじゃん
↑これだけだぞ?

わかりやすく言う。
つまり、
元の質問者>>592は『質問者=学生』とは言っていない。
なので、「質問者=学生」かどうかはわからない。
なのに670は、そういう雰囲気で言っている。

0681デフォルトの名無しさんNGNG
みんな必死だなあ。。
0682デフォルトの名無しさんNGNG
解りやすく自分の妄想を、雰囲気とか抽象的な言葉で説明しなくていいからさ。


これ以降粘着したやつは全員粘着な
↓
=========================================================================
                   粘 着 こ こ ま で 
=========================================================================
0683デフォルトの名無しさんNGNG
>>679
てか、キレルってどこの誰が切れたの?
みんな切れてるような気が・・・w

0684デフォルトの名無しさんNGNG
struts1.0で動いているアプリを、struts1.1へ移行したいのだが、
どんなところに気をつけろ!とかっていう情報ありますか?
サンプルベースでは、data-sourceの定義の仕方が若干変わりそうなんですがねえ。
0685デフォルトの名無しさんNGNG
ちゅうか、誰が誰に対して煽ってんのかわからんな
どっちにしても外野はおとなしくしていることだな
0686デフォルトの名無しさんNGNG
>>684
そのまま使ってもらってOKです〜

(って書いとくと、誰かが訂正してくれます)
0687デフォルトの名無しさんNGNG
同一JSPに複数のフォームを<html:form>タグで定義すると、
それぞれ別のpathを指定しているのに、
出来上がるHTMLの form がすべて同じname になってしまうといった現象がおきて
困っています。
何が原因でしょうか?
0688デフォルトの名無しさんNGNG
GenericDatasource にあった pingCommand ってDBCPで使えるん?
0689デフォルトの名無しさんNGNG
>>687
原因も何もそういう使用じゃないの?
で、配列ってことだよな
がんばれ!
0690デフォルトの名無しさんNGNG
>>688

答えにはならないかもしれませんが聞いてください
DBCPを優先させるためにGenericDataSourceクラスは非推奨です
0691デフォルトの名無しさんNGNG
>>689
struts-config.xml の action の name に別々の form-bean を指定しているのに、
HTMLには最初の form-bean の名前で複数フォームが出来上がる。
なぜだ??
0692デフォルトの名無しさんNGNG
>>690
DBCPにはpingCommand 相当のプロパティってあるん?
0693デフォルトの名無しさんNGNG
>>691
ちょっと待って、やってみるから
0694デフォルトの名無しさんNGNG
>>692
GenericDataSourceにpingCommandってあるの?
pingQueryじゃなくて?
0695693NGNG
>>691
俺できたよ。
ちなみに、
org.apache.struts.action.DynaActionFormをつかった。

Action Mappingも2個書いてる?
0696デフォルトの名無しさんNGNG
>>695
私がやったのは Dyna でなくただのActionFormです。
Win+JDK1.3.x+Tomcat3.2.x ではうまくいったんだけど、
Linux+JDK1.4.1+Tomcat4.1.x ではさきほどの現象がでました。
どの構成がうまく行くのかいかないのか、もっと調べてみます。
0697デフォルトの名無しさんNGNG
>>694
どっちもあるんよ。
0698デフォルトの名無しさんNGNG
org.apache.struts.util.GenericDataSourceですよね?
すいません。apidocにpingCommandを見つけることができません。
力になれないようです。pingQueryならあるのですが・・・
0699デフォルトの名無しさんNGNG
>>698
http://jakarta.apache.org/struts/api/org/apache/struts/util/GenericDataSource.html
あるやん。
0700デフォルトの名無しさんNGNG
>>699
あ〜もしかしてfinalですか?俺はrc1の方見てましたわ
0701デフォルトの名無しさんNGNG
>>700
ん?struts1.0の時代からpingCommandはあるよ。
0702デフォルトの名無しさんNGNG
>>701
え〜なんでだろう?
俺のrc1apidoc
org.apache.struts.util.GenericDataSourceクラスのフィールド↓

protected boolean autoCommit
protected org.apache.commons.dbcp.BasicDataSource dataSource
protected java.lang.String driverClass
protected static org.apache.commons.logging.Log log
protected int maxCount
protected int maxIdle
protected long maxWait
protected int minCount
protected java.lang.String password
protected java.lang.String pingQuery
protected boolean readOnly
protected java.lang.String url
protected java.lang.String user

以上です
他にも↓が載ってない・・
activeCount, closed, connections, debug, description, driver, loginTimeout,logWrite, pingCommand, properties,useCount,
0703山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0704デフォルトの名無しさんNGNG
agedesuyo
0705デフォルトの名無しさんNGNG
>>702
俺も載ってないのがあってむかついたから
ソースからjavadocを生成したよ。
0706デフォルトの名無しさんNGNG
328 名前:デフォルトの名無しさん 投稿日:03/06/01 23:59
おまえらEJBやるよりJavaの真髄を押えておいた方がいいよ?

329 名前:デフォルトの名無しさん 投稿日:03/06/02 00:14
>>328
Javaの真髄?なんのこと?
理由もなく意味のない書込みは止めてください。
「いいよ?」の意味もわからないし。

330 名前:デフォルトの名無しさん 投稿日:03/06/02 00:17
>>329は「EJBやったことある」と言いたいだけ。Javaなんてこれっぽっちも解っちゃいない。

332 名前:デフォルトの名無しさん 投稿日:03/06/02 00:42
>>330
>>329の書込みから、どうやったら「EJBやったことある」と読めるの?
深読みしすぎなんじゃないの?

333 名前:デフォルトの名無しさん 投稿日:03/06/02 00:57
>>332
読めるんじゃない。事実は隠せないだろ?プ
EJBやったことあるってことは自分自身が一番知ってるはずなんじゃない?w

334 名前:デフォルトの名無しさん 投稿日:03/06/02 01:46
>>333
話にならんなぁ。プ、とかwとか言ってるところが寒いし。
まあ、くだらないしめんどくさいからもういいや。
0707デフォルトの名無しさんNGNG
大雨だから焚き付けも湿気ってるな。
0708デフォルトの名無しさんNGNG
すいません、既存のWebアプリケーションをStrutsに移植中なのですが
フォームを使う必要がなく、なおかつ何らかのモデルBeanを呼び出して処理(execute()叩く)
するだけの場合、どのActionサーブレットを選択すればいいのでしょうか?
0709デフォルトの名無しさんNGNG
>>708
ただのAction
0710デフォルトの名無しさんNGNG
>>709

そうなんですか?

public class HogeAction extends Action{

public AcctionForword execute(ActionMapping mapping,
ActionForm form,←使わないのになんか気持ち悪いんです
HttpServletRequest request
HttpServletResponse response)throws Exception{
・・・・

}
}
0711デフォルトの名無しさんNGNG
>>710
そういうインタフェースだと思って使うべし。
ActionForm の有無によってインタフェースを分けるか分けないかは
議論の分かれるところだと思うが、
あっても使わなければ実害は少ないという判断で、
今のような仕様になっているのだろう。
0712デフォルトの名無しさんNGNG
なんでlogic:equal等で二つのBeanのプロパティを比較できないのか不思議なんですが。。
作った人が馬鹿なんですか?

最新版ではついてるんでしょうか?
0713デフォルトの名無しさんNGNG
>>710
下のFormlessActionのようなクラスを作って、フォームを使わない
アクションはこのクラスを継承すればいい。嬉しいかどうかは疑問だが。

public class FormlessAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
return execute(mapping, request, response);
}

public ActionForward execute(ActionMapping mapping,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
// override this
}
}

public SimpleAction extends FormlessAction {
public ActionForward execute(ActionMapping mapping,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
// もうこれで気持ち悪くないぞ
}
}
0714デフォルトの名無しさんNGNG
>>712
何がしたいのかようわからんけど、それで困る人が居ないからじゃない?
むしろ、logicタグを使わないような設計にするのが正しいMVC厨。
0715デフォルトの名無しさんNGNG
>>714
そういう真性MVCマニアの人は、たとえば検索結果をリスト表示する、などのときはどう書くのですか?

pubic List getResults(){ return this.results; }

<ol><logic:iterate ... property="results">
<li><bean:write ... property="title /></li>
</logic:iterate></ol>

の代わりに

public String getResults(){
  Iterator it = this.results.iteraotr();
  StringBuffer buf = new StringBuffer();

  whiie( it.hasNext() ){
   ResultBean result = (ResultBean)it.next();
   buf.append( "<li>" + result.getTitle() + "</li>" );
  }

  return result.toString();
}

<ol><bean:write ... proprety="results" /></ol>

みたいなやり方しか想像つかないんですが。。
すべてのHTMLタグをJSP側に書きつつlogicタグを使わないなんて可能なんですか?
0716デフォルトの名無しさんNGNG
>>715

> すべてのHTMLタグをJSP側に書きつつlogicタグを使わないなんて可能なんですか?

論理的には可能。
開発者のスキルによっては不可能ってこと。
0717無料動画直リンNGNG
http://homepage.mac.com/miku24/
0718デフォルトの名無しさんNGNG
taglib 自作すればよろし。
0719デフォルトの名無しさんNGNG
>>714
>むしろ、logicタグを使わないような設計にするのが正しいMVC厨。

まさに厨。そんなこと言っている香具師はMVCを誤解している。
下手したらControlerが表示ロジックも抱え込む設計になってしまい
かねない。重要なのはMとVとCを適切に分離すること。

まぁ必ずしもView=JSPというわけじゃないから、JSP自体はロジックを
記述しない静的なものにしておいて、別にViewオブジェクトを用意して
表示ロジックを記述するというやり方もありだとは思うが。
0720デフォルトの名無しさんNGNG
俺はMVCっていうか、JSPにゴチャゴチャと条件分岐とか書くのがイヤだから
表示する内容は全てActionで用意して、JSPでは愚直に表示処理だけ、というのが好き。
0721714NGNG
>>715
検索の結果、該当件数が0件だったら「該当するデータがありません」ていう
内容のタイルにフォワードする。

>>719
俺は、<logic:*>タグのやってることはVに含めるべきものじゃないと
いう考えなので。
0722デフォルトの名無しさんNGNG
>>721
<logic>タグはVに含めないとは、やりすぎでしょう。
「見栄え」に関するロジックは<logic>タグでやるべきでしょ?
0723デフォルトの名無しさんNGNG
>>720
あなたの言っていることは、
一般的な
JSP(Viewロジックあり)-Action(Viewロジックなし)
ではなく、論理的な2種類のActionを用意して、
JSP(Viewロジックなし)-Action(Viewロジックあり)-Action(Viewロジックなし)
とするってこと?

まさか、Actionはごった煮?
JSP(Viewロジックなし)-Action(Viewロジックあり)
こんなのは絶対いやだ。
0724デフォルトの名無しさんNGNG
>>720
「繰り返し」というある程度のロジックを導入しない限り、
繰り返した中身全体をView以外で用意しなきゃならない。

表示はHTMLという制約があるとするなら、その文字列中に
「表示制御用」の文字列も含まなきゃならない。
つまり、View以外が表示の仕方を司ることになる。
0725デフォルトの名無しさんNGNG
HTMLに関する知識は、Actionは知らないほうがいいだろう。
そうなると、HTMLに関する知識は、すべてJSPとなるだろう。
もちろん、JSPにすべて書けという意味ではないよ。
>>719 が触れているViewオブジェクトというのもありだとは思うが、
>>718 が言っている Taglib を自作するのが一番きれいに書けるだろう。

まあ、よく Taglib は敷居が高くて使ったことありませんなんてことを
耳にするが、甘えんな!と一言言ってやろう。
0726デフォルトの名無しさんNGNG
>>725
でもそれって、結局logicのようなタグを作るってことだよね。

logicのようなタグも使わず、なかおつHTMLに関する部分はView以外に書かないという
「真のMVC厨」は一体どうしているのだろう。
0727デフォルトの名無しさんNGNG
View用のlogicはStrutsのtaglibなんて使わないで、JSTLのcoreタグ使えよ。
俺はStrutsのtaglibで使うのはhtmlだけ。
0728デフォルトの名無しさんNGNG
>>726
「真のMVC厨」はlogicのようなタグは使うだろ。
誰が使わないなんて言ってるんだ?
君の脳内?
0729デフォルトの名無しさんNGNG
>>727
君の言っていることはごもっともだが、今はそれを論じる流れではない。
0730デフォルトの名無しさんNGNG
>>714 が言ってる様なのですが(View以外云々の部分はMVC厨の前提なので当然)。

彼(女?)の「logicタグを使わない設計」って、もしかして <logic:*> という
タグを使わないけど、結局似たようなタグは使いますよという、言葉遊びなんですか?

どんな素晴らしい方法があるのか楽しみだったのに、がっかり。
0731デフォルトの名無しさんNGNG
>>730

>>714 の言葉を額面どおり受け取ってはいけないだろう。
logicタグ=if文の代わり
と考えれば、
logicタグを使わない=分岐なし
となる。
JSP内で分岐を使わずに構造的に動的なHTMLを生成するためには、
その分岐ロジックを別の場所で記述する必要がある。
その別の場所が、Actionだったり、Viewオブジェクトだったり、
Taglibだったりするというだけの話だ。
とびきりの魔法があるわけではない。

もちろん、
logicタグ=for文の代わり
と考えた場合も同様の議論は可能。


まあ、少なくとも、分岐なし、繰り返しなしではほとんどの画面は作れないから、
それ自体を否定するほうがどうかしている。
ActionでHTMLをベタで生成なんてのは、最も避けたい。
0732デフォルトの名無しさんNGNG

どこまで、サーブレット側でデータを整形させるかポイントだね
出力がJSPだけとは限らない場合も考えると、コレクションや配列までの方が良いかも
それをどう表示するかがVの役目だとおもう。
どうしても、JSPで繰り返しや分岐をやりたくないのなら
さらに間にデータ整形のフィルタなどかませる方が、いいのかも。
いわゆるXMLにおけるXSL的な位置付けのロジッククラス作るとか。
こんな設計は怒られるか?
0733714NGNG
<logic>タグ全否定は言い過ぎでした。
要は<logic:equal>系のタグでBeanの状態見て分岐するような
ロジックはJSPに含めないということです。

単にAction内で

String forwardName;

ArrayList result = fetchUsers("条件");
if (result.size() < 1) {
forwardName = "userlist_available";
request.setAttribute("userlist", result);
} else {
forwardName = "userlist_unavailable";
}

return mapping.findForward(forwardName);

とするだけですが、JSPをデバッグするよりもJavaのソースを上記の
ように書いた方が状態を把握しやすいので。
0734デフォルトの名無しさんNGNG
>>712
そう思うなら、Jakartaのメーリングリストにそう書いてみれば?
もし可能なら、修正したソースをあげればいいじゃん。

で、二つの変数を比較するというのなら、Velocityで可能。
0735デフォルトの名無しさんNGNG
>>733

それって、ほぼ同じJSPが2個できるわけですよね?

なぜか私のまわりでは、
動的に表示するのがユーザの一覧だけという画面も、
仕様、デザインが納品まで普遍だったこともないので、
MVCがどうこう以前に、そんな修正しづらいのありえないっす。

Beanの状態を見て、一部表示を変えるだけなら、
<% if (result.size() < 1) { %>
でいいのでは?

else if 追加することになったときに、
<logic:*>だと直せる人少ないでしょ。
0736714NGNG
>>735
Tiles使ってるんで共通部分は1ファイルになります。
<% if (result.size() < 1) { %> なんて記述したらHTMLの
プレビューがしにくくない?
0737デフォルトの名無しさんNGNG
>735
素人?
■ このスレッドは過去ログ倉庫に格納されています