△△もまいら漏れにStrutsの良さを教えてください
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGそれでも、漏れにはStrutsの良さがよくわかりません。
めんどくさいだけじゃないかと。
普通にサーブレット&JSPでいいじゃないかと。
そこでもまいらにお願いです。
こんな漏れにStrutsの良さを語ってください。小一時間語ってください。
どんなときに使うとイイのか教えてください。
ストラトスって読んじゃだめな理由もついでに教えてください。
00021
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG/ ̄ ( ・∀・)⌒\ ガッ!!
__ / _| | |
ヽヽ / / \ | | ,,,,,,,iiiiillllll!!!!!!!lllllliiiii,,,,,,,
\\| |____| .| | .,llll゙゙゙゙゙ ゙゙゙゙゙lllll,
\/ \ | | .|!!!!,,,,,,,, ,,,,,,,,,!!!!|
| ヽ_「\ | |、 | ゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙ .|
| \ \――、. | | ヽ .| .゙゙゙゙゙゙゙゙゙゙ |
| / \ "-、, `| | ヽ | |
_/ / "-, "' (_ ヽ ヽ .| |
/ __ノ "'m__`\ヽ_,,,, ヽ | |
`ー― ̄ ヽ、__`/ー_,,,, ゙゙゙゙!!!!!!!lllllllliii| |
\゙゙゙゙゙゙゙!!!!!lllllllliiiii| |
\ ヽ | |
ヽ \ | |
| \.| |
`ヽ、,,_ノ| |
゙゙!!!,,,,,,,, ,,,,,,,,,!!!゙゙
゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙
/.// ・l|∵ ヽ\ ←>>1
0005デフォルトの名無しさん
NGNGJAVAに賭けてた人とかかわいそうだな
0006デフォルトの名無しさん
NGNG0007ほんものの1 ◆lqgT6FBSpw
NGNG0008ほんものの1 ◆lqgT6FBSpw
NGNGJavaが理解できなかった人もかわいそうでつね。
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG支柱
気どった歩きぶり
strut (動詞) [=strutting, strutted, struts]
(自動詞)
気どって歩く
0011bloom
NGNG0012ほんものの1 ◆lqgT6FBSpw
NGNGWebアプリケーション用のフレームワークでつ。
0013デフォルトの名無しさん
NGNGあるわけねーだろ。(w
ASP.NETに遠く及ばない糞フレームワークを持ち上げて、提灯記事も必死だな。(藁
0014デフォルトの名無しさん
NGNG糞であることには変わりないが。
0015デフォルトの名無しさん
NGNG専門出のDQNか
馬鹿なベンチャー屋
しかいません。
言語設計は(教育用としては)素晴らしいですが
実用には向きません。そういうことをちゃんと部下に教えないといけません
JSPがわかってもアパッチのインストすらできないようでは
明日の日本はありません
0016デフォルトの名無しさん
NGNGプ
0017デフォルトの名無しさん
NGNGじゃあ、ひとまず Java Server Faces (提供する機能は Struts とほとんど一緒)
を再評価してみてはどうか。
0018デフォルトの名無しさん
NGNG> 実用には向きません。
いや、向きますけども。
0019デフォルトの名無しさん
NGNG>Java Server Faces (提供する機能は Struts とほとんど一緒)
ただのASP.NETのパクリ。(プ
0020デフォルトの名無しさん
NGNG教育用は実用に使えないという法則がどっかにあったような気がするけど
Javaはそうでもないと思う。
0021デフォルトの名無しさん
NGNGということにしたいのですね?
0022デフォルトの名無しさん
NGNGUNIXの巨大サーバー上で動かしてるからこそ、かろうじて運用に耐えてるだけなのに。(w
本当に使えるものなら、Windowsの中規模サーバーで大体は間に合うはずなのに。(w
それこそASPみたいにね。
0023デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA000092/jokes/strup.html
> 本当のところ、私はC++でDOSを書きました。 これが終わったら、
> デモ版をお渡ししましょう。 コンピュータルームのSparc 20で
> ずっと走らせています。4 CPUでロケットのように速く動きますし、
> たった70MBのディスクしか消費しません。
0024デフォルトの名無しさん
NGNG> 本当に使えるものなら、Windowsの中規模サーバーで大体は間に合う
Windows でも Linux でも間に合ってますが?
0025デフォルトの名無しさん
NGNGどうせ社内でしか使わないショボシステムだろ?(ゲラ
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG中の人が全員おんなじなんじゃない?
0028デフォルトの名無しさん
NGNGゲラとか嘲笑激藁とかプとか大爆笑とか書いてる奴だろ
タイミングよく不自然に連続投稿しているところがあいつらしい。
0029デフォルトの名無しさん
NGNG>>15がアフォなだけ
0030デフォルトの名無しさん
NGNGそうでもないやん。
まあいいんじゃね?
WebProg板はPHPスレでほとんどうまってるし。
Javaという言語がそれだけ幅広い分野で使われてるってことなんだから
一口にJavaといってもさまざまな分野があり一つのスレだけでは語りきれないんだし。
ところで >>6 はJavaの代わりにどんなスレをたてて欲しいんだい?
0031デフォルトの名無しさん
NGNG新言語 さくらたんヽ(´ー`)ノ
0032デフォルトの名無しさん
NGNGstrutsは便利だけどBean追加のたびにstruts-config.xmlファイルの書き換えが面倒。
>>19
ASP.NETもstrutsやJSPカスタムタグのパクリでもあるのだが(w
そしてC#もJavaのパクリ。
0033ほんものの1 ◆lqgT6FBSpw
NGNGJava Server Facesって、HTMLフォームをそれぞれカスタムタグにしただけだと思ってた。
画面遷移の管理もあり?
0034デフォルトの名無しさん
NGNG設計が簡素化できるし、作りが単純なので展開しやすいので、割と好きです
Turbineは一度使ってみたいけど、情報がとぼしいので触ってないです^^;
0035ほんものの1 ◆lqgT6FBSpw
NGNG>設計が簡素化できるし
ここがすごく疑問なんですよね。
ちょっと詳しく教えてもらえませんか?
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGお前だろ
あげんな、
誰もんな糞雑誌読んでねーよ
0038デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGサッと作りたい場合はRubyってことになるかな。CGIKitとかWEBrickとかウェブフレームワークも充実していて作りやすい。
0041デフォルトの名無しさん
NGNGStrutsに対応するものってあるの?
0042デフォルトの名無しさん
NGNGhttp://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より面倒ってこともあるよ。
004334
NGNG詳細設計から実装へ、比較的機械的に落とせます
・画面遷移図作成→struts-configに変換
・画面入出力項目→ActionFormに変換
・画面処理 →Actionに変換
この辺決めるのに設計的な判断がいらないです。
これらをコードに埋め込まざるを得ない、べたサーブレットよりはマシです。
とはいえTaglib覚えたりStruts-Config覚えたり色々敷居は高いですが・・・
0044ほんものの1 ◆lqgT6FBSpw
NGNGあぁ、そういうことですね。
StrutsのTaglibは、ほんとに価値が感じられないので、使う気はないです。
どうなんでしょう。。。
0045ほんものの1 ◆lqgT6FBSpw
NGNGよく見てないけど、思ったのは、Rubyって(使えるとか使えないとかは置いといて)楽しそうですね。
0046デフォルトの名無しさん
NGNGTaglib使わなかったら、Strutsを使う意味もないでしょ。
0047ほんものの1 ◆lqgT6FBSpw
NGNGそうなの?
あのTaglibって、なんかいいとこあるの?
0048デフォルトの名無しさん
NGNG全部使ったわけではないけど、html、logic、beanは使えたよ。
特に、htmlは使った方がよい。
0049ほんものの1 ◆lqgT6FBSpw
NGNGそうかなぁ。。。
変なタグ使っても、デザイナがわからなくなるし。
リンクのタグはStrutsのしくみ使う上で必要だろうけど。
フォームのタグは、同じようなものをもってない人には便利なんだろうけど。
みんなそれなりに作ってるんじゃないの?自分なりに便利なの。
logic/beanって何があるの?
005048
NGNGFormタグと同等の機能を自分で作成したとして、それを使うのに
どれだけの労力を必要とするかだね。
それだけの労力を使って作成したものを新しく入ってきた人に教
える必要があるとしたら、ドキュメントのそろっているStrutsと
の差は歴然としていると思うよ。
今、うちでは日本語があまり出来ない韓国人がいるけど、Struts
は韓国語のページがあるから、説明もほとんど必要ない。
logicですが、iteratorなんかは便利でしたよ。
equalなどはだめですが。
0051ほんものの1 ◆lqgT6FBSpw
NGNG> Formタグと同等の機能を自分で作成したとして、それを使うのに
> どれだけの労力を必要とするかだね。
実際には、同等ではなく、自分達が作るものに適した機能をもってるんだけどね。
だから、ドキュメントが相対的に貧弱であっても、やろうとすることに似たものがたくさんあれば、あまり問題にはならない。
結局Strutsのタグ使っても、その差の部分は自作する必要があるわけだし。
その自作のやり方を教える方が労力がかかると思われる。
でもドキュメントは同意。
日本語のドキュメントなら問題ないし、英語でもそこまで問題ではないけど、他の言語は無理だね。
使いつづけてるうちはいいけど、
iteratorって、JSTLのforeachよりも便利?
つうか、カスタムタグはJSTLにとりあえず一本化してほしい。あ、だからJSFか。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNGhttp://www.h4.dion.ne.jp/~pc-pow/
0054デフォルトの名無しさん
NGNGStruts ファンページ in Japan
http://homepage2.nifty.com/ymagic/struts/realindex.html
0055デフォルトの名無しさん
NGNG取るという実例だな。
0056デフォルトの名無しさん
NGNGどこにstrutsが使われているのかJSPが使われてるのかServletがつかわれてるのか
わからん。
0057デフォルトの名無しさん
NGNGパンツアニメ?
0058デフォルトの名無しさん
NGNGサイトの宣伝は放置しろよ。
0059
NGNGだからJSTLや自作のTaglibと併用してる。
0060ほんものの1 ◆lqgT6FBSpw
NGNG画面遷移管理だけじゃなく。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGその覚えた後の(ウェブプログラミングの設計についての)学習効果を加味するとどうですか?
0064デフォルトの名無しさん
NGNGStrutsじゃなくてフレームワーク全般に言えることだね。
覚えるための手間がかかるが、覚えた後の効果が高い。
0065名無しさん@Linuxザウルス
NGNG味わうな。詐欺に気付いたような感覚が。
ここで2種類の人間に分かれるな。全てを捨てて糞と言い切れる
奴と、騙されたのを認めたくないのか無理なマンセーに走る奴と。
0066デフォルトの名無しさん
NGNGその2種類は覚えるのに苦労した低脳な人間に限定される話。
覚えるのにそれほど苦労しない人間なら「この程度かよ」でも
それほど悔しくないし、使える範囲で適当に使える。
0067デフォルトの名無しさん
NGNG信頼性も開発スピードもUPするから使ったほうがいいに決まってる
個人でやってるやつはどっちでも好きにすれよ
0068デフォルトの名無しさん
NGNG普通に作るのとたいしてかわらない。
0069ほんものの1 ◆lqgT6FBSpw
NGNGやっぱりTaglib使わないとStruts使う意味ないのかな。
0070デフォルトの名無しさん
NGNGstrutsの立場も危うい
0071ほんものの1 ◆lqgT6FBSpw
NGNG0072デフォルトの名無しさん
NGNG今日amazonで発見。早速メーカーにメール。
どうも1.1b3でも動作確認はしているらしい。
半年ほど前に1.1b2で開発したときは英語しかドキュメントなかったなー。
これでstruts使える香具師増えるかも。
0073デフォルトの名無しさん
NGNG似たようなものを自作するより、安くて速くて(多分)安全だから使う
だけだよね。
日本では、二番煎じではるかに糞なフレームワークが量産されてますよ。
人が造ったの見ると、作るの簡単そうに見えるのね。
でも、サーバーサイド開発の留意事項の全てを知って作ってるわけじゃ
なくて、マヌケなミスが混じって使い物にならなくなる、というのが
王道的パターン。
0074デフォルトの名無しさん
NGNGJSFなかなかよさげですね。
.NETの猿真似と言われようと、やはりこういうのはニーズが多いだろうからね。
0075デフォルトの名無しさん
NGNGこうもフレームワークが乱立する状況が生まれたわけだ。
0076デフォルトの名無しさん
NGNGいや、ASP.NETがJSPカスタムタグライブラリの猿真似なんだよ
0077デフォルトの名無しさん
NGNG結構毛深いな、おい。
007874
NGNGありがトン。そうなのか、じゃあ俺はMacがWinをパクったんだとか
ロードオブザリングがハリポタをパクったんだとかいうのと
同じのを信じてたわけかな。(鬱駄
0079ネニグレクト・ラーファ
NGNG世界の仕組み研究所!!
おまいらみたいな無知君はおいらのページでも見て1から勉強しろでつ。
リンクフリーだけど直リンすんなよゴルァ。
おいらに勝てるヤシはかかってこんかい。
0080デフォルトの名無しさん
NGNG所詮、HSPはstrutsほどには及ばない。
0081デフォルトの名無しさん
NGNG>いや、ASP.NETがJSPカスタムタグライブラリの猿真似なんだよ
これを主張するのならば、JSPはASPの猿真似でしかなくなってしまうよ。
(つうか、タグライブラリを待つまでもなく、perlで事前コンバート(タグ
拡張など)後に自動配置くらい、ずっと前から誰でもしてることだろ?)
0082デフォルトの名無しさん
NGNG名前を付けて標準化することの価値がわかってないやつはプログラマ失格
0083デフォルトの名無しさん
NGNGはげ道。
デザインパターンなんかそうだよね
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGされたのってそれほど前ではなかったですよね。
ASP.NET発表のどれくらい前の話なんです?
0086デフォルトの名無しさん
NGNGおみそれしやした
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGこの板でも
「デザパタに書いてあるパターンなんか、俺なんてずっと前から使ってたし、デザパタだせぇ」
みたいな勘違い君の書き込み、よく見かけるね。
008988
NGNGガンマタンはネ申」
と思うのが上級者ということですね。
0090デフォルトの名無しさん
NGNG結局、#76がJava厨の妄想で、#81がAPS厨(?)の妄想ってこと?
00911 ◆lqgT6FBSpw
NGNGJava相談スレが1000逝って次スレがなくかったら、こういう話題がこのスレで繰り広げられるってことは、Java相談スレは隔離スレとして機能してたということになりますね。
0092デフォルトの名無しさん
NGNGだんだん置き換えてほとんど普通のServlet/JSPになってしまった。
ちょっとJavascriptとかつかって離れ業をやるインタフェースが
多かったのでTaglibとか使いづらくてしょうがなかった。
でも、簡単にデモンストレーションとか作るんだったら、悪くないなー
そのあとのことはしらないけど
0093デフォルトの名無しさん
NGNG離れ業JavaScriptをカスタムタグライブラリにすべきだったかと。
009493
NGNGいるよ。外人だけど。
0095デフォルトの名無しさん
NGNGガイジンっていうと、アメリカ人かヨーロッパ人・ロシア人のことを指して、韓国人とかイラク人とかは入らない罠?
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG使ったこと無いやつは一回使って
理解してからもう一度自分にその質問を問い掛けてくれ
っていうか、フレームワーク自体に
手を出すのが億劫なんだろ?
>>67>>73のように、理由はちゃんとある
ついてこないやつは別にお好きにどうぞ
0098デフォルトの名無しさん
NGNGそのフレームワークが一体何を楽にしてくれるのかを理解するまでは、
単なる作業だからな。見返りの保障ナシに、理解に工数突っ込むのは
それはそれで問題かも。
0099デフォルトの名無しさん
NGNGまあ、物事にたいして「知りたい」という好奇心旺盛な気持ちを持たないやつのほうが、プログラマとして問題だ
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG理想論としては然り、だけどこれだけ各種技術が溢れると好奇心の赴くままに
全部を吸収するなんて出来ない。
当然どこかで取捨選択が必要なわけで、そうなれば「何がいいの?」って
概要くらいは聞きたくもなる。
もっともWebプログラマならStrutsの勉強くらいしとけとは思う。日本語の
記事だって半年くらい前から見かけるじゃないか。
0102デフォルトの名無しさん
NGNGProgramming Jakarta Strutsを買えってこった!
0103デフォルトの名無しさん
NGNG邦訳あり?
0104デフォルトの名無しさん
NGNG書名と著者および出版社が知りたい。
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNGApplet使うなら、JSP使う必要ないじゃん。
HttpConnection使って直接HttpServletと通信しろ。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGこの手の話題はみたことがない。
まぁ、フレームワークなんて使うなといわれそうだけど。
0109デフォルトの名無しさん
NGNGStrutsがボトルネックになることは少なそうだが。
0110107
NGNGhttp://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>Applet使うなら、JSP使う必要ないじゃん。
んなこたぁない。
Applet専用のJSPタグがあるやろ
<jsp:plugin>と<jsp:param>だったと思ったが。
0112デフォルトの名無しさん
NGNGまぁ、>>105の質問が見当外れなわけだが。
0113デフォルトの名無しさん
NGNGそれは、単にJSPの出力であるHTMLにAppletを呼び出すタグを埋め込めるとか
そういうことでしょ。
プロセス実体がどこで何をやるかの切り分けが分かってないな、お前。
0114デフォルトの名無しさん
NGNGそううことは>>106に言え
>>106の質問が曖昧すぎなんだよ。
しかも>>106はプロセスのことを言い出したかお前
0115デフォルトの名無しさん
NGNG>>106ではなく>>105な
01161 ◆lqgT6FBSpw
NGNGhtmlタグはJSF次第?
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG自動生成してくれる機能が付いたIDE使えば?
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNGJSTL使う前提で、Mapで代用してますがなにか?
データしまっとくBeanならまだいいんだけど、Servlet->JSPにわたすだけにBeanを作るのはどんなツール使ってもめんどくさい。
0121デフォルトの名無しさん
NGNGIDE使うか、エディタのマクロ機能使うか、1.1でDynaActionForm使うか。
0122デフォルトの名無しさん
NGNGCaminoを買え
0123デフォルトの名無しさん
NGNGバグ増えそう
0124デフォルトの名無しさん
NGNGどれだけ多くの人にテストされてると思ってんだ?
これほど信頼できるものは無いぞ
0125デフォルトの名無しさん
NGNGオープンソース一般はあてはまらないよ。
Jakartaのプロダクトでもマイナーなものはしょうもないバグあるし。
さらに話題読み違えてるし。
×バグ多そう
○バグ増えそう
ex.Perlにどんなにバグがなくても、Perlで作ったスクリプトはバグがJavaのプログラムに比べて多い。
0126デフォルトの名無しさん
NGNGバグって、アプリケーションのバグのことだよね?
たしかにDynaActionForm使うとプロパティ名間違えても実行時までわからないとか
IDE使ってもgetter/setterのメソッド名の自動補完機能が使えないとか
不便なこともある。
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNGまさかテキストエディタでコーディングしてないよな?
Eclipse使え。
0129117
NGNG0130デフォルトの名無しさん
NGNG,
,/ヽ
,/ ヽ
∧_∧ ,/ ヽ
( ´∀`),/ ヽ
( つつ@ ヽ
__ | | | ヽ
|――| (__)_) ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ヽ
/⌒\/⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~ ~~ ~~
⌒\/⌒\/⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
0131デフォルトの名無しさん
NGNGWebObjectsでも使えよ。
0132デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGうわっ。邦訳されるのはよりによってManingのMastering Jakarta Strutsなのか。
類書の中では一・二を争う糞だと思うのだが。
『Struts&タグライブラリ』なんてのとか、邦訳はダメなものから順番か?
0135デフォルトの名無しさん
NGNGどんなのあるんですか?
EponicsFastがよさそうなんですが・・・
0137デフォルトの名無しさん
NGNGあんたの会社の大してできがよいわけでもない連中が作って、そいつらが
自分の都合でテストしただけの怪しいフレームワークよりは、よく使用さ
れているオブソの方が信用できるさ。
0138デフォルトの名無しさん
NGNGなんか訊き方がニャガオっぽい
0140123
NGNG逝ってきます・・・
0141デフォルトの名無しさん
NGNG>>137の方が流れが違う気がするのだが。
少なくとも>>137と>>136は話題の層が違う。
0142デフォルトの名無しさん
NGNGキーと値しかないんだから HashMap で十分だ。
0143デフォルトの名無しさん
NGNGなんていうか『楽な気がする』って感じかなぁ?
でも我ながらみんなが『Struts便利!』って言ってるからそう感じるのかなって
気がする。。具体的にはどう便利なんだろ?
・taglibが便利?(使い慣れてないから分からないが iterate 等のいかにも
便利そうなものは既に自作してあるからなぁ)
・画面遷移がxmlファイルで指定できる(これはいいかも)
・フォームの受け取りが楽?
でも何も考えずに作ってもMVC(っぽい感じ)になるのは楽かもなぁ。
…ってか何度やってもActionFormのvalidateに処理がいかない。。
質問なんですけど、Strutsで開発すると検索などで使う単純なフォーム
(googleのトップにあるようなやつ)でもActionForm作るんですか?
0144143
NGNG眠くて。。
0145デフォルトの名無しさん
NGNGスタンダードである、多くの技術者に認知されているということの
重要性をわかっていない香具師がまた一人。
01461 ◆lqgT6FBSpw
NGNG>質問なんですけど、Strutsで開発すると検索などで使う単純なフォーム
>(googleのトップにあるようなやつ)でもActionForm作るんですか?
漏れも知りたい
iterateなんかのlogic系はJSTLがあるから要らない。。。
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG> >>143
> >質問なんですけど、Strutsで開発すると検索などで使う単純なフォーム
> >(googleのトップにあるようなやつ)でもActionForm作るんですか?
>
> 漏れも知りたい
そうだよ。
ただ、ウィザード形式の入力画面や、入力→表示といったページはひとつのActionFormで
つくれるから、すべてのFormにたいしてひとつづつ作らないといけないというわけではない。
0149デフォルトの名無しさん
NGNG俺はJSPで<html:form> タグがある場合はActionFormは
必須ってことだと認識してる。
もしActionFormを定義してなかったらエラーになると思う。
逆に、表示だけ(bean:write)のみとかだと
formタグはいらないからActionFormもいらないはず。
<path="/hoge" type="HogeAction">でOK。
>>143
struts-config.xmlでvalidate="true"になってる?
一番怪しいのはconfigファイルだな。
0150デフォルトの名無しさん
NGNGiterateタグで表示して、さらにそこから入力させたいのですが。
0151デフォルトの名無しさん
NGNG設計ガ助長なんですヨp
0152デフォルトの名無しさん
NGNGRubyっていい?
0153143
NGNGレスありがとです。
ちなみにvalidate="true"は書いてありましたが、inputが無いのが駄目な
原因でした。(無知って恐いです)
このvalidateって機能は便利ですね、なんとなく。
う〜ん、勉強してみれば結構面白そうだな。。>>struts
0154デフォルトの名無しさん
NGNG>原因でした。(無知って恐いです)
あれ、validate="true"の場合は必須なんで、ブラウザにエラーがでるはずだけど
validatorを使わずにvalidateメソッドを使う場合にはそうでもないのかしらん?
0155143
NGNGいや、エラー出てたんですけど、何すれStrutsダウンロードして
から40分ぐらいで作った処女作だったのでどんな属性が有るのかも
分からなかったので…。
その後dtdファイルを読んでみたら分かりました。
そういえば
http://www.ingrid.org/jajakarta/struts/struts1.0/ja/target/documentation/userGuide/building_view.html#form_beans
の下の方にあるファイルのアップロードの解説のJSPは閉じタグが全然ついてないのは一瞬戸惑った。
0156143
NGNGweb.xmlで指定したもの(デフォルトではApplicationResource.property)しか
使えないんですか?
struts-config_1_0.dtdではないけどstruts-config_1_1.dtdでは
message-resourcesタグが使用できますよね。これに代わる機能は
なにかあるのでしょうか?
0157山崎渉
NGNG0158
NGNG0159デフォルトの名無しさん
NGNGんですがいいですか
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG複数ラインがあるフォームの処理って、strutsではどうするの?
(エクセルのようなテーブル形式の入力フォーム)
0162
NGNGよって設計、および分業がすっきりするという。
一方、現実問題、JSP系システムは画面単位でサーバーとやり取りを
しなければならず、VB的な小さなサーバとのデータのやり取りを
する場合、単純な画面遷移から離脱した、細かいURLのやり取り
をするやり方を使う買うケースは少なくない。
そんなとき、STRUTSの画面遷移における「縛り」は開発的には
邪魔になってしまう。
また、ロジックと画面遷移を外出しにすることによる、ロジックの
つながりの不透明にし、開発側にとって弊害になることも少なくない。
MVCが必ずしも、生産性や機能性において、WEB開発手法における
絶対地位をまだ確立していないことを示す。
TALIBSに関しても、同様に、JSP上のサーバー処理部とクライアント
処理部の直感的区別を妨げ、読みにくくなり、デバッグも困難にさせて
いる部分も少なくない。
0163デフォルトの名無しさん
NGNGThere is more than one way to do it!ってこった。
0164デフォルトの名無しさん
NGNGそこらへんについては
Strutsをダウンロードして、struts-exercise-taglib.war
を参考にすると良いよ。簡単にできる。
0165デフォルトの名無しさん
NGNGhttp://seminars.jguru.com/faq/view.jsp?EID=710844
0166デフォルトの名無しさん
NGNG1.0.xはこの辺バグだらけだから苦労するんだよな。
1.1早く正式版にならんかな。
0167山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0168161
NGNGありがとさん。
バグあんのかよ。。
いろいろ調べなきゃいけないんじゃ、あんま意味ねーな。
この程度の作りは自分で作ってもそう時間がかかるもんじゃないし。
strutsだめぽ。に1票。
0169デフォルトの名無しさん
NGNGpublic 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だめだこりゃ。
添付のバイナリは1.1b3と1.1RC1だが、内容は1.0.xで書いたものを
あわてて1.1対応にした感じ。
1.1で追加された機能やタグがほとんど扱われていない。
01711 ◆lqgT6FBSpw
NGNG0172デフォルトの名無しさん
NGNG何を基準に比べるの?ぜんぜん別物だよ。
01741 ◆lqgT6FBSpw
NGNG0175デフォルトの名無しさん
NGNGおおむねそんな感じ。Tilesは画面の部分部分を部品化してそれを並べていく感じ。
ちなみにJetspeedのベースになってるTurbineはデフォルトで似たような機能がある。
JetspeedはTurbineをベースとしたポータルフレームワークで、ユーザ管理やパーソナライズなどの
ポータルサイトに必要な基礎機能といくつかのポートレットと呼ばれるコンポーネントを提供している。
このへんは一番新しいWEB+DB PRESSに載ってた気がする。
あの記事でもStruts tileとJetspeedを比べるとは言っていないはず。
0176デフォルトの名無しさん
NGNGコンセプトが違うの?
何故に、Jakartaで並列さすのかね?
まだ、Turbineは触りしか読んでないんで、識者の説明キボンヌ
0177デフォルトの名無しさん
NGNG専用のActionServletが必要でしょ?
あれが、困り者。というもの、別なツールでも独自のActionServletを使ってたりするから。
そう言う時はどうすれば良いの?
俺は仕方なくTilesはjspに書いといたけど。
01781 ◆lqgT6FBSpw
NGNGもうある?
0179デフォルトの名無しさん
NGNGたぶん1.0.xの話だよね。
1.1からpluginになったんかな(というか1.0.xにはplugin機能ないけど)
あー本当に早く1.1正式版でないかな。せめて今度の開発が始まるまでに…。
0180デフォルトの名無しさん
NGNGtiles定義ファイルはかなりのサイズになったけど、JSPが散らばるよりはぜんぜんマシ。
総務系Webアプリなら、かなりのお役立ちだと思う。
ただ、JetSpeedの方が「設計してる」という気になってくる。
やってて楽しいのはこっち
0181デフォルトの名無しさん
NGNGあれ、逆にメンテナンス性落としているような気がしてならない。
皆さんに質問。これらのタグの実用上の使い道教えてください。
・bean:page
・bean:struts
・bean:resource
・bean:include
ドキュメント見ても使い方はわかるが使い道がわからない。
いったい何のために用意されたタグなのか?
html:optionsCollectionタグはoptionsより使いやすそうですね。
0182デフォルトの名無しさん
NGNGClassでつか?どんなしくみなのでつか?
0183デフォルトの名無しさん
NGNGCannot find bean putListName in any scope'
って表示されてうまく動きません、、。
tiles-def.xml
では正しく定義していると思います。
どこか気をつけないといけない点とかあれば、
教えてください。
0184デフォルトの名無しさん
NGNGStrutsはあくまでWeb層までのフレームワーク。
TrubineはEJBの全体を包括しているという感じ?
TorqueのようなDB<->JAVAマッピングフレームワークも用意されてる。
って実は俺も良くわかんない。
0185デフォルトの名無しさん
NGNG全然easyじゃない
0186デフォルトの名無しさん
NGNGEJB?????
0187デフォルトの名無しさん
NGNGうん、使うのにとってもコツがいるよね。
0188デフォルトの名無しさん
NGNGstruts覚えるの面倒→否定しとけ みたいな。
PHPでPEAR使わない人もそういう理論が多かったなぁ(関係ないけど)
俺は似たようなフレームワーク作ってたから、strutsがメジャーになってかなり助かった。
作りが糞とかは正直どうでも良い。資料が多くてそこそこつかえるのであれば
自作よりはstrutsを選択すべき。
アーキテクチャーを作る側からすると、自分的にマンセーじゃなかろうと
標準的な仕様を利用した方が、ユーザーやチームを説得するのに楽だよ。
※特にstrutsはWebとかにたくさん資料があるから、教育コストも下がし
あと、strtusのアプローチだと、チームの明示的な分業化が楽。
MVCのカテゴリを明確だし。
0189188
NGNG決める立場からすると楽ってことね。
実際作るときはこうした方が良さそうってのがたくさんあるし。
Websphereが公式に推してるって事実も大きいかも。
0190188
NGNG189の内容も重複してるし…スマヌ
0191デフォルトの名無しさん
NGNGその辺のことあまりよくわかっていないもんで。
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ちょっと 使いまわすアプローチ方法が理解できないんだが…
普通はJNDI形式でDataSourceをキャッシュ管理するSingletonのクラスを
作っておいてそれから毎回取得するやり方でいかない?
※いつもStrutsのDataSourceじゃなくてAPPサーバの利用してるから違ってるかも
コネクションプールについては、struts-config.xmlで設定しておけば
勝手にやってもらえるよ。俺の場合APPサーバが商用なんで念のため
APP側でやるようにしてる。
strutsで利用しているdbcpの信頼性って実際のところどうなのかな。
0193191
NGNGActionSerclet継承クラスの
findDataSourceで返ったDataSouceオブジェクトをHogeBeanにset
HogeBean{
setDataSource()
getDataSource()
}
テーブル単位のSQL発行クラスで
private static DataSouce dataSouce = HogeBean.getDataSouce()
特にsingletonで実装してないけど、、、
メモリリークになるかな?なんかおかしいです?
>普通はJNDI形式でDataSourceをキャッシュ管理するSingletonのクラスを
>作っておいてそれから毎回取得するやり方でいかない?
これってlookupは1回だけじゃない?
0194デフォルトの名無しさん
NGNGこっちの勘違いみたい、そういう実装方法ね。
singletonのアプローチは俺の好みだから、別にそのやり方でもいいんじゃないかな?
HashMapにlookupさせたオブジェクトを格納させるやり方に慣れてたんで。
0195デフォルトの名無しさん
NGNGJakarta-Commons-DBCPのBasicDataSourceか、Appサーバが提供する機能を使えと。
しかし、昨日あたりからStruts開発者MLではGenericDataSourceへ回帰する
雲行きになってきた。現在投票が行われている真っ最中。
CommonsのDBCPとPoolの次期バージョンがFIXしないので1.1の正式リリースが
延びに延びているのに業を煮やした開発メンバーが多し。
0196デフォルトの名無しさん
NGNG詳しい情報ありがと〜
俺もMLチェックしておきます。
Struts1.1の構成を見た感じだと、BasicDataSourceでいい気もするんだけどなぁ…
0197191
NGNGActionServletのinitでlookupしてやればいいという訳ですね。
>>195
1.0.2でもGenericDataSourceのプールは簡易実装ってあったから
結局のところJNDIの利用がベストなのでは。
1.1はよリリースしてほしー。
0198デフォルトの名無しさん
NGNGhttp://ime.nu/www.net-de-dvd.com/
0199デフォルトの名無しさん
NGNGならんのが気持ち悪い。
DBの接続管理なんてModel層だけで閉じておきたいところだね。
なので俺はStruts使ってもDB接続はAppサーバのJNDI使う。
0200デフォルトの名無しさん
NGNGトランザクションの制御はその前でやりたいし。
0201デフォルトの名無しさん
NGNGAppサーバからのDataSource取得はビジネス層でしてる。
んでもって、とったDataSourceをDAOへ設定させて利用って感じだす。
0202191
NGNG>ならんのが気持ち悪い
ActionでfindDataSoureしてDataSouceをDAOに引数として渡すことが
気持ち悪いということかな?
>AppサーバからのDataSource取得はビジネス層でしてる。
JNDIのlookupは必ず1回のみだよね?
そのためにDataSouceオブジェクト?をsingletonで実装するということかな?
0203デフォルトの名無しさん
NGNG> ActionでfindDataSoureしてDataSouceをDAOに引数として渡すことが
> 気持ち悪いということかな?
そう。俺はEIS層へのアクセスはビジネスロジックと考えている。
Controller層でDataSourceは扱いたくない。
VCの部分はJDBC使ってもEJB使ってもWeb Service使っても同じポリシーで
設計したい。
> JNDIのlookupは必ず1回のみだよね?
そりゃそうでしょ。毎回lookupしてたらおおばあへっどが・・・・
0204デフォルトの名無しさん
NGNGクラス類はActionServletからいじらせたくないなぁと。
※RowSetのアプローチも考えられるけど微妙
>JNDIのlookupは必ず1回のみだよね?
>そのためにDataSouceオブジェクト?をsingletonで実装するということかな?
そゆこと。
正確にはlookupしたオブジェクトをsingletonインスタンス内にキャッシュさせておく。
キャッシュに存在しなければ再度lookupさせてくって感じね。
ServiceLocatorちっくに考えてます。
0205191
NGNGFactoryとかなんとか結構複雑になるんすね。
当方、J2EEパターンとか詳しくないので。。。
http://www-6.ibm.com/jp/software/websphere/developer/download/wasstx.html
ちなみにExtension for StrutsがV1.1になってる。今気づいたよ。
以前めちゃくちゃにたたかれてたけど、どうなんだろ?
0206デフォルトの名無しさん
NGNGGoFのデザインパターンより具体的で理解しやすいし。
俺はSunから出てるやつを読んで勉強しますた。
0207191
NGNG了解!
今、結城 浩の本でGoFのパターン覚えてるとこです。
これのことかな?
http://www.pearsoned.co.jp/washo/java/wa_java15-j.html
ほかにお勧め(易しい感じ)の本があればよろしくです。
0208デフォルトの名無しさん
NGNGそれそれ、具体的なリスク含めて書いてあるからかなり参考になる。
というか、昔自分がはまった事ばかりだったりして…
Strutsとの連携考えながら読み勧めると、アプローチ方法を
見つけやすいかもしれないです。
あとお勧めは、最近出た薄いJ2EEパターンの本。
白とオレンジの表紙だったような。
あれも、分かりやすかったです。
※EJBスレにリンクがあったような…
0209デフォルトの名無しさん
NGNG↓208で最近出た薄いJ2EEパターンの本ってやつです。
http://www.amazon.co.jp/exec/obidos/ASIN/4822281523/250-7026755-1439463
0210191
NGNGthanx 立ち読みして決めます。
スレ違いスマソ。
0211デフォルトの名無しさん
NGNGおまいらはMVCのViewテンプレートにTilesをつかってますか?
それともVelocityをつかってますか?
0212デフォルトの名無しさん
NGNGTiles勉強も含めてさわっています。
構成変更時は結構便利だけどタグがいまいち痒いところに手が届かないでつ。
Velocityはさわってません。
0213デフォルトの名無しさん
NGNGたとえばデータを100件のうち20件ずつ表示させたり
テーブルの特定の行だけ色をかえるとかできません
できるのかも?
少なくとも容易に出来ないと使えません
0214デフォルトの名無しさん
NGNGあんたが使えないだけ
Strutsのカスタムタグ使わないよりは使った方がスマートに出来るよ
0215デフォルトの名無しさん
NGNG> たとえばデータを100件のうち20件ずつ表示させたり
そもそもそのUIはどのツールとか言語でも作りにくいような。
Strutsというかサーブレットでやる場合、検索結果をSessionに保持しておいて、
URLか何かに現在の表示ページを取っておいて、Actionでそれ見て対応かな?
> テーブルの特定の行だけ色をかえるとかできません
これは簡単だろ。
ロジックタグがそのままだと思うけど。
0216デフォルトの名無しさん
NGNGStrutsでやるんなら検索結果をsessionに入れておいて、
logicのiterateタグのoffsetとlength使う。
検索結果数もbeanのsizeタグ使って取得できる。
0217215
NGNGなるほど、そっちのほうがViewの責務をはたしてますね。
勉強になりました。
でも、このUIって前画面/次画面ボタンUIでしょ。
嫌いなんだよな〜、どの言語でやっても嵌る。
0218デフォルトの名無しさん
NGNG僕も前にStrutsでソレを実装したけれど、
そもそもそれって、Viewの役割では無いのでは?
Modeが20件用意して、Viewは単純にそれを表示すれば良いだけでは。
>>216さんのと同じ意見かな。SessionスコープのFormにデータを
入れて置いてあげるだけ。
0219デフォルトの名無しさん
NGNGDBからデータを取り出すのもアレだし
0220デフォルトの名無しさん
NGNGStrutsはあくまで、MVCの Cがメインで Vをサポート程度。
だから良いといえば良いのだけど。
0221デフォルトの名無しさん
NGNGタグリブの動作がいまいち掴めてないので、、。
ドキュメントは見たんだけど実際にソースで使っているとこが見たいでつ( ´・ω・‘)
0222デフォルトの名無しさん
NGNGJAVAワールド(雑誌)の2002/05
典型的な買い物篭なんだけど、とりあえずの部分はこれで十分かも。
あとは使う度にドキュメント調べて渡来かな・・・、やっぱ。
まあ、ドキュメントを有志の方々が日本語化しているだけ多少はましかも。
マシンとしか思えない直訳でも、辞書調べるよりは早いときあるし。
いざとなれば原文か。
0223デフォルトの名無しさん
NGNG特定の値によってテーブルの色を変えたい
(たとえば60点以上の人は青とか)
ストラツでは
<td><bean:write・・・</td>となりこれでは色が変えれません
(<td bgcolor=red>のようにしなければならないので)
やっぱタグlibを作らなければだめ?
(タグ¥LIBはややこしそう)
それが出来ないとSTRUTS使う気が・・・・
それとコンポボックスにDBから値を読み込んでセットする方法・
やはりタグLIB?
0224デフォルトの名無しさん
NGNGJSTLでも使えば?
0225デフォルトの名無しさん
NGNGJSTL使って解決する問題でもない
>>223
あらかじめActionのexecute(perform)でBeanに色の値を入れておいて
<td bgcolor="<bean:write・・・/>" ><bean:write・・・/></td>
でいいんでないかい?
>コンポボックスにDBから値を読み込んでセットする方法
optionsタグかoptionsCollectionsタグを使う
これぐらいの使い方ぐらい思いつかないでtablib自作は無理ぽ
0226デフォルトの名無しさん
NGNGBeanに色の判断までやらせると
Viewごとにそれぞれ別な色をつけたい場合に困るのでは?
表現に関する判断はViewでやるべきだと思う。
0227デフォルトの名無しさん
NGNG看護婦、OL、人妻とっても安かった!
http://www.net-de-dvd.com/
0228デフォルトの名無しさん
NGNGEJB層の話はまったくからまない。
Web層のみ
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGTomcat3.24 & IIS5.0で色々試したんですが、力尽きた...
0231デフォルトの名無しさん
NGNG0232230
NGNG普通のservletはport8080を指定しなくても
動くんども、strutsを使ってるアプリは404出てしまうでつよ
IISじゃなくて、アッパチなら方法が本家のinstallに書いてあるんでけども、
どうしたらええでしょう
早く帰りたいニダ....
0233デフォルトの名無しさん
NGNGそれ以前のヴァカが多い気がする。
>>213
氏ねよ。使えねーのはお前の頭だ。
Strutsを使えねーと語るな。
0234デフォルトの名無しさん
NGNGweb.xmlの問題だろ。
0235230
NGNGうーん、そのstrutsを使ったwebappは、URLにポート番号8080を付けると
問題なく動作する
(テストの為にまだport8080は閉じてない。ちなみに閉じても駄目だった)
アパッチでは、apache-tomcat.confなるファイルを修正することで解決できる
らしいのだが、IISとの連携時に使用するisapi_redirect.dllは、それに相当する
設定が出来るんだろうか....という感じで....テケスタ....
0236デフォルトの名無しさん
NGNGそういうおまえが使いこなしてるとはおもわれず。
0237デフォルトの名無しさん
NGNGいやわかってる。
いや、J2EEの中にstrutsと競合するものがあったら邪魔になるかなとおもっただけ。
JDBCとEntityBeanでは競合する部分があるのでstrutsにも同じようなものがあったのかと
思ったよ。
けど、Turbineはstrutsとは競合せざるをえないのかな?
0238デフォルトの名無しさん
NGNG>>223
>>あらかじめActionのexecute(perform)でBeanに色の値を入れておいて
>><td bgcolor="<bean:write・・・/>" ><bean:write・・・/></td>
>>でいいんでないかい?
なるほど・・・しかしみなさんはどうしてるんですかね?
他に方法がある?
>コンポボックスにDBから値を読み込んでセットする方法
>>optionsタグかoptionsCollectionsタグを使う
>>これぐらいの使い方ぐらい思いつかないでtablib自作は無理ぽ
そのとおりですね(w
まだ勉強中なんでお手柔らかに(w
0239230
NGNG一応動くようには成る
でもタグライブラリ使ってると、url中の"?"が";j"に化けるし、
gifとかは読み込まれないし、相変わらず苦戦中...
0240デフォルトの名無しさん
NGNGその手の疑問なんだが
たとえばjava.lang.String[][]っていう配列の配列を
テーブルで表現するときどうするか考えたのだが
logic:iterateを2重入れ子にしてもダメだった
かわりにJSTLのforEachもつかったがダメだった
しょうがないので
string[0][i]
string[1][i]・・・
ってなかんじ
やっぱ、コレクションとか単なる配列しか無理なのか?
「配列の配列」って俺よく使うから結構困る
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNGその質問で何を聞いているのかわかる奴いると思いまつか?
0243デフォルトの名無しさん
NGNGStruts1.1から追加された機能「モジュール」のことか?
struts-config.xmlを分割できるっていう。
モジュールの定義をstruts-config.xmlに書いてる時点で無理だと思うが。
0244デフォルトの名無しさん
NGNGモジュールの定義はwe.xmlに書きまつ
0245244
NGNG0246243
NGNGそのとおりですた。
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デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGそれは不要なので問題ありません。
それを必要という人は設計を間違えているのです。
0249デフォルトの名無しさん
NGNGJB8?メモ帳じゃきついようにおもうが
特にエラー特定のとき
0250_
NGNG0252デフォルトの名無しさん
NGNGStrutsの影の部分は何だったの?
近所の本屋は立ち読みできないように紐で括られてるので。
ちなみにJavaWorldは買った。
0253デフォルトの名無しさん
NGNG買ってないがJakartaProject徹底攻略によれば
Beanを一つ追加するたびにstruts-config.xmlを書き換えないといけない
といいう面倒くささ。
Beanを追加した分だけstruts-config.xml
が肥大化する欠点があるということらしい。
ツールによって少しは解決するらしい。
Caminoという有料ツールについても載っていた。
ちょっと記事が古いのでこれが現状ではどうなのかは知らない。
0254山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0255デフォルトの名無しさん
NGNG>>Strutsの影の部分は何だったの?
チラッとみたけどわりかし実務的な内容だったような・・・
買うべきか
0256デフォルトの名無しさん
NGNGJDBCからレコードセットを取得して結果を一覧表示指定のですが
アクション側
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デフォルトの名無しさん
NGNGStruts以前の問題です。
基本的なJDBC APIを使ったプログラミング
java.utilパッケージの使い方
大文字小文字の区別といった基本的な文法
勉強し直してください。
ちなみに、Strutsを使わなかったらできるのですか?
おそらくそんなんじゃできないでしょう?
0258デフォルトの名無しさん
NGNGStruts初心者というか、Java初心者っぽ…
たぶん、レスしても意味わかんねーだろーから、
まずはJava初心者スレで勉強した方が良いよ。
そもそも bunruidaicd,bunruidainm の2つの変数に
延々と値をを入れて何かいいことあるの?
Attributeに設定してる変数もわけわかんねーし。
0259258
NGNGList 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この辺を見てlogic:iterateタグの使い方を知るか、
http://www.jajakarta.org/struts/struts1.0/ja/target/documentation/struts-logic.html#iterate
もしくはStrutsの配布ファイルの中のstruts-exercise-taglib.warを
デプロイして、実際に使っているところを見ながら学ぶかすれ。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGそこまでしてStrutsを使う意義があるのだろうかといつも思う
0265デフォルトの名無しさん
NGNG禿同
基本がわかってないやつは手を出すべきではない
とりあえず、こういうやつ→ttp://www.atmarkit.co.jp/fjava/rensai/smartj01/fig1.gif
を自分でつくってからStrutsつかうと理解深まる
しかし、理解してしまうとStruts使うのが面倒になるんだよな
設定個所多いし・・・
0266デフォルトの名無しさん
NGNGhttp://yahooo.s2.x-beat.com/linkvp/linkvp.html
0267264
NGNG結局さ、ビジネスサイドで実装しようと思ったら
それぞれの条件にあわせて設定や機能追加しなきゃならなくて
それなら最初から比較的シンプルでカイタマイズしやすいJSTL使うし
そんなにカスタマイズするところがなければ最初からJSPそのまま使ったりしたほうが・・
と無限ループに陥ってしまう
0268デフォルトの名無しさん
NGNGなんか、MVCっていうより
Strutsの窮屈な枠の中でプログラミングしてるみたいで気持ち悪い
確かに、複数人数でやるときは開発は楽なんだけどね
たとえば、ValidateやTilesは重宝している
だが、Strutsはそれらに比べて枠の規模がデカイので
四方八方ふさがれた気分
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG漏れの一つ得た結論としては、そもそも Java はウェブプログラミングに向いてない。
スクリプト言語がいい。
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNGJDO?
そんなの本当にあるんか?
0274デフォルトの名無しさん
NGNGhttp://java.sun.com/j2ee/javaserverfaces/
JDO(java Data Objects)
http://java.sun.com/products/jdo/
まあ、なごめや。
0275デフォルトの名無しさん
NGNGすぐにでもなくなるわけでもあるまいし
0276デフォルトの名無しさん
NGNGいいんじゃない?
まぁ、仕事で扱うようになってから勉強はじめても
ぜ〜んぜん問題ないレベルの難易度だし・・・
マッタリいこうや
0277デフォルトの名無しさん
NGNGStrutsがいいとか悪いとか好きとか嫌いとか抜きにして
この先しばらくは仕事する上で持っておいたほうがいいスキルだとは思う。
0278デフォルトの名無しさん
NGNGそう。Java に単調な文字列処理は向いていない。
GUIプログラミングするときや、複雑なモデルを処理するときは実に素晴らしい言語だと思う。
現実的には文字列を処理することが多いのがウェブプログラミングだから、
そういうときは Ruby, Python じゃネーノ? と
0279デフォルトの名無しさん
NGNGその文字列処理をなくすために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 に埋められる
のでシンプルにかけるのですが、このときに配列だったらどうしたら
いいんだろう、と小一時間以上悩んでいます。
0281280
NGNG煮詰まってます。
0282デフォルトの名無しさん
NGNGじゃ買い物かごみたいな機能もロードバランサーなら無理なのか?
素直にJSPでやればサーブレットがわで
param1=v¶m2=vとしてクエリーストリングでJSPでGET(w
0283動画直リン
NGNG0284デフォルトの名無しさん
NGNGHttpServletRequest#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はたしてヘボかな。
高可用性とスケーラビリティの面からいったら
HttpSessionなしのステートレスアプリ>アプリサーバ固定のバランシング
だろ。
0287デフォルトの名無しさん
NGNGちゅうかそんなの適材適所だろ?
結果として上手く行けばそれが最適。
ただ、大体の場合は隣の芝生は良く見えるし、作ったシステムは一から(=設計から)作り直したくなる。
0288280
NGNGセッションが使えない理由というか、ロードバランサーを扱ってるのが
他部署というのと自分自身ロードバランサーで何ができるのかいまいち
よくわかってない新人なので、セッションが使えないというより
セッションを使えないと思い込んでいる、あるいは使おうと思えば
使えるらしいけどできれば使いたくないんだと解釈してください。
>>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です)
いまいち使い方がよくわかりませんが踏ん張ってみるタイ。
0289285
NGNG> 思っています。FormBean に String 型の配列の getter/setter
> を用意してやると html:multibox でそれに値を set したり、
> logic:iterate で取り出したりできるんだったら html:hidden で
> 配列に set することもできるはずだろうと。固執し過ぎ?
それでいいと思うよ。がんがれ。
0290280
NGNG> それでいいと思うよ。がんがれ。
がんがります。
で、とりあえず 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とかが出てしまって没。
0291280
NGNG<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">
というタグが出る必要があるんですよね。試行錯誤中。
0292280
NGNGnull だったことのようです。
private String[] stringArray = new String[10];
public String[] getStringArray() {
...
}
public void setStringArray(String[] stringArray) {
...
}
とかしてやったら出なくなりました。でもこの場合って配列の数を固定
させなきゃいけないんですよね。うーん。やればやるほどはまる。
0293age
NGNG0294293
NGNG0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG名前忘れたけど2000円のやつがイイ!!
validateとかtilesとかDynabeanとか
対応してるやつ買っとけ
0298デフォルトの名無しさん
NGNGこれですか。
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簡単すとらっつですかね?お勧めは。
あと、おらいりいは今日発売かな?
その2冊でとりあえずはいけると思う。
0300デフォルトの名無しさん
NGNGだまされたよ。明日じゃん。
0301デフォルトの名無しさん
NGNG徐々に蝕まれだし、形勢利無く、Eclipseに乗り換えました。
結果としては大満足してるんですが、ただ一つ、
ApplicationResources.propertiesの置き場所にのみ困ってます。
基本的にはWEB-INF/classes/<パッケージフォルダ>/においてるんですが、
そうすると再ビルドのとき、必ず消されてしまうんですよ。
ここはありさんを使って毎回コピーするしかないんですかねー
0302デフォルトの名無しさん
NGNGsrcの下におけばコピーされるよ。
プロパティファイル用のプラグイン使えばnative2asciiもやってくれるし。
0303デフォルトの名無しさん
NGNGまず第一に全ての動作が遅い。。
エディタで入力していて表示が追い付いてくれない。
俺の環境だけなんすかね?
それと、新規ファイルを作成する時に毎回継承するクラスとかを
聞かれるのが非常に嫌だ。自分で入力した方が早いし直感的。
でも、まわりの勢いに負けそう。
0304デフォルトの名無しさん
NGNG遅いってどのぐらいのPC?
継承ボックスは書き込まずにOK押せばいい
あとで自分で書き込めばいい
0305デフォルトの名無しさん
NGNGStruts本、オライリーとカンタンの二冊注文しちまったじゃないか!
しかも、今日届く!
ワクワクしてきたじゃあないかぁ!!
0306デフォルトの名無しさん
NGNGすまんかったけど、”?”つけたじゃん。
ごめん。
というわけで、あっしも今日買いにいくっす。
0307デフォルトの名無しさん
NGNGコピーされますた。アヒャ(AA略
うーーん、Eclipse賢いなぁ。
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG1.1じゃないの?
下の安定バージョンで覚える意味は特にないよ。
1.0を実務で使うときになったらやれば十分でしょ?
あー、これ使えねーのかよ、1.0だめだな、って。w
0310デフォルトの名無しさん
NGNGカンタンstrutsって(・∀・)イイ!!ですか?
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGそれって自分でプラグイン書くってこと?
それとも元々ついてるの?
0313デフォルトの名無しさん
NGNGいまから読むので感想聞かせてくれよな
0314デフォルトの名無しさん
NGNG聞かせてくれって、藻前の所に届いたんだろ。
藻前の感想を書いてくれよ
0315デフォルトの名無しさん
NGNGカンタンの方は中に書いてあるソースコードのフォントが
俺的に好みではないがわかりやすくかかれているので良しとする
Windows環境、Linux環境のそれぞれの説明がある(一応動作確認部分だけ)
使うデータベースは両環境ともPostgresSQLらしい・・・
LinuxではPostgreSQL使ったことあったが
Winでは使ったことなかったので俺的にはうれしい(Cygwin使うみたい)
「他のプロダクトとの連携」の章では
Eclipseのプラグインの使い方が載っている
オライリーのほうは、まあ言わなくてもだいたい内容は想像できるだろう
ちなみに、まだこれから読むので上の感想は
あくまでも第一印象として捕らえて欲しい
「こういう説明はありますか?」
「あの技術についての説明あるの?」
といった質問にはできるだけ答えますが
良し悪しには答えるの勇気いるので勘弁してください
(察してください)
0317デフォルトの名無しさん
NGNGそれら2冊は「JAVAは中級ぐらいの本を独学、仕事で使うのでStrutsを短期間で理解したい」
というワシの思いに答えてくれそうですか?
0318デフォルトの名無しさん
NGNG十分だと思う
内部事情まで知らなくてもいいのなら
「カンタン」の方で十分
0319デフォルトの名無しさん
NGNG0320317
NGNG助かります。
早速アマゾンで買うでつ。
引き続き読破後の感想などをお願いしまつ。
0321デフォルトの名無しさん
NGNGEJBとどう連携するかも書いてある
ロギング、パフォーマンス考察・・・
Validatorの単独使用・・・
まあ、最終的には読んどくべきか
0322デフォルトの名無しさん
NGNG机の上にドンと飾っておいて、上司・同僚を威圧したければオライリーに限るな。
よくわかるのは「カンタン」だろうが、これを会社で読むとなめられそうだから、家で読むべきだな。
てことは、
「カンタン」にオライリーの皮をかぶせて会社で読む
が最強ということか。
0323デフォルトの名無しさん
NGNG読むと賢くなった気にはなれる。
入門書には不適だけど、たまにピンポイントで必要なことが見つかったり。
簡単Strutsはいいよ、とりあえずその本と、StrutsについてくるWarを見れば十分じゃないの?
0324デフォルトの名無しさん
NGNGワー、ウォー、戦争
「jar」
ジャー、ジェイエイアール、日本アーカイブ機構
0325デフォルトの名無しさん
NGNG「わー」って読むやつ、しね。
0326デフォルトの名無しさん
NGNGイィェアー(ル)
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGAmazonで二冊注文した俺だが
今日になってまたAmazonから「カンタン」の方だけ
送られてきました
俺、2回クリックするようなことしてないんだけど・・・
っていうか、「カンタン」の方だけ来るって言うのもおかしい
Amazonのショッピングカートデバッグしてもいいですか?
0330デフォルトの名無しさん
NGNG>>329
普通に返品すればいいんじゃないの?
2冊たのんでイネーよって。
0331デフォルトの名無しさん
NGNGお前の言ってるプラグインと俺の思ってたプラグインはどうやら違うようだ。
つうか、普通このスレでプラグインっつったら org.apache.struts.action.PlugIn のことだろうがよ。
0332デフォルトの名無しさん
NGNG既にEclipse使ってるからかな。
件のプラグインも使用済みだし。
0333デフォルトの名無しさん
NGNG出来れば、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おれなら、めんどくさいこと考えるのは嫌いなので
最初からJavaクラス作って吐き出させる
0335_
NGNG0336デフォルトの名無しさん
NGNG下から読んでもストラッツ
0337デフォルトの名無しさん
NGNGピュ.ー ( ゜∇゜ )つ <上から読んでもストラッツ
=〔~∪ ̄ ̄〕 下から読んでもストウルツ
= ◎――◎ 全然ちゃうやんけボケ〜(゜∇゜)/ 「ウンマンコ」
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG>>340
支柱はJavaServer顔との組み合わせが多くなりそうな悪寒。
0342デフォルトの名無しさん
NGNGチキンなオレは1.02でいいや。
0343デフォルトの名無しさん
NGNG1.0.2だとダイナマンが使えない
0344デフォルトの名無しさん
NGNG1.1b2の頃から1.1を見ていると、1.1finalは「出たばかり」という感じが全くしない。
むしろ、ブラッシュアップされて、バグフィックスされてようやく安定版として
リリースされた、という感じ。
0345デフォルトの名無しさん
NGNG全然メンテナンスされていない放置プレイの1.02の方がよっぽど不安だぞ。
0346デフォルトの名無しさん
NGNGオライリー本すごくいいね。結構役に立ってる。
今のところ一番まともなStruts日本語本だ。
0347デフォルトの名無しさん
NGNGいや、そうでもない。
「あ、これ知りたかったんだよな」
と思うところに差し掛かかって、
ワクワクしながら読み進めると
説明が簡単に終わっていたり
0348デフォルトの名無しさん
NGNG半年前なんて、技術評論社かなんかの本だけだったような。
雑誌で取り上げられても、よくて買い物篭まで。
ほんはオライリーと簡単Strutsで十分。
0349デフォルトの名無しさん
NGNG知ってたら教えてケロ。
0350ななしちゃん
NGNG0351デフォルトの名無しさん
NGNG2ちゃんねる
0352デフォルトの名無しさん
NGNG派遣情報サイト「はたらこねっと」
http://www.hatarako.net/
拡張子がモロに.do
0353デフォルトの名無しさん
NGNGテキストボックスとかチェックボックスがある場合の
ActionFormにsetさせるための記述の仕方教えて下さい。
0354デフォルトの名無しさん
NGNGプロパティを配列型にすればいい。
0355デフォルトの名無しさん
NGNGこれは常識ですか?
どこかに書いてありますか?
0356デフォルトの名無しさん
NGNGそんぐらい調べたらどうだ?常識と言えば常識。というか
ちょっと考えれば誰でも思いつくことだろ?
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だせーやり方、やっぱみんなこの程度のやり方してんだな。だせー。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNG自分の知ってること、覚えたことを
他人に教える余裕の無い人
そんな余裕の無い人の知識なんて大したもんじゃない
0360356
NGNGActionFormにはMap-backedやList使ったり、
JSPではiterate使ってindexed使ったりとかか?
JSTL使えばもちっとシンプルに書けるかもな。
しかし、>>355 のレベルじゃそこまで教えても理解できんだろ。
とりあえず>>356までで充分じゃないのか?>>355には。
っちゅうことであのような回答になった。
0361デフォルトの名無しさん
NGNG大変でしょう。素直に尊敬いたします。
0362デフォルトの名無しさん
NGNG表は行の集まりなんだから、行の他の項目と無関係に列で値を抜くのはだせぇ。
0363デフォルトの名無しさん
NGNGBeanのネスト構成にするとか?
でもそれだとDynaActionFormにできないんだよね・・・・
HTMLはあくまで平面なので、俺はDynaActionFormとかで普通に受け取って、
Acitonでネスト構成のオブジェクトに変換している。
BeanUtils使うと結構簡単にできるし。
0364デフォルトの名無しさん
NGNG↓テキストボックスなどは「ここの可変行数のフォームを扱うには?」を見ればできると思う。
http://homepage2.nifty.com/ymagic/struts/faq.html
0365コンスタンツ
NGNGまずはstruts-exampleアプリケーションの解析をやってるんですが、
このアプリ、Sessionに追加するbeanのIDやらなにやら、コンスタント
な値一切合財をConstantsっていうクラスに格納してるんですね。
これはこれで見やすいのですが、コンスタント値を変えるたびに
リコンパイルが発生するのは少々マズーな気がします。
これってメジャーなやり方なんでしょうか。
strutsらしいコンスタント値の持ち方ってどんなんでしょうね?
web.xmlでinit-paramを指定する・・・ではあまりに普通すぎる?
イイ!やりかたがあったら教えてください。
p.s.カンタン本、タイトルとは裏腹に読むトコ多くていいっすねぇ。。
0366デフォルトの名無しさん
NGNGby ジョセフ・ジョースター
0367デフォルトの名無しさん
NGNGpropertiesファイルに書くのはどう?
struts-config.xmlには<message-resources />を複数書いて
複数のpropertiesを使い分けられるのは知ってる?
0368とも
NGNGhttp://s-rf9.free-city.net/page003.html
0369デフォルトの名無しさん
NGNGstruts-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");
という感じで取得できます。
0370369
NGNGキーを指定して、
<bean:message bundle="message.foo" key="key"/>
<html:img bundle="message.foo" srcKey="key"/>
という感じで参照できます。
0371デフォルトの名無しさん
NGNG> strutsらしいコンスタント値の持ち方ってどんなんでしょうね?
「値が固定されていること」が重要か、「値の中身」が重要か。
どちらなのかによって実装方法は変わる。
前者ならばソース中に constant として定義する。
後者ならば後に変更できるようにする。
後に変更できるようにするにしても、やり方によって運用が異なる。
・アプリのインストールが必要
(.properties ファイルを起動時に読み込み)
・設定管理クラスが持つ再読み込みメソッドのコールが必要
(リソース管理クラスが .propertiesファイルを読み込む)
・即時に更新される
(データベースに格納している)
それぞれ信頼度とコストも異なるから、仕様や設計ポリシー、運用手順で選ぶべきだよ。
一概には言えない。
0372デフォルトの名無しさん
NGNG>>369-370
なるほど、勉強になります。
変更の可能性を考えて使い分けたいと思います。
0373デフォルトの名無しさん
NGNGあんまり近くで使ってる人いないから、結局Struts1.1+JSTLで
やってしまっているんだが…
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG最近それを理解出来ない厨房プログラマが周囲に多発&増殖しております。
『家でJSTL使った見たら、(・∀・)イイ!感じだから』、『みんなTorqueが
便利だと言ってるから』etc,,,という理由で新技術を取り込もうとする輩が
多くて。。しかも、ここでいう『みんな』は大抵は2chを指す。
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGまあ、実際便利かもよ。
乗り換えのコストを払う価値があるかどうかの見きわめって
結構難しいかも。
0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNGいや、単にStruts-ELの方が便利そうだったから聞いただけです。
他に使っている人がいたら参考になるし。
>>375
新技術を否定してる人が、その新技術を実際に使った事が
無いことも多いと思いますよ。
周りに2,3年前のJavaの知識で止まっちゃってる人が多いので…
※文句言ってる人がantやjakarta系ライブラリ知らない事もあるし
とりあえず、どんどん納期が短くなっていく最近の開発だと、
新しい技術やコンポーネントで、少しでも逃げ道を探して
いかないと、死にそうになります。
もうじっくり開発できる時代はないんだろうなぁ…
0380デフォルトの名無しさん
NGNG>>375の台詞例はただの例ですのでそれらが良くないとは
思いません。実際Torqueは便利だと思います。
>>379
>新技術を否定してる人が、その新技術を実際に使った事が
>無いことも多いと思いますよ。
そういう人にはその新技術がどういうメリットとデメリットを
持っているかを示して説得しないと。。。
そういう説得をせずにただ、『***は便利っぽい』といういい加減な
理由で推薦されても困るっていう話。特にデメリットを示さずに推薦
するのは悪徳商法に近いものさえ感じる(まぁ、いい過ぎかもしれんが)
0382デフォルトの名無しさん
NGNGJWは提灯だからなあ。
0383デフォルトの名無しさん
NGNGActionFormのプロパティに
String vName;
っていう名前付けたのですが
これを動かすとgetterメソッドがないって言われてしまいました
しばらく何でだろう?とはまっていたのですが、
なぜか勘が働き、プロパティの名前をvvNameに変えたら
動きました
既出の話かもしれませんが
getVName()はダメでgetVvName()はOKということは
Strutsが読みにいくgetterは
get+最初の文字を大文字にする+2番目は小文字に変換+残りは変更なし
ということなのでしょうか?
結局、じかんなくて試せなかったのですが
もしかしたら最初の直す前のvName場合
getterをgetVname()にすればよかったのですかね?
いちおう、アクセサはすべてEclipseの自動生成なのですが
そのときはgetVName()となっていました
これは、Strutsの仕様なのでしょうか
もしくは、アクセサ書くときのお決まりなのでしょうか
0384デフォルトの名無しさん
NGNGアクセサ書くときの決まりだね。詳しくはこちらをどうぞ。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/beans/Introspector.html#decapitalize(java.lang.String)
0385デフォルトの名無しさん
NGNGありがとうございます
ってことはEclipseはそこまで行き届いてないということですかね?
生成時にリフレクション使ってないのかな?
まあ、あんな名前つける俺も俺だけど・・・
0386デフォルトの名無しさん
NGNGリンク先を読んだんだろうか?行き届いているというか、
EclipseにしてもStrutsにしてもJava標準の作法に従っただけでしょ。
リフレクションは必ず使っているはず。
ま、このは知らないと結構はまるところらしいよ。
Java Houseにも同様の記事があった気がする。
0387デフォルトの名無しさん
NGNGいやだからね
使っているのにどうしてEclipseはきちんと直さないの?
ってことです
あるいは命名時に警告ダイアログ出すとか
行き届いてないって言うのはそういう意味です
0388デフォルトの名無しさん
NGNGいけないってこと?
0389デフォルトの名無しさん
NGNGそうなんすよ
っていうかそのルールに従って読みに行くので
「見つかりません」となりました
おれも最初の文字だけと思ってたよ
だから、みんなも知ってるのかな?的な意味で書いたわけです
0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNG所々で「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<bean:write />では?
0393デフォルトの名無しさん
NGNGありがとうございます
以前にそれやってやっぱダメでした
念のため今やってみましたがダメです
っていうか普通のプログラマなら
JSP内に値をハードコートせずにBeanからもらってくるのが普通ですよね
みんな>>391で書いたようにやってたとしたら気持ち悪いと思わないんですかね?
それとも、私の頭の中に
「Strutsのカスタムタグ使えば、スクリプトレットは使わなくていい」
っていう、思い込みがあるのですが
これは勘違いなんでしょうか?
0394デフォルトの名無しさん
NGNGやっぱり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勘違いしているようだが、
スクリプトレットは <% %>
<%= %> はRuntime Expression(実行時式)
0397デフォルトの名無しさん
NGNG方法がほしいなら、Struts-Velocityにすれ!頼むから流行ってクリ〜。
0398デフォルトの名無しさん
NGNG日本語の技術情報を多く出して、裾野を広げてください。
0399デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG流行るかどうかといわれると…。
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGお前は日本しか頭にないのか?
日本で流行るかどうかが問題なのか?あ?
流行るかどうかってどこを基準に言ってるんだ?あ?
外国の人(プロジェクト)が書いたソース見てみろ!!
Velocity使ってるのが多く見られるぞ。
0404_
NGNG0405デフォルトの名無しさん
NGNG残念ながら、日本で流行るかどうかは重要なのだよ。
周りで誰も使っていないのに「外国では」と言って
周囲の知らない技術得意げに使われてもねぇ・・・・
0406デフォルトの名無しさん
NGNGスクリプトレットを極力使わない理由に
「デザイナーにコードを触らせない」「デザイナーの負担を軽くする」
ってのがあると思うんだけど、テンプレート言語やタグライブラリ使うとローカ
ルマシンでブラウザを使い、直ちにデザイン検証ってのがやりにくくなり、かえ
ってデザイナーフレンドリーでなくなるのでは?
と思うのは漏れだけ?
デバッグや後々のメンテをラクにするため、という点ではわかるんだけど。
<%= %>くらいなら、デザイナに書かせてもいいよね?書かせてるよね?(確認)
0407369
NGNGVelocityだったらローカルマシンでの検証はJSPよりもはるかに
やりやすいと思うけど。
<%= %> をデザイナに書かせると、ローカルでのデザインのプレビューは
まず不可能でしょ。
0408デフォルトの名無しさん
NGNGそれは言えてる。タグライブラリなんかもそうだよね。特にstruts-html
0409デフォルトの名無しさん
NGNGおまえ、Velocity使ったことないだろ。
0411デフォルトの名無しさん
NGNGVelocityの方がしっくりくる。
0412デフォルトの名無しさん
NGNG日本しか頭に無くは無いが、日本で流行る事は重要。
舌街はやってほすぃ。
0413山崎 渉
NGNG__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGたとえば君が、ここで
「Velocity仕事で使い始めた。スゲーよこれ!(以下レポート)」
とカキコすることにより、興味をもつ者が増え、
投じた一石が鏡の水面に無限の波紋を描くように、
一個の原子の振動が回りの原子に作用し、やがて物質全体を
振動させ巨大なエネルギーを生み出すように、
地に蒔かれた一粒の麦が芽吹き花開き実をつけては枯れその
実が再び地に落ちを繰り返すうちに豊穣の麦畑が広がるように、
皆が使い始めやがてVelocityが時代を席巻するようになる可能
性もあるわけだ。
先ずは種蒔く人となれ。
仕事で使ってみたところの具体的な感想を求む。
0416デフォルトの名無しさん
NGNG使い方はしているけど、JSPの代替にするには機能面で心配。
VelocityでJSPを置き換えられちゃってる人に聞きたいんだけど、
カスタムタグが使えなくて困ることってほとんど無い?
0417デフォルトの名無しさん
NGNGなんて逝ってみる。
0418デフォルトの名無しさん
NGNGいわない事を強く祈ってます。
同僚、後輩にチャンネラ大杉だっつーの。
あ、俺もか。
0419デフォルトの名無しさん
NGNG>>416
自分で書くべし
http://nekop.programmers.jp/velocity-tools/docs/ja/
0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG>カスタムタグが使えなくて困ることってほとんど無い?
非常にシンプルな作りなので、
カスタムタグと同様の動きは、工夫次第でできる。
Toolsを自分で拡張することで、事実上何でもありになる。
0422397
NGNGCocoonみたいに、「全部XSLT」ってのもどうなんだろ。XSLTはそれ自身が
わけわからんから、難しいかな。PDFファイルとエクセルファイルが作れる
のは、おいしいかも。
くたばれJSP!というか、くたばれASPの亡霊!という気持ちがありまして。
何でロジック層をJSPで書くんだよ!というプロジェクトにただ今埋没中 つД`)
デバッグがムズイムズイ。
設計者に「あなたデバッガ使ったことないんですか?」と小一時間問い詰めたい。
0423デフォルトの名無しさん
NGNG>何でロジック層をJSPで書くんだよ!というプロジェクトにただ今埋没中 つД`)
>デバッグがムズイムズイ。
>設計者に「あなたデバッガ使ったことないんですか?」と小一時間問い詰めたい。
というか、基本中の基本、MVC知ってますか?ってね
0424デフォルトの名無しさん
NGNG併用するの難しい?
ひとつのページにこれら全部使うの難しい?
さらに、これにくわえVelocity使うのは難しい?
0425デフォルトの名無しさん
NGNG何言ってんだお前、全部別もんじゃねーかボケ
おそらく自分で言ってて意味わかてね-だろお前
0426デフォルトの名無しさん
NGNGTorqueやEJBとくっつくんだから、そんなのできるに決まってるだろ。
難しいかどうかは君の能力しだいだと思う。
0427デフォルトの名無しさん
NGNGてゆーか、たとえば、JSPファイル内にPHPコードを埋めることってできんの?
0428デフォルトの名無しさん
NGNGそれは考えればわかるんではないか
0429デフォルトの名無しさん
NGNGできないとは思うけど>>425を見ていると「できる」といっているような・・・・。
他のファイルやディレクトリに置いてリンクさせるなり委譲させるなりは
できることはわかってるけどさ。
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG拡張可能性だのう。
strutsは再利用しやすい?
struts-config.xmlを更新するのが面倒そうな印象がある。
0432デフォルトの名無しさん
NGNG>やっぱり一番気になるのはstrutsで作ったWebpageのメンテナンス、保守、管理、
>拡張可能性だのう。
>strutsは再利用しやすい?
フレームワークって再利用部分を構成してるから
フレームワークって言うんじゃないの?
>struts-config.xmlを更新するのが面倒そうな印象がある
そんなこたーない
っていうか使ってみてよ一度でイイから
0433デフォルトの名無しさん
NGNGいや、使ったんだけどさ。
ベーンを追加するたびにstruts-config.xmlに書き加えるってのがどうも。
0434デフォルトの名無しさん
NGNGある程度の開発してればわかると思うけど
そういう情報を
XMLにするか、HashMapにするかどんなやり方でやっても
絶対、修正個所は出てくる
おれはStruts出る前に自分でサーブレットの遷移先とリクエスト情報を
HashMapに入れるやり方でやってたが
どっちにしてもweb.xml書き換えないといけない
で、Strutsやこういうやり方の利点は新しくベーン作ったときに
その他のファイルは再コンパイルしなくてイイって言うことなんだよ
新たな要求が出てきた場合にそのclassファイルを客に渡して
struts-config.xmlを書き換えるだけでいいって言うこと
どうせ修正個所が出てくるならワザワザ再コンパイルするようなやり方と
XMLファイルを修正するのとどっちがいい?
逆に聞くけど他にいい方法ある?
0435デフォルトの名無しさん
NGNGおい、俺・・・必死だな
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNGおいちょっと待て
言ってること正しいが
脈絡分からん
全然わからん
だれ?誰なの?なに?何が目的なの?
ホットデプロイだなんて・・・
いやらしい!まあ、いやらしい!
0438デフォルトの名無しさん
NGNG関白宣言じゃないのか?
♪もまいらおれに・・・・
♪Strutsのよさを・・・
♪教えてください・・・
♪たのむから・・・・
♪かなりむずかしい〜
♪話かもしれないけど・・・
♪Strutsのよさを・・・
♪聞かせてください・・・
0439デフォルトの名無しさん
NGNGこれでStrutsでのVelocity利用も進むか?
0440デフォルトの名無しさん
NGNG♪使ったけれど・・・
♪言うに言えない・・・
♪ことだらけ・・・
♪かなり愚痴が多い・・・
♪話になるが・・・
♪もれの本音も・・・
♪聞いとくれ・・・
0441デフォルトの名無しさん
NGNG他にいい方法。
あるディレクトリに突然クラスが現れたら
antでstruts-config.xmlを自動更新できないかな?
0442デフォルトの名無しさん
NGNGEclipseでリファクタリング機能もXML側に機能されるとありがたい。
そんなstrutsプラグインある?
0443デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGStrutsの設定ファイルなんて全然苦じゃね
しかも1枚だし
0446デフォルトの名無しさん
NGNG複数ページにまたがる項目を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回答得たければもっと簡潔な文章かけよ。
くだらんこといれてると読む気にもならん。
0449デフォルトの名無しさん
NGNGXDocletか。それもAntで使えない?
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNGXDocletに@strutsタグがあったね。
XDoclet + ant + strutsで問題なさそう。
http://xdoclet.sourceforge.net/tags/apache-tags.html#Tag%20Usage,%20Class%20Level%20(@struts)
0452デフォルトの名無しさん
NGNGここで大きな声で言おう!
『 こ ん な も の い ら ぬ ! 』
まぁ、これからはじめる人は良いかもしれないけど…。
少しだけ調べる力がある人(普通のプログラマにはある)なら
ネットで足りる。
あえてフォローすると、Strutsタグについてのリファレンスにはなるかな?
こういうのはブラウザで見るよりも本の方がいいからね。
俺は会社が『Struts本読んでみてよ(=人柱になれ)』と
お金をくれたから買ったんだよ。一日で読み終わるよ、まじで。
0453デフォルトの名無しさん
NGNG同感。
発売前はちょっと期待してたけど、立ち読みして買うのやめた。
1.1ではActionMappingsはDEPRECATEDなのに、そのことに一切触れず、
あたかも現役クラスであるかのような記述がある。
タグや構成ファイルの説明でも、モジュール相対と書くべきところが
コンテキスト相対と書いてあったりする。
0454デフォルトの名無しさん
NGNGということは、ブランドに惹かれてオライリーのウマ本買った俺は正解ですか?
0455デフォルトの名無しさん
NGNGうちの近くじゃ売ってないから中身が確認できん
0456452
NGNGむしろこっちが聞きたい。馬本はどう?
俺も>>455と一緒で近所に売ってないから未確認なんだよね。
でも、Strutsについての本と言ってもStruts自体シンプルな作りだから
どの本も似たような感じになりそう。
ポイントはタグ周りのリファレンスとしての利用価値と
サンプルアプリの質かな?
どちらにせよ、Struts処女じゃなければ(すべての)本の必要性は感じないかも。
0457デフォルトの名無しさん
NGNGたしかに、カンタンは誤字脱字多いな
しかし、馬(オライリ)が良いかというとそうでもない
なぜか?
はっきり言って、オライリーは
なんか、どの項目も駆け足で説明しているみたいで気持ち悪いよ
で、いつもオライリーではあることだが構成(まとめ方)が悪い
Strutsつかって開発している人には実際必要ないんじゃない?
と、おもうわけよ2冊とも・・・だいたいStrutsだって進化するはずだから
実際の生の情報を吸収したほうがいいし、こんな本買うほどのものでもない
0458デフォルトの名無しさん
NGNGカンタンStrutsを間違って2冊買った
例の俺だが、
やっぱ、Struts自体それほど難解なものじゃないので
一般人は必要ない
さらに言うなら簡単ストラッツのほうを一冊誰かもらってくれ頼む
0459デフォルトの名無しさん
NGNGよかったらもらえませんか?
メアド入れてます。
0460デフォルトの名無しさん
NGNGソースを追うのが一番楽に理解できるからるほんとに。
FrontControllerパターンだからエントリポイントは1ヶ所だし。
書籍のメリットはタグライブラリのリファレンスだけだな。
0461デフォルトの名無しさん
NGNGはげどう。
Strutsのソースコードはそんなにたいした量じゃないしね。
「あの本使えねぇ」「この本使えねぇ」言ってるのは
自分で調べる能力が無く何かに頼らなければならない人か
英語できない人。
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGあほか。
「自分で調べる能力が無く何かに頼らなければならない人か
英語できない人。」のためにそういう本があるんだろ。
0464デフォルトの名無しさん
NGNGhttp://homepage3.nifty.com/coco-nut/
とても見やすく出来ました◎
http://homepage3.nifty.com/coco-nut/fe/ero.html
0465デフォルトの名無しさん
NGNG>サンプルアプリの質かな?
ウマ本のサンプルアプリはオライリーのサイトからDLできるよ。
ショッピングカートなサンプルアプリ等があった。まだよくみてないから質はわからんけど。
0466デフォルトの名無しさん
NGNG買ってない人は
http://sourceforge.net/projects/struts/ の
Beer4All Shopping Cart Demo が完全版?なのでこれを試して
感想をよろしければ聞かせて下さい。
おれは向いてないのかな。さっぱり分かりませんでした。
storefrontはなんか永続化のところが抜けてるみたい。
特にOJBというかTORQUEのテーブルの作り方とか
OQLとかORMがさっぱりです。
セッションBEANの方もよく分かりませんでした。
パッケージ名の分類もutilとかserviceとかframeworkとか
ああいう分類が普通なのでしょうか。
読んだ方教えて下さい。
0468デフォルトの名無しさん
NGNGそうだよ。だから「あの本がどうだ、この本がどうだ」と言っているヤツは
自分で調べる能力がない奴か英語できない奴に限られるんだろ?
0469デフォルトの名無しさん
NGNGネットワークの外部接続を許可していない情報センターに常駐している奴とかな。
んで、本はバカのためにあると言う奴らは、自分がどうやって大きくなったか
考えた方がいいと思うけど。
たまたまStrutという技術を自分がやろうとしたときに、自分に多くの
予備知識があったから、入門者向けの簡単な本なんて要らないと言う結果になっただけ。
ネット上で調べられると言うのは、たまたまその技術が公開されていて、
親切な人がいろいろやってWebに載せていてくれるから。
それを受け売りして理解した気になって、偉そうな気分になっている奴の方がバカ。
偉そうな事を言うなら、その理解した事を自分なりにまとめて、本やWebで公開しろよ。
どうせ、コミュニティに貢献しようと言う気も無いんだろうけどな。
0470デフォルトの名無しさん
NGNGニ ニ ニーチェか サルトルか
みーんな悩んで大きくなった
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNGそれ以降は、リファレンス部分以外は役立たずになるけど。
そう思っていて買う分には何の問題もないっす。
0473デフォルトの名無しさん
NGNGそんな自明なことをわざわざ書くなってことだよ。
0474デフォルトの名無しさん
NGNG英語もできない、マニュアルも読まない、
そんな奴でも開発でStrutsを使うプロジェクトに入るかもしれない。
そういう奴を1%でも救うのがああいう本だ。
まあ、実際フレームワークってみっちり理解する一部の人と、
使えるレベルの多数の人で開発するために提供されるもんだろ?
その使えるレベルの底辺を如何に救うかが成功のポイントだと思うけど。
0476デフォルトの名無しさん
NGNGJSPファイルを直接呼ぶのはいけないらしいのですが
一番最初の画面だけは特別なのでしょうか?
Strutsに詳しい方教えてください
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGいけなくはないが、MVCをきっちり考えたら
リクエストを受けるのはViewのJSPではなくControllerのほうが望ましいな。
> 一番最初の画面だけは特別なのでしょうか?
一番最初だけはって何故思うのかな?
0479デフォルトの名無しさん
NGNGhttp://yahooo.s2.x-beat.com/linkvp2/linkvp2.html
0480デフォルトの名無しさん
NGNG>一番最初の画面だけは特別なのでしょうか?
いや、特別じゃないと思う。
『だめ、絶対』とは言わないけど、>>478が
言う通りリクエストは常にControllerが処理するべきだと思うな。
0481デフォルトの名無しさん
NGNGありがとうございます
「一番最初」と思ったのは、本のサンプルなどでよく取り上げられる例で
loginさせるサンプルがあるのですが
それの入り口は直で.jspファイルなんですよね
で、この.jspファイルの遷移元ってどこから来たのでしょう?ということになるのです
ですから、一番最初は特別なのかなとおもいまして・・・
とくに、こういう場合
(最初にBeanの値を参照しなくてもいいので)例えばtextフィールドの中は空欄でも良い訳ですから
最初は特別なのかなと言う思いに拍車がかかったのかもしれません
で、また変なことなのですが.doっていうのはなんかセキュリティ的にいけないのかなと思い
変更したいのですがコレはStruts的には許されるのでしょうか?
0482デフォルトの名無しさん
NGNGこの根拠がまったくわからん。なんで???
0483デフォルトの名無しさん
NGNGJSP を直接参照するように設計するのも、まちがいはまったくない。
ただ、JSPを直接参照する場合には、Servletサイドで行うようなintelligentな処理をまったく行えなくなる。
これは後々おおきなデメリットになるよ。
必ず ActionServlet を介してから JSP なりの presentation layer に転送するのがベストプラクティス。
/WEB-INF 以下に JSP を配置することもある。
こうすれば、必ず ActionServlet を経由することになるし、JSP を直接リクエストされることもなくなる。
servlet-mapping には、*.do ではなく /do/* を使ったほうがよいとされているな。
たとえばExcelファイルを出力したりする場合に、拡張子で問題が起きることがあるらしい。
「セキュリティ的にいけない」というのは確かに意味がわからん。
0484デフォルトの名無しさん
NGNG/do/* を使うとモジュール分割できなくなるよ。
ちょっと機能が多くなるとモジュール分割はとてもイイ!のに。
0485デフォルトの名無しさん
NGNG↓
Struts使ってやがるなこのサイト (メモメモ・・・
↓
Struts重大なセキュリティーホール発見される
↓
よっしゃあのサイト攻撃だ!
ってことじゃない?w
Strutsのセキュリティーってなによw
でもまあ、個人的には[do]を変えたいって言うのは賛成だな
だってダサいんだもんパチスロのMr.Doを思い出す
0486デフォルトの名無しさん
NGNG>拡張子がdo
>↓
>Struts使ってやがるなこのサイト (メモメモ・・・
WAFも.doだろ。
なんでそれだけでStrutsに限定されるのか意味不明。
>>481
同梱サンプルやドキュメントに倣って.doを使う例がよく見うけられるが、
Struts的には変更しても無問題
0487デフォルトの名無しさん
NGNGIBMのどっかのサイトでそう薦めてたぞ。
0488デフォルトの名無しさん
NGNGソー希。
0489デフォルトの名無しさん
NGNGこんな拡張子はいやだ
http://www.2ch.net/2ch.do
0490デフォルトの名無しさん
NGNG『いや、理論上は何でも出来ますよ。』って答えたら『拡張子を
サイト名と同じにしてくれ』っていわれた。
ほんとにいいのか、お客さんよ〜。
http://***/logon.2ch
http://***/adduser.2ch
http://***/userlist.2ch
みたいな……。
………、いいかも。。。(藁
0491デフォルトの名無しさん
NGNG別にいいんじゃない?
0492デフォルトの名無しさん
NGNG2chを例にしたからよく見えるですよ、たぶん。。
実際のサイト名は10文字あるですよね。
例えるなら
http://***/logon.applejapan
http://***/adduser.applejapan
http://***/userlist.applejapan
こんな感じ。。。
別に悪いとは思わないけど、ちょっとやだなって…
0493デフォルトの名無しさん
NGNG「へー.NETですか?」
「いえJavaです」
「JavaでもASP使えるんですか?」
「Javaは言語も超越します」
「さすがですねJava」
0494デフォルトの名無しさん
NGNGパラメータ付きのURLなんか
xxx.douyo?xxx=yyy
どうよ?
0495デフォルトの名無しさん
NGNG洒落が効いててグッド
0496デフォルトの名無しさん
NGNG動かすたびに動揺しているように見える。
0497デフォルトの名無しさん
NGNGついでに、アクションのpathの値も /ibmとか /microsoftにすると
/ibm.douyo?xxx=zzz とか /microsoft.douyo?aaa=bbb とかw
0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG■■□□□□■■□□□■■□□□□■■
■■□■■□■■■□■■■□■■□■■
■■□■■■■■■□■■■■□■■■■
■■□■□□■■■□■■■■■□■■■
■■□■■□■■■□■■■□■■□■■
■■□□□□■■□□□■■□□□□■■
■■■■■■■■■■■■■■■■■■■
0500デフォルトの名無しさん
NGNG>「JavaでもASP使えるんですか?」
>「Javaは言語も超越します」
このあたりちょっとおかしいような気が。
0501デフォルトの名無しさん
NGNGActionがスレッドセーフじゃないこと。
インスタンス変数使っていたんだけどさ。
試験で他のクライアントの結果がでてきちゃってさ。ビクーリしたよ。
よくよく調べてみればinitializeでインスタンス作って、使いまわしてるなんて知らなくって。
やっぱframework使うにしても、中身と動き知ってから使うべきだな。
0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNGActionFormの話は誰もしてないぞ。
0504デフォルトの名無しさん
NGNGちゃんとUsersGuideに書いてあるのだが・・・
http://jakarta.apache.org/struts/userGuide/building_controller.html
4.4.1 Action Class Design Guidelines 見れ。
0505デフォルトの名無しさん
NGNGほんとだ。書いてあるね。しかも太字でご丁寧に。
全部一読しておくよ。
0506デフォルトの名無しさん
NGNGFilterの実装について決まり事はありますか?
普通のサーブレットみたく、web.xmlに指定してやろうと思うんですが
問題はないですよね?
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG外注の新人と外注のPMに聞いてくれ。
ソース見なかったおれも悪い。
0509デフォルトの名無しさん
NGNG問題はない。Filter継承してマッピングするだけだ。
でもURLの振り分けに使うだけだったら設計考え直したほうがいい。
0510デフォルトの名無しさん
NGNGまあ実際のところ、スレッドセーフか否かなんて意識したことも無くて
単にインスタンス変数を使っていないから問題に気付いていない、
っていう連中も沢山いるんだろうね。
0511デフォルトの名無しさん
NGNGありがとうございます
とりあえず、logの取得場所を同じにしたい要件なんです
0512デフォルトの名無しさん
NGNG質問なんですが
Actionサーブレットからの遷移先をJSPにするのではなく
XML文書をXSLでHTMLに変換してそれをそのまま出力(PrintWriter#print())としたいのですが
どうするのが一番イイのでしょうか?
いまは、
1.struts-config.xmlの<action-mappings>でforward要素書かない
2・Actionサーブレットの戻り値をnullにする
一応、これやれば動くのですが
このやり方でいいのか心配なのです。
こういう場合にStrutsには他のやり方用意されているのか?というのが知りたいのです。
Strutsマスターの方おしえてくださいお願いします
0513デフォルトの名無しさん
NGNGわたしんとこで、帳票だすのにiTextでやてって、
ActionのForwordは書かずに、Responceに流して次画面遷移してるよ。
回答になってないかな?
0514デフォルトの名無しさん
NGNG基本的にはそれでかまわないんだろうけど、
「リクエスト処理やDB処理などを行うアクション」と「XSLT処理とHTML出力を行うアクション」
は別にしといた方が良いと思う。後者がJSPの代わりにViewになるようなイメージ。
0515デフォルトの名無しさん
NGNG「XML文書をXSLでHTMLに変換してそれをそのまま出力」だけを行うServletを用意して
IncludeActionかForwardActionを使うという方法もある。
<action path="/xmlToHtml"
type="org.apache.struts.actions.IncludeAction"
scope="request"
parameter="/path/to/xmlConvertServlet">
0516デフォルトの名無しさん
NGNG1stStep: 論理的画面として出力
2ndStep: 物理的画面として出力
たとえば XML出力→XSLT変換を加えてHTML出力とか。
表示に必要な内容を保持するオブジェクト出力→JSPで加工したJSP出力とか。
0517デフォルトの名無しさん
NGNG→GUIに貼り付け
→PDFで出力、印刷
→HTMLで出力
→Word、EXCELなどで出力
等など
といったエンジンを作っておけば、どんなビューでも
簡単に作れるようになるね。Apache-Cocoonはステキだね。
0518山崎 渉
NGNG0519デフォルトの名無しさん
NGNGそれに相当するクラスっていうのは用意されているんですか?
いまは、普通にフィルター実装してるんですが・・・どうなんでしょう?
0520デフォルトの名無しさん
NGNGフィルターは2.0からみたいなので、それしかないな
ただ、アプリ全体なら手間かかんないけど
一部だけ使うのならweb.xmlの編集しないといけないな
わかってるだろうけど
0522デフォルトの名無しさん
NGNG入力フォーム使わずにほかの処理だけする
Actionクラスはないのでしょうか?
0523デフォルトの名無しさん
NGNGある。っていうか
入力フォーム使うか使わないかは自由だが・・・?
0524デフォルトの名無しさん
NGNG作ろうと思っています。そして以下のようなアクションマッピングを
記述したのですが、一つ納得がいかない箇所が有ります。
モジュール名: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" 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なるほど。そうやってやるのですか。
でもそうするとforwardは良いですが、inputの為にForwardAction
を別途用意しなくてはいけないということになりますよね(設定ファイルに
記述するだけとはいえ…)。
とにかくこれで試してみます。
0527526
NGNGの一言を忘れてました。
謝
0528デフォルトの名無しさん
NGNGpagesディレクトリをadminディレクトリに作成して、そこにjspを配置。
一般クライアントからpagesディレクトリ以下へのアクセスを禁止する
WEB-INFディレクトリ以下にページを置くのって、
単にWEB-INFディレクトリへの一般クライアントのアクセスが禁止されてるからでしょ?
0529デフォルトの名無しさん
NGNG>>528の意見を勧めるよ。
完全にサーブレット介してのJSPアクセスしたいんであれば
web.xmlで*.jspのアクセスを禁じるとかやれば良いんではないの?
とりあえず、WEB-INF以下にjspファイル置くのはオススメしません。
※weblogicで痛い目に遭います…
0530デフォルトの名無しさん
NGNGそうなのかぁ。
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デフォルトの名無しさん
NGNGServlet2.3仕様から「Servletコンテナからはアクセス可能」と名言されてるのに。
0532デフォルトの名無しさん
NGNGまあ、そうなんだけど実際WebLogic使う機会って多いからさ・・・
どうせならどのAPPサーバでも動くようなディレクトリ構成に
しておいた方が良いよ。
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGずいぶんのんびりした報告だな(w
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG書く場所も違うし
時代も違う
どこから現れたんだ?w
0537デフォルトの名無しさん
NGNGどこに書けばいいんだ?
いいじゃん、元Jakartaファミリーだろ。
0538デフォルトの名無しさん
NGNG直ぐ近くやんけ。
0539デフォルトの名無しさん
NGNG君、いい人だね。
0540デフォルトの名無しさん
NGNGついでに書き込んでおいてやったぞ
0541デフォルトの名無しさん
NGNGTorqueについては、そのスレに死ぬほど書いてある。
過去ログ読んでから書けや。
0542デフォルトの名無しさん
NGNGいい人だが有能ではないね。
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNGていうか、そういう書き込み見てて恥ずかしいからやめれ。
自分で使いこなせてないって宣言してるようなもん。
機能をきちんと把握してれば、十分業務レベルで使いこなせてるぞ。
アーキテクチャーがよろしくないとか、そういう話は別ね。(念のため)
0545デフォルトの名無しさん
NGNGすまんのう。
3.0 beta2の頃の駄目駄目なイメージがいまだに残ってるもんで。
0546デフォルトの名無しさん
NGNGいったい何が駄目駄目なんだ?
具体的に挙げてくれ!
0547デフォルトの名無しさん
NGNG単に動作検証に失敗してるだけなんじゃない?
0548デフォルトの名無しさん
NGNGそうなのかあ。
何が駄目なのか具体的に挙げてくれれば、グルたちが助けてくれるだろうにのう。
0549デフォルトの名無しさん
NGNGあえて言うとすればパフォーマンスくらいかな?
適当にSQL直で書くよりはいいけど。
0550デフォルトの名無しさん
NGNGパフォーマンスって別にSQL実行するだけでしょ?
ひょっとして JOIN せずに毎回DB見に行ってるとか?
0551デフォルトの名無しさん
NGNGが Torque スレ教えてくれた。
0552デフォルトの名無しさん
NGNGOracleだと、ちょっとしたSQLの書き方によって死ぬほどパフォーマンスが
変わったりするので、意図したとおりのSQLを吐けないと困るときがあるのよ。
んで、吐かれるSQLをいちいちチェックしながらTorque(に限らないORM)で書いて
いくと、結局直でSQLを書くのと変わらないというか…
納品物のソースにはSQLは直接出てこないので、見た目綺麗になるけど。
まぁ、Oracle使わないといけない時点で、ORMを使うという選択肢はないんだけどね…
0553524
NGNG返事遅れましたがレスありがとうございます。
おっしゃる通りWEB-INF以下にjspを置くのは
直接のアクセスを禁止する為です。
いろいろ考えた結果>>528氏の意見でやってみようと思います。
(ほとんど修正要らないし)
なにより設定ファイルがスッキリするのがうれしいっすね。
0554デフォルトの名無しさん
NGNGTorqueじゃないけど、うち今使ってるのよ。
ORMとOracleの組み合わせ…
参照の組み合わせはすべてviewで作成したんだけど
保守に入ってそのアプローチで良かったと死ぬほど思った。
データ件数大幅に変わって、実行計画が変わっちゃったときとか青ざめるよね。
0555デフォルトの名無しさん
NGNG> XMLで一時ビューを出力するようにしておけば
ってのに大変興味あるんですが、いいツールあります?
Velocityあたりでできるんでしょうか?
会社でだれかがjtiddyとかいってたけど微妙に違う気がする。。。。
0556デフォルトの名無しさん
NGNGまあ、ツールって言うか
サーブレットCocoon使ってみなさい
0557デフォルトの名無しさん
NGNGDynaValidatorFormで、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デフォルトの名無しさん
NGNGresetメソッド呼べばいいじゃん
0559デフォルトの名無しさん
NGNGでも、Dynaだぜ?
>>557
正しいやり方はこうだ!
request.getSession().removeAttribute("属性名");
0560&rlo;ンアア&lro;naMsturtS
NGNGそういうことだ
0561557
NGNGすばやいレスありがとうございます。
sessionの属性を削除するんですか、それは気が付きませんでした。
ありがとうございました。
0562デフォルトの名無しさん
NGNGServletをきちんと理解する前に
Strutsに手を出しただろ?
それじゃ困るんだよ。
基本だよ基本。
0563517
NGNGApache-Cocoonだって書いたつもりでしたが。
http://cocoon.apache.org/
0564デフォルトの名無しさん
NGNGresetメソッドあるよ?なんで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まあな、
だが基本は>>559のやりかただ!なぜか?
チェックボックスとかもしあった場合にはresetは効かない
そういう意味でもsession.removeAttribute(attName);
の方がいい
0566デフォルトの名無しさん
NGNG> チェックボックスとかもしあった場合にはresetは効かない
ハぁ?
0567デフォルトの名無しさん
NGNG中途半端な知識で混乱させるのいいかげんにやめれ
0568565
NGNGん?おまえらDynaActionFormの
resetメソッドを好きなように実装できるの?そんなばかな・・・
それとも、言っている事が上手く伝わってないのか・・・
0569デフォルトの名無しさん
NGNGこれ解説してくれ
0570デフォルトの名無しさん
NGNGform-propertyを初期化したいのならinitialize使えばいいわけだが
0571565
NGNG>>569
>チェックボックスとかもしあった場合にはresetは効かない
チェックボックスの値をクリアするにはresetメソッドの中で
チェックボックスをクリアする処理を自分で書かないといけません
コレはなぜなのかまずわかりますか?
チェックボックスの値はチェックボックスがチェックされているときしか
リクエストパラメータに送られません
なので、最初にtrueを入れてフォームのSUBMITボタン押したとします
そのあと、今度同じフォームでチェックを外したとしても
リクエストパラメータには「checkbox1=false」等というパラメータは送られません
つまり、Formの中ではずーっとチェックボックスに当たるプロパティはtrueになります
なので、resetメソッドの中でチェックボックスをクリアする処理を自分で書かないといけません
これと同じでDynaActionFormのresetメソッドの中でチェックボックスをクリアする処理は自分で書かないといけません
でもコレは不可能です。DynaActionFormはそのまま使うクラスなので無理です。
>>570
>form-propertyを初期化したいのならinitialize使えばいいわけだが
initializeは、どこでどのタイミングで呼びますか?
0572デフォルトの名無しさん
NGNGご苦労さんwよくできました。
initilizeは好きなタイミングで呼べばいいんじゃないの?
>>557が一生懸命BeanUtils・・・と書いているタイミングで呼べば。
0573デフォルトの名無しさん
NGNG「チェックボックスとかもしあった場合は」じゃなくてDynaActionFormでは、と言うべきでは?
だってチェックボックスの有無に関係なくDynaActionFormではそのままではプロパティ値の初期化はできないのだから。
それとも、チェックボックスじゃない場合はDynaActionForm使った場合でもプロパティ値の初期化できるとでも?
0574565
NGNG>ご苦労さんwよくできました。
コレはどういう意味が?;;
>>573
初期化は出来ます
resetは出来ません←たぶんこっちが言いたいのだと思いますが・・・
そうですね
0575デフォルトの名無しさん
NGNG反論してる奴の方が意味分からん。
sessionスコープでのチェックボックスの取り扱いって
色々面倒くさいんだよね…
0576575
NGNGStruts1.0.2でActionFormを死ぬほど作ってたから、粒度が細かくなってもあまり違和感がない・・・
※いや、試してないんだけどね。
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGえ?Dynaの機能を利用しつつresetとか特殊な処理とかを実装する
拡張継承って意味なんだけど。
プロパティとか主要validateを書く必要ない分、楽にならないかな?
0579デフォルトの名無しさん
NGNGそれやるぐらいだったら、最初からActionFormつかっても良いのではないでしょうか?
という意味です。
0580デフォルトの名無しさん
NGNGプロパティをstruts-config.xmlだけの記述で済ませたいって事だよね。
プロパティ記述がActionFormとstruts-config.xmlに分散しちゃうのは
やっぱだめなのかな。
※LabelValueのListとかをActionForm側に持たせたり。
項目数が多いときにDynaとValidatorの組み合わせが素敵だったもんで…
0581デフォルトの名無しさん
NGNGフレームワークがreset()を呼び出したときに、
必要な処理(booleanなフィールドをfalseにするとか)を行うものだと思っていたが。
フォームビーンがセッションスコープの場合は再利用されるから、
reset()のタイミングで初期化が必要なわけでしょ。
0582デフォルトの名無しさん
NGNG明示的に呼んじゃいけないわけじゃないだろ?
アプリケーションから呼ぶと何か不具合でもあるのか?
フレームワークからしか呼んでは行けない理由でもあるのか?
0583581
NGNGおっしゃるとおり、呼び出しても何の問題もありません。
ただ >>557 の状況で、reset()にクリアを実装してしまったら、
ページ毎にreset()が呼び出されて、フィールドがクリアされてしまうから、
元も子もないと思うのだが、間違っているか?
0584デフォルトの名無しさん
NGNG・reset()って呼び出すものじゃなくて、呼ばれるものだろ?
→そうとも限りません
・ チェックボックスとかもしあった場合にはresetは効かない
非常に紛らわしい表現です。普通はチェックボックスがある場合はresetを使え、と言われていますが
この表現だとチェックボックスがあるとresetメソッドが使えないように読めますよね?
565と581が同一人物かはわかりませんが。
557は572が書いたようにinitializeを呼ぶのが一番手っ取り早いと思います。
呼ばれるタイミングにもよるがremoveAttribute使った場合はパフォーマンスが気になります。
そのたびに毎回DynaBeanオブジェクトを新たにインスタンス化しますので。
0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG今まで、resetを呼びたいと思ったことは無いんだが、
どういうときに呼びたくなるのか、教えてくれ。
Actionの中から呼ぶんだよな?
Actionの中に入ったときには、すでにリクエストのパラメータによって
フォームビーンの値はセットされているだろ。
それからreset()呼んで、どう役に立つんだ?
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNGプロジェクトでも禁止にしています。
Map と同様で、DynaActionForm の場合、キー名の文字列が間違っていてもコンパイルでは
わからないですよね? 動かしてみないとわからないため、私はどんな小さい ActionFormでも、
いつもクラスをわざわざ作成しています。
じゃぁおまえは Map を使わないのか?と言われるとそんなことはないけど....
0589デフォルトの名無しさん
NGNGそれじゃ、BeanUtilsも使えないな。
っちゅうか、Strtus使えないじゃん。そんなこと言ってたら。
コンパイルは通るけどstruts-config.xmlの
<form-bean>や<acrion>に書くクラス名が違っていたら・・・
0590デフォルトの名無しさん
NGNG避けられる範囲のもは避けるということだろ。
日本語の読解が苦手だとチーム開発で苦労するよ。
0592デフォルトの名無しさん
NGNG<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向こうが勝手に配列にしてくれるので
<html:text property="hoge" value=""/>
<html:text property="hoge" value=""/>
<html:text property="hoge" value=""/>
と、書いてください
0594592
NGNGうーん、それだと配列の順番がバラバラになるから困るんだよね
実際には
<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バラバラってどういうこと?
書いてる順番になるはずだが・・・
ソースの表示でHTMLを見てごらんよ
0596デフォルトの名無しさん
NGNG500エラーが恥ずかしいってだけなら、エラーページ用のJSP用意してweb.xmlでエラーページ指定してやれば?
0597デフォルトの名無しさん
NGNG面倒だけどパラメタの検証するようにつくれよ
無効な値の場合TOPページ飛ぶようにするとか・・・
0598592
NGNGそのままでは
<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力になりたいのだが、何をやりたいのかよくわからん
まず、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スレでは足りない)
0600592
NGNGありがとうございます
具体的な例として複数の名前:フリガナを入力するフォームがあるとします
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いま、自分が作った似たような感じのアプリで試したのですが
エラーになりますな・・・
javax.servlet.ServletException: BeanUtils.populate
java.lang.ArrayIndexOutOfBoundsException
配列の場合は考慮されてないか・・・
エラーページ作るしかないのか?
0602デフォルトの名無しさん
NGNGサーバにリクエストを送る時点でブラウザが
HTML中での出現順にならべて送るようにW3Cの仕様で規定されているが、
Servletのrequest.getParameterValues()では何の規定もないはず。
たぶん出現順にならんでるんだけどね。
0603デフォルトの名無しさん
NGNG想定範囲外のindexはsetしなければよい
public void setFoos(int i, String foo) {
if (0 <= i && i < 3) {
// set
}
}
0604デフォルトの名無しさん
NGNGそれを、どこに書くの?
0605デフォルトの名無しさん
NGNGStrutsつーか、Java頑張れよ…
0606デフォルトの名無しさん
NGNGお前だろボケw
配列のプロパティで容量オーバーのインデックスが送られてきたときは
なぜかそのままエラーになる
なので>>603のようなことやったとしてもその前にエラーになる
だから「どこに書くの?」ってこと
>>603
どこに書くんですかそれを?
public void setFoos(int i, String foo)←このメソッド誰が呼ぶんでしょうか?
例え呼んだとしてもコレ呼ぶ前にエラーになってます
0607デフォルトの名無しさん
NGNG605じゃないけど
>public void setFoos(int i, String foo)←このメソッド誰が呼ぶんでしょうか?
commons-beanutilsでpopulateしてくれるんじゃないの?
String[] foos; のセッタとして
void setFoos(String[]) のかわりに void SetFoos(int i, String foo) を書いたら。
0608デフォルトの名無しさん
NGNGですから、エラーが
javax.servlet.ServletException: BeanUtils.populate
なんですよ!
だから、
>String[] foos; のセッタとして
>void setFoos(String[]) のかわりに void SetFoos(int i, String foo) を書いたら。
こんなことやっても無理その前に前述のエラーでます
0609デフォルトの名無しさん
NGNGコケてるということだろ。
>>603、>>605はStruts初心者ということで許してやってくれ。
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNGやってみたのか?
0612デフォルトの名無しさん
NGNG0613599=601=604=606=608
NGNG592のことか?
まあそうだが、実際動かせば、言ってる事が理解できる
動かさずに理解不能とか言ってる奴はいかんけどね
>>611
607じゃないけど、おれは全部確認した
0614599=601=604=606=608
NGNGあんたが粘着って思ってるのは
質問者(>>592)ではなくて
多分俺のことだと思うが・・・
0615609
NGNGsetIndexedProperty()メソッド最後の以下の部分で
ArrayIndexOutOfBoundsExceptionを捕捉するようにするしかないのでは?
> } else {
> // Modify the specified value in the array
> Array.set(array, index, value);
> }
0616609
NGNGメソッド内ですかね。
0617デフォルトの名無しさん
NGNGString getFoos(int k) も作った?
組だよ。
0618デフォルトの名無しさん
NGNGString[] getFoos();
は、削除しなきゃだめだよ。
0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG>>619>>620
質問にも答えず、横から茶々入れるやつらが言うことではありませんよ。
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG>javax.servlet.ServletException: BeanUtils.populate
>なんですよ!
自分の思い通りの答えが返ってこないからってキレるなよ
答える気なくす
0624デフォルトの名無しさん
NGNG>なぜ質問に答えていないと断定できるのだね?
今まで解答してた人がそんな発言しますか?
>>ですから、エラーが
>>javax.servlet.ServletException: BeanUtils.populate
>>なんですよ!
>自分の思い通りの答えが返ってこないからってキレるなよ
>答える気なくす
本当にそうでしょうか?自分が勘で答えているから答えられないだけではないですか?
それに、このことは既に>>601で述べられています
散々「前スレ読め」と言われているのに
見ないで適当な答えを返せばキレてもしょうがないのでは?(実際にキレてるのかは知らんが)
つまり、前を読んでいない&試していないのに茶々入れてるのがバレバレってことですね
0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG要するにお前が、こういうときだけ出てきて茶化す奴ということだな。
0630デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
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を作るしか無いのか?
教えて下さるとうれしいっす!
0633632
NGNGエラー文字列内の[title_image]を[image]と読み替えて下さい。
0634632
NGNG申し訳有りません。
自己解決しました。
DynaValidatorFormではなく
DynaValidatorActionFormを使用したところ
解決したようです。
ちなみにまだDynaValidatorFormとDynaValidatorActionFormの
違いも分かっていません。ドキュメント読んでみます。
スレ汚し激謝
0636デフォルトの名無しさん
NGNG関根潤三かよ。
0638デフォルトの名無しさん
NGNG「解決した」と思っているところでスマソだが
それでは解決じゃないんだよ。
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出てるよー
0639609
NGNGおい!
俺も一旦お前を擁護してみたが、ちゃんと検証し直したら>>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;
}
}
の二つのメソッドが定義されていれば、範囲外の添字が
パラメータとして指定されても問題ない。
0641デフォルトの名無しさん
NGNG人がいるからって、罵倒するのはどうかと思うんだが。
とりあえず試してみろと言いたい。
せっかく教えてもらっているのに、自分でそれを解決できなかったからって、
できないって!なんて言われたら正直答える気なくす。
0642621、624
NGNGえ?いつ擁護しました?
ホントに勘違いしているようですが
私は、>>608さんじゃないですよ
そんなコトより、あなたの発言
>>>603、>>605はStruts初心者ということで許してやってくれ
↑についてあやまっておいた方がいいと思われますが・・・
0644デフォルトの名無しさん
NGNG>>641 名前:デフォルトの名無しさん 投稿日:03/08/14 13:03
言ってることはよくわかるし、正しいけど
お前自体普段からそう思って答えたりしてんのか?
お前自体がゴチャゴチャ言われたからってマジになんなよ
それに、相手が切れたってカンケー無いじゃんほっとけばいい
どうせ、夏なんだし・・
まあたぶん>>605、>>606当たりでおかしくなってきたのだが・・・
0645デフォルトの名無しさん
NGNG多分上達しないんで、自分でいろいろやって理解するほうがいいです。
いろいろなMLなんか見てても、質問する人は毎回質問か、単発の質問で消えるか
ばっかりで、その人が答える側に回ったのなんて、殆ど見たことないしなぁ。
とりあえず、思いつく限りのすべてのパターンを使ってみればいいんじゃないか?
あと、このスレはいつからStruts質問スレになったんだ?
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG質問して教えてもらうということは、どういうことか理解しての発言ですか?
相手に切れられてまで教えようと思う人はマゾ以外皆無だと思いますが。
0648デフォルトの名無しさん
NGNG残るのは真性厨房のみ。
0649デフォルトの名無しさん
NGNGなんだよ、自分の時だけ静粛に語りやがって
0650592
NGNGの通りやればできました
どうもcommonsのBeanUtilsの仕組みをよくわかってなかったみたいで
添字つきのアクセッサは書いてたのですがヨソでも使われてるとは考えてませんでした
皆様どうもお騒がせしました
0651デフォルトの名無しさん
NGNG静粛?
口パク?
それとも、目で物を言うということ?
0652デフォルトの名無しさん
NGNGこの件に関した話じゃないけど
回答者の言葉じりつかんで、
つっこみいれるのはいいけど、もう少し穏やかに印象良く指摘できないものかなとも思う
逆に、指摘された方は素直に「すまんかった」っていえればいいいのだが・・・
0653デフォルトの名無しさん
NGNGせっかく答えても、正しく当てないで、こんなことやっても無理とか言い出すし。
これって、言葉尻捕らえてることになるのか?
0655デフォルトの名無しさん
NGNG煽りがいやなら、MLで質問しろ。
回答するほうも同じだ。
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG普段は無視する質問でも
誰か一人が答えを言うと
おせっかいなことに余計な肉付けして
さらに話が膨らみ
質問とはカンケーないところで
バトル
0658デフォルトの名無しさん
NGNGだから、前に書いてあること読まないで書き込むから
切れたんじゃないの?
尚且つ、
>>607だけでは説明不十分
その時点では、「出来ない」っていわれても仕方が無い
最終的な完全なやり方は
>>617で発表されたわけであって・・・・
擁護するつもりは無いけどね
0659632
NGNGわぁ、そうなんですか。
ありがとうございます、為になりました。
しかし、今のところDynaValidatorActionFormでファイルの
アップロードが出来ているのですが、サポートされていないの
でしょうか? ちょっといろいろ検証してみます。
DynaValidatorForm と DynaValidatorActionFormの違いは
教えていただいてやって分かりました。
分かりやすい解説ベリーサンクスです。
0660デフォルトの名無しさん
NGNGここ質問スレじゃないし。
軽く答えてもらえただけでもありがたいのに。
0661デフォルトの名無しさん
NGNGおまえも上乗せ突っ込みに参加したいの?w
0662デフォルトの名無しさん
NGNG完全なやり方を一発で知りたかったら、金出してしかるべき会社に聞けばいいのに。
掲示板やMLで聞いたって、最低限のヒント小出しにされるの当たり前。
0663デフォルトの名無しさん
NGNGばかですか?
なんか凄い話にもっていってますねププ
だったら、最初から答えなきゃいいじゃん・・・
それでもなぜ答えるのか、それは
小出しにして、意地悪してるんでしょ?
0664デフォルトの名無しさん
NGNGそりゃまともに答えてもらえないわ。
0665デフォルトの名無しさん
NGNGもう関わるなよ、おまえも思われてるぞ
おれ?俺は思われてもいい。どうせ高校だし
0667デフォルトの名無しさん
NGNG掲示板やMLを無料相談だと思って使われると困るんだけど。
0668デフォルトの名無しさん
NGNG自分で払ってないから解らんかも知らんが
0669デフォルトの名無しさん
NGNG>>668
話し飛びすぎ
0670デフォルトの名無しさん
NGNG無責任な質問とかしちゃう大人になるんだろうなぁ。
会社の署名入りでよくもこんな質問できるなという
ものをMLでよく見るが。
匿名掲示板で質問するだけ、こいつらはまだ頭が回ってるということか(w
0671デフォルトの名無しさん
NGNGなんか、質問者=高校生ってなってるお前の妄想が怖い
国語とか弱いですか?
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG665で俺高校って書いてあるからでは?
0675デフォルトの名無しさん
NGNGつーかそれ以前に、670のどこがリアル高校生を前提に書いてあるんだよ…
学生時代にそういうことだったから、大人になっても
ろくな質問できないんだなぁって書いてるんじゃないのか?
妄想も(以下略
0676デフォルトの名無しさん
NGNG>>675
>学生時代にそういうことだったから、大人になっても
>ろくな質問できないんだなぁって書いてるんじゃないのか?
同じだよ、『質問者=学生』なんて言ってないじゃん
665は横からいきなり出てきた高校生。
その高校生を、質問者だと勘違いしている
0677デフォルトの名無しさん
NGNG苦しい言い草だな。
0678デフォルトの名無しさん
NGNGじゃないと、その高校生が質問者か質問したことない人かどうかわからんよ。
もう粘着はいいって。
0679デフォルトの名無しさん
NGNG金払えって言うんじゃなくて、思い通りの回答が得られなくて
キレるのは筋違いだよ、金払ってるわけでもないのにってことだろ?
0680676
NGNG>>678俺に言ってんの?
俺の書き込みよく見れよ
>『質問者=学生』なんて言ってないじゃん
↑これだけだぞ?
わかりやすく言う。
つまり、
元の質問者>>592は『質問者=学生』とは言っていない。
なので、「質問者=学生」かどうかはわからない。
なのに670は、そういう雰囲気で言っている。
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGこれ以降粘着したやつは全員粘着な
↓
=========================================================================
粘 着 こ こ ま で
=========================================================================
0683デフォルトの名無しさん
NGNGてか、キレルってどこの誰が切れたの?
みんな切れてるような気が・・・w
0684デフォルトの名無しさん
NGNGどんなところに気をつけろ!とかっていう情報ありますか?
サンプルベースでは、data-sourceの定義の仕方が若干変わりそうなんですがねえ。
0685デフォルトの名無しさん
NGNGどっちにしても外野はおとなしくしていることだな
0686デフォルトの名無しさん
NGNGそのまま使ってもらってOKです〜
(って書いとくと、誰かが訂正してくれます)
0687デフォルトの名無しさん
NGNGそれぞれ別のpathを指定しているのに、
出来上がるHTMLの form がすべて同じname になってしまうといった現象がおきて
困っています。
何が原因でしょうか?
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG原因も何もそういう使用じゃないの?
で、配列ってことだよな
がんばれ!
0690デフォルトの名無しさん
NGNG答えにはならないかもしれませんが聞いてください
DBCPを優先させるためにGenericDataSourceクラスは非推奨です
0691デフォルトの名無しさん
NGNGstruts-config.xml の action の name に別々の form-bean を指定しているのに、
HTMLには最初の form-bean の名前で複数フォームが出来上がる。
なぜだ??
0692デフォルトの名無しさん
NGNGDBCPにはpingCommand 相当のプロパティってあるん?
0693デフォルトの名無しさん
NGNGちょっと待って、やってみるから
0694デフォルトの名無しさん
NGNGGenericDataSourceにpingCommandってあるの?
pingQueryじゃなくて?
0696デフォルトの名無しさん
NGNG私がやったのは Dyna でなくただのActionFormです。
Win+JDK1.3.x+Tomcat3.2.x ではうまくいったんだけど、
Linux+JDK1.4.1+Tomcat4.1.x ではさきほどの現象がでました。
どの構成がうまく行くのかいかないのか、もっと調べてみます。
0697デフォルトの名無しさん
NGNGどっちもあるんよ。
0698デフォルトの名無しさん
NGNGすいません。apidocにpingCommandを見つけることができません。
力になれないようです。pingQueryならあるのですが・・・
0699デフォルトの名無しさん
NGNGhttp://jakarta.apache.org/struts/api/org/apache/struts/util/GenericDataSource.html
あるやん。
0700デフォルトの名無しさん
NGNGあ〜もしかしてfinalですか?俺はrc1の方見てましたわ
0701デフォルトの名無しさん
NGNGん?struts1.0の時代からpingCommandはあるよ。
0702デフォルトの名無しさん
NGNGえ〜なんでだろう?
俺の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│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG俺も載ってないのがあってむかついたから
ソースからjavadocを生成したよ。
0706デフォルトの名無しさん
NGNGおまえら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デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNGフォームを使う必要がなく、なおかつ何らかのモデルBeanを呼び出して処理(execute()叩く)
するだけの場合、どのActionサーブレットを選択すればいいのでしょうか?
0709デフォルトの名無しさん
NGNGただのAction
0710デフォルトの名無しさん
NGNGそうなんですか?
public class HogeAction extends Action{
public AcctionForword execute(ActionMapping mapping,
ActionForm form,←使わないのになんか気持ち悪いんです
HttpServletRequest request
HttpServletResponse response)throws Exception{
・・・・
}
}
0711デフォルトの名無しさん
NGNGそういうインタフェースだと思って使うべし。
ActionForm の有無によってインタフェースを分けるか分けないかは
議論の分かれるところだと思うが、
あっても使わなければ実害は少ないという判断で、
今のような仕様になっているのだろう。
0712デフォルトの名無しさん
NGNG作った人が馬鹿なんですか?
最新版ではついてるんでしょうか?
0713デフォルトの名無しさん
NGNG下の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何がしたいのかようわからんけど、それで困る人が居ないからじゃない?
むしろ、logicタグを使わないような設計にするのが正しいMVC厨。
0715デフォルトの名無しさん
NGNGそういう真性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> すべてのHTMLタグをJSP側に書きつつlogicタグを使わないなんて可能なんですか?
論理的には可能。
開発者のスキルによっては不可能ってこと。
0717無料動画直リン
NGNG0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNG>むしろ、logicタグを使わないような設計にするのが正しいMVC厨。
まさに厨。そんなこと言っている香具師はMVCを誤解している。
下手したらControlerが表示ロジックも抱え込む設計になってしまい
かねない。重要なのはMとVとCを適切に分離すること。
まぁ必ずしもView=JSPというわけじゃないから、JSP自体はロジックを
記述しない静的なものにしておいて、別にViewオブジェクトを用意して
表示ロジックを記述するというやり方もありだとは思うが。
0720デフォルトの名無しさん
NGNG表示する内容は全てActionで用意して、JSPでは愚直に表示処理だけ、というのが好き。
0721714
NGNG検索の結果、該当件数が0件だったら「該当するデータがありません」ていう
内容のタイルにフォワードする。
>>719
俺は、<logic:*>タグのやってることはVに含めるべきものじゃないと
いう考えなので。
0722デフォルトの名無しさん
NGNG<logic>タグはVに含めないとは、やりすぎでしょう。
「見栄え」に関するロジックは<logic>タグでやるべきでしょ?
0723デフォルトの名無しさん
NGNGあなたの言っていることは、
一般的な
JSP(Viewロジックあり)-Action(Viewロジックなし)
ではなく、論理的な2種類のActionを用意して、
JSP(Viewロジックなし)-Action(Viewロジックあり)-Action(Viewロジックなし)
とするってこと?
まさか、Actionはごった煮?
JSP(Viewロジックなし)-Action(Viewロジックあり)
こんなのは絶対いやだ。
0724デフォルトの名無しさん
NGNG「繰り返し」というある程度のロジックを導入しない限り、
繰り返した中身全体をView以外で用意しなきゃならない。
表示はHTMLという制約があるとするなら、その文字列中に
「表示制御用」の文字列も含まなきゃならない。
つまり、View以外が表示の仕方を司ることになる。
0725デフォルトの名無しさん
NGNGそうなると、HTMLに関する知識は、すべてJSPとなるだろう。
もちろん、JSPにすべて書けという意味ではないよ。
>>719 が触れているViewオブジェクトというのもありだとは思うが、
>>718 が言っている Taglib を自作するのが一番きれいに書けるだろう。
まあ、よく Taglib は敷居が高くて使ったことありませんなんてことを
耳にするが、甘えんな!と一言言ってやろう。
0726デフォルトの名無しさん
NGNGでもそれって、結局logicのようなタグを作るってことだよね。
logicのようなタグも使わず、なかおつHTMLに関する部分はView以外に書かないという
「真のMVC厨」は一体どうしているのだろう。
0727デフォルトの名無しさん
NGNG俺はStrutsのtaglibで使うのはhtmlだけ。
0728デフォルトの名無しさん
NGNG「真のMVC厨」はlogicのようなタグは使うだろ。
誰が使わないなんて言ってるんだ?
君の脳内?
0729デフォルトの名無しさん
NGNG君の言っていることはごもっともだが、今はそれを論じる流れではない。
0730デフォルトの名無しさん
NGNG彼(女?)の「logicタグを使わない設計」って、もしかして <logic:*> という
タグを使わないけど、結局似たようなタグは使いますよという、言葉遊びなんですか?
どんな素晴らしい方法があるのか楽しみだったのに、がっかり。
0731デフォルトの名無しさん
NGNG>>714 の言葉を額面どおり受け取ってはいけないだろう。
logicタグ=if文の代わり
と考えれば、
logicタグを使わない=分岐なし
となる。
JSP内で分岐を使わずに構造的に動的なHTMLを生成するためには、
その分岐ロジックを別の場所で記述する必要がある。
その別の場所が、Actionだったり、Viewオブジェクトだったり、
Taglibだったりするというだけの話だ。
とびきりの魔法があるわけではない。
もちろん、
logicタグ=for文の代わり
と考えた場合も同様の議論は可能。
まあ、少なくとも、分岐なし、繰り返しなしではほとんどの画面は作れないから、
それ自体を否定するほうがどうかしている。
ActionでHTMLをベタで生成なんてのは、最も避けたい。
0732デフォルトの名無しさん
NGNGどこまで、サーブレット側でデータを整形させるかポイントだね
出力がJSPだけとは限らない場合も考えると、コレクションや配列までの方が良いかも
それをどう表示するかがVの役目だとおもう。
どうしても、JSPで繰り返しや分岐をやりたくないのなら
さらに間にデータ整形のフィルタなどかませる方が、いいのかも。
いわゆるXMLにおけるXSL的な位置付けのロジッククラス作るとか。
こんな設計は怒られるか?
0733714
NGNG要は<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そう思うなら、Jakartaのメーリングリストにそう書いてみれば?
もし可能なら、修正したソースをあげればいいじゃん。
で、二つの変数を比較するというのなら、Velocityで可能。
0735デフォルトの名無しさん
NGNGそれって、ほぼ同じJSPが2個できるわけですよね?
なぜか私のまわりでは、
動的に表示するのがユーザの一覧だけという画面も、
仕様、デザインが納品まで普遍だったこともないので、
MVCがどうこう以前に、そんな修正しづらいのありえないっす。
Beanの状態を見て、一部表示を変えるだけなら、
<% if (result.size() < 1) { %>
でいいのでは?
else if 追加することになったときに、
<logic:*>だと直せる人少ないでしょ。
0736714
NGNGTiles使ってるんで共通部分は1ファイルになります。
<% if (result.size() < 1) { %> なんて記述したらHTMLの
プレビューがしにくくない?
0737デフォルトの名無しさん
NGNG素人?
■ このスレッドは過去ログ倉庫に格納されています