△△もっとStrutsの良さを教えてくださいSession5
1 :
デフォルトの名無しさん :
2006/12/30(土) 18:05:08
2 :
デフォルトの名無しさん :2006/12/30(土) 18:05:53
まだstrutsとか使ってるやついるの?
めっさいる
かわいそす
>>3 開発者の人に、Strutsの次に来るフレームワークで事例ありますかと聞いても
「次はリッチクライアントの時代だから純粋WebのフレームワークはもうStrutsで十分」
と言う。じゃあリッチクライアントで目星をつけてる技術/製品はと聞いたら
「今はまだ乱立状態だから絞れない」と言う。
結局長い目で保守を考えないといけない現場だと当分Strutsで行くしかないべ
>>6 っていうか、その開発者は自分でフレームワークの評価や、生産性について
考えられないだけ
Strutsマンセーっていってても別の流れが来たらそっちに乗っかるんだから
教育コストや学習コストを考えると 世の流れに乗るのもまた選択の理由になり得る。
世の中の流れに乗る=教育コスト、学習コストの削減には一概にはならん そういう短絡的発想が遺憾といっているw
>>9 使っている人が多いと情報を入手しやすくなるから
教育コスト、学習コストの削減にはなるんじゃない?
基礎学習においての学習コストが、新しいフレームワークで低くなっても ワークアラウンドが必要な場面の情報収集で割を食うから普及度は大切な指標だよ
そもそも、開発者全員がフレームワークについて情報を得られなきゃいけないって発想が間違っている。 Strutsを使うにしても、Strutsの情報が溢れていなければ使えないような使い方をしている時点で 学習コストがかかりすぎている使い方をしているってこと。 大体、Strutsにしたってこんだけ情報があったってマトモに使えるやついねーじゃんw
>>12 で逝ってるフレームワークとは、Strutsのような汎用フレームワークの事
フレームワークなんてデザパタと同じだ 乱立してるより型落ちでも同じ使い方の奴のが保守コストが低い Struts以外のフレームワークをよしとする風潮がないのは当たり前
右へ習え的な考えしかしない香具師がろくでもないシステムを作る現実
いかにも社会に出てない奴の発想だな・・・
いかにも残業したり休日出勤したりするのがこの世界の常識って考えのヤツの発想だなw
真逆すぎて呆れるばかり
現存のStrutsプロジェクトをみてあきれるばかりw
オウム返しにしても寒すぎる、派遣の妄想ってとこか。くだらん
まぁ、次のフレームワークが広まるまでStruts使ってなさいw では良いお年を
みなさんが、Strutsプロジェクトに携わったのは何件ですか? 私は、前に1回だけ... 正直な話、初めて見た時、何故これで動くのか訳がわからなかった (この当時、本でもネット上でもあまり詳しい説明されてるやつがなかったし、っていうか見つからなかったし) 「なんで普通にServletにしねぇんだよ」と心のなかで思っていた。 この仕事でよい年を迎えることができると思っている人はあまりいないような気がしますが 「健康である年を」
なんで?StrutsってただのMVC2フレームワークじゃん
>>23 Bateから1.0になったばかりの頃に、Struts+EJBベースのフレームワークを作りました。
いまも別件でStruts+Spring+Hibernateベースのフレームワークを作ってる。
Strutsに限らず、汎用フレームワークはそのプロジェクトでどのように使うかって言う方針を立てて、
業務を実装するプログラマ達には必要最低限の使い方で実装できるように準備しないと、開発者
全員が汎用フレームワークの広い知識を備えなければならなくなる。
つまり、個々の開発者が(例えば)Strutsを直接触りまくるような現場では、
>>23 のような状況に陥ってしまう。
そういう現場では、開発者は終始深い森の中を地図もコンパスも無く彷徨い歩くような状況にあるので、
結果的に大変なだけでいい仕事は出来ないよネ
26 :
デフォルトの名無しさん :2007/01/01(月) 07:01:58
なあstrutsって前提条件として覚えることが多すぎない?
例えばvalidatorつかってエラーメッセージ表示するには
「エラーメッセージを読込むリソースファイルはキー org.apache.struts.action.MESSAGE で指定されたファイル (デフォルトのメッセージリソース)でなければなりません。」
だったり、validateエラーで飛ばす先のmappingの記述が「input=""」だったり。
taglibも学習・デバッグコストの割に新しいことができるようになるわけじゃ
ないし。見た目はscriptletよりはマシかもしれないけど、大してよくならないし。
>>25 前に別件でシンプレクスってところのStruts+Spring+Hibernateベースのフレームワークを
いじったけど、あれはひどかった。携わってる人一人一人の能力が高いのに、
ろくに設計をしないでつくると酷くなる典型例だった。ドキュメントも無いし。
あと速度遅すぎ。
多いねぇ それにStrutsに限らずWebページベースのサーバサイドシステムだと、大前提としてコアJavaだけでなく、 HTMLやCSS、Java拡張技術として、Servlet、JSP、Tablib、等の技術をまんべんなく知ってないといけない。 更にその上にStruts等の知識が必要になる。 Strutsを採用している時点で物凄い教育コストがかかるってこと。 実装工程で、最低Javaは書けるって言う人間がスグに投入できないのは非常にまずい。 短期間作業に関わる技術者のスキルを当てにはできないし、仮にスキルがあったとして、その人がいなくなったら 保守できないようなつくり方たされたらかなわんし。 それに、Javaは書けるってレベルの技術者なら単価も安いしね。
>>26 scriptletからtaglibではえらい進歩じゃないか?
いや、目標が低すぎるか。
とりあえずscriptletなんて一切使うことを許容するべきじゃないね。
俺が入った時点でゴリゴリ書きまくっていて後始末が大変だった。
>>27 こういうのを把握しているのはFWとかアーキテクチャを
抑えている人間だけでえーんちゃう?
業務実装者は手順どおりに業務ロジックだけを
こりこり書けばいいようにすればいいというか、
あいつらにそんなもの意識させちゃ駄目だ。
>>28 >こういうのを把握して・・・・
「・・・抑えている人間」って言うと、フレームワークを実装するプログラマとか
も入るから、ホントウに意識しなきゃいけない人間はアーキテクトだろうな。
>>26 scriptletなんて使う状況になるのは設計が破綻している証拠だな。
アホな連中に好き放題使われて地獄を見たことがないのかい?
まぁこれは上でコントロールする人間がいないのが悪いんだけど。
画面は渡されたbeanを展開するとか
条件(画面で判断した方が良いレベル)で
表示をちょっと切り替えるとかその程度だけにするべき。
それでまかなえないようなアプリなら
それはもうStrutsでやるべきじゃない。
もうリッチクライアントを考えるべき、
と言いたいところだがなんか良い選択肢無いのかね・・・
Java Applet+Webサービスがいい気がするがフレームワークとかあったりするの? じつはJava質問。相談スレにも投下してしまってるんだが
32 :
デフォルトの名無しさん :2007/01/03(水) 23:21:24
MVCが徹底できていればscriptletもそんなに汚くならない。 でもscriptletを許可するとスキルの低いPGがjspにロジックを埋めちゃう。 taglibで全部やらせるには教育コストがかかる。 100画面程度のシステムならコードレビューで面倒見れるけど、 サブシステムごとにサブリーダーを置くようになると途中で破綻しちゃう。 どうしたもんかなあ
画面の部品化
34 :
res :2007/01/04(木) 11:32:44
Strutsって便利?? ASPのほうがわかりやすくて好き
ASP知らないが、strutsは便利ではないw。 学習コストに見合わない生産性の低さに泣ける。 eclipse用のstruts plugin等を使えば、多少は、ましになるけれど。 今から新規の案件で使うのは、おすすめしない。
ASP.NETが最強だな
ASPはJSPとくれべるモンなんじゃね?
ポストstrutsは何か? ってのを言われて久しいけど、未だに決定的なのがないから 現場レベルでは、strutsしか使えない。
多分Javaが廃れるまではStrutsを使い続けると思う Railsあたりの次世代FWが実績つけてきたところで乗り換える予定
あわれ・・・・
42 :
デフォルトの名無しさん :2007/01/04(木) 23:12:53
ASP.NETに比べるとStrutsってめちゃめちゃ難しい気がするんだけど、今時のWEBシステムってこんなもんなの? PHP5とかってのも難しい?
ASP.NETとStrutsって比べる対象になるのかってのが問題なんだが・・・
でも一度ASP.NETの開発を経験しちゃったら もうJavaには戻りたくなくなってしまうし。
ふーん
ASP.NETの真似をしようとしたJSFが失敗してしまったからな でもWin統一環境でないとASP.NETは採用し難いというのもあって、結局現在はJavaの開発がまだ多い 今年は減りそうな気がするけど
Javaが減ってどの言語が増えるの?
普通にRubyじゃね? 自分の周りでも少しずつ開発事例を見かけるようになってきたし、 最近は本屋に行っても、どこもコンピュータコーナーはRuby本ばかりだし 個人的には、別に言語に拘りはないからどうでもいいけど
Rubyちらっと触っただけなんでよく知らないんですが、 性能面とかで大規模な案件に耐えられる代物なんですか? どうしてもしょせんスクリプト言語ってイメージが取れません・・・ 偏見ですかね??? 個人的にはOOで設計した方がいいぐらいの大きさのプログラムなら もう慣れているJavaで書いた方が手っ取り早いし、 本当にささっと作るだけならPerlやるかなーって感じです。
Javaが出てきた時はC++プログラマはミンナそういってたな・・・・
サーバーサイドのフレームワークじゃなくて、そろそろWebブラウザの側が もう少しリッチに進化してほしい。DBのデータを扱うことを想定したTABLEタグとか DIとかTDDとかで生産性向上するよりそっちの方が効果があるんじゃなかろーうか
>>51 ブラウザはWEBアプリ専用のソフトウェアじゃねえんだよ!!
>>49 今のところRubyの方が遅いのは事実だが、
いいハードを買うかクラスタを増やすかすれば必要な性能は達成できる。
Rubyは生産性が高い(例のRailsの「Javaの10倍」ね)ので、開発コストを減らした分の金で
元は十分以上に取れる。というかハードなんて人件費に比べれば安いし。
ってのがRuby屋の言い分だと聞いた。
立場は逆だが、
>>50 の言うような「Java登場時にJavaプログラマが言ってたこと」に似てるな。
>>51 つAjax
DBから取得したデータをJSON変換して、後はJavaScriptに扱わせる。
SwingのTableModelみたいなことは、今でもやろうと思えばできる。
Swingと同じで、Ajax主体でGUIを扱うFWがまだ無いけど
>>53 Javaちらっと触っただけなんでよく知らないんですが、
性能面とかで大規模な案件に耐えられる代物なんですか?
どうしてもしょせんインタープリタ言語ってイメージが取れません・・・
偏見ですかね???
個人的にはOOで設計した方がいいぐらいの大きさのプログラムなら
もう慣れているC++で書いた方が手っ取り早いし、
本当にささっと作るだけならVBやるかなーって感じです。
今のところJavaの方が遅いのは事実だが、
いいハードを買うかクラスタを増やすかすれば必要な性能は達成できる。
Javaは生産性が高いので、開発コストを減らした分の金で
元は十分以上に取れる。というかハードなんて人件費に比べれば安いし。
・・・なるほど、たしかに似てるなw
>>55 Amazon.comってWeblogicだそ?
あ、なんでもない忘れてくれw
相当前に聞いた話だからもうperlなのかも?
>>54 Ajaxってどうなん?
所詮JavaScriptじゃろ?
ていうかなんでJavaAppletがほったらかしなんだか判らんw
さっさとJSFに乗り換えた方が幸せになれると思うんだが。 再利用性などというマヤカシに捕らわれてるのが移りが遅いな。 実際に再利用できるものは汎用Util化されてるだろうしFWはなんでもいいはずなのに。
strutsで再利用と言えば、 Actionを連鎖させて途中のアクションをフィルタ的に使ったりすることもあるけど 実際は、1画面1アクションで作られてることが多いみたいだね。 明確にM-V-CとするよりもM-VCのほうが、効率いい場合もあるし。
>>62 >1画面1アクション
そういう使いかたした事ない
>>62 多いっていうか、そういう風にしか使い道が思いつかないんだろ
うちのプロジェクトも原則は1画面1アクションだよ Action連鎖すると修正時の影響範囲がわかりにくくね? しょせん、Actionなんてコントローラだし対して再利用性を求めてもしょうがないような
Actionでやるべき事と、業務ロジックを分離した時、Actionでやることはほとんど共通化できるんだけどね
っていうか、業務ロジックを呼び出すActionの振る舞いなんてミンナ同じじゃん
普段はどちらかというと、1画面につき2Actionかな? ただ、入力→確認→完了とか、複数ページにわたる入力みたいな いわゆる「画面フロー」の間は画面間で1Actionだな。 JSFだと、「1Action」が「1アクションメソッド」に変わる感じ?
1画面1Actionにすると表示前準備とリクエスト処理が混在してわかりにくい。 あちこちの画面から呼ばれるような処理だと、さらにゴチャゴチャ。
ActionってCommandパターンだからと思って、最近は1URL1Actionにしている 以前は1画面毎にDispatchAction使ってたが、あまり意味ないし使いにくいのでやめた ロジックはサービス層のクラスにまとめて共通化してるので、 Action自体はパラメータの受け渡しぐらいしかやらないし 画面単位ではまとめないけど、初期化処理とか検索処理とか編集処理とか 似たような処理をするActionを継承でグループ化したりはしている
Action連鎖させるなんて絶対にやめるべき。 値の持ち回りはSessionにぶち込んででしょ? 大量にバグが出るし、修正が発生した時地獄を見るよ。 コミットするような処理した後 一覧か業務フローのトップの画面を表示するActionにリダイクレトする、 とかならやるけど、これはもう処理の流れが切れているから。 OO中途半端にやってる人(俺含めて)を見ていつも思うんだけど 再利用って言葉の一人歩きがひどすぎないか?
sessionじゃなくてrequestにぶち込むだろ普通。 sessionの使用禁止のプロジェクトもあるし。 どうでもいいけど、sessionの使用禁止ってのは無しにしてほしい。 ロードバランサ入れたときに別サーバに振り分けられるからって言うけど ロードバランサにsession維持機能あるんだから有効にすりゃいいだけじゃん。
NECダイレクトのサイトは、コンテナに頼らず自前でセッション管理してるっぽい? URLに入ってるセッションIDらしき文字列がちょっと見慣れないんだが。 そういう方法もありかね。
対話の質によるけどな。 フルGCの発生原因は中途半端な寿命のオブジェクトが在ることだし。
>>73 URLリライティングだろ、Tomcatでも使えたはず
76 :
デフォルトの名無しさん :2007/01/06(土) 18:46:34
Action連鎖はわけわからなくなるな。。 validationとか絡んだら無限ループなる。
>>76 atamawaruikaradayo(pu
>Action連鎖 大昔から否定されてきたのをいまだ言ってるやつがいるのか・・ 少しはググってみたら、どうだ?
80 :
デフォルトの名無しさん :2007/01/10(水) 20:17:35
Strutsインアクションでは Actionを連鎖したくなるのは、Actionにビジネスロジックを書いているからだ!! ビジネスロジックをサービス層に移せばActionの連鎖なんか必要ないはずだ!! って書いてました
82 :
80 :2007/01/10(水) 20:30:46
forwardによる画面遷移、かつ同一ActionFormを利用する場面では Actionの連鎖を避けるべきだが、 リダイレクトによる画面遷移がOKな場面で、 かつ両Actionクラスで同一のActionFormを使わないような場所で、 画面表示前にビジネスロジックの実行が必要な場合は Actionの連鎖を使っても良いと思うよ。 人が否定したからと言って鵜呑みにする奴もアレだし。 Actionの連鎖がどういう動きをするのかをちゃんと理解して 使い分ければいいんじゃないかな。
独りよがりでやる分にはいいけど、 他人との合同開発や仕事でそんなもの出すなよ?
厨乙。
俺は、登録してから、初回の表示と同じようなことする場合に、 初回表示用のアクションに連鎖させてる。 登録アクションには登録する処理しか書いておらず、 登録後に表示されるページの情報を作る処理は、連鎖先のアクションで作っている。
何でもそうだけど、頭使って適切に使いこなすより、一律に同じ方法で統一しちゃう方が簡単だもんなぁ。
馬鹿の水準に合わせて開発すると、時間と体力ばかりくっていいこと無い
90 :
デフォルトの名無しさん :2007/01/13(土) 12:26:10
すいません初心者で恐縮ですが Strutsの初心者向けの学習本で良いのありますか?
なんか最近、自作の俺様専用フレームワークが最強のような気がしてきた。
>>91 気のせい。もしくは、限定された環境でのみ最強。例えば開発者があなただけとか。
バリデータとコンバータが全てのFWで共通化されたら俺は平気で移る。
commons-validatorの事じゃなくて?
strutsのバリデータって他フレームワークに簡単に持って行けないもん? リクエストパラメタをBeanUtilsとかでBeanにセットしてvalidateってできないのかな。
commons-varidator commons-beanutils あとRequestUtilsクラスとかパクりゃいんじゃねーの?
Webフレームワークを使う理由はバインディングしかないからね。 テンプレート機能だとか画面遷移だとかはフレームワーク作者のオナニーに付き合ってるだけ
便利だけどね
JavaのWebフレームワークを一から作るくらいならStrutsつかっときゃいーと思うがの Strutsを使いやすいように拡張した方がな
オライリーのJakarta Strutsクックブック ってどうですか?
Strusの本読んだ事ね
二日ほど他人のソースとテックスコアの記事読んで適当に実践に使ったから本は読んでない。
>>101 あまり読んでないけど、JSTL関連の章は役に立った。
おかげでlogicタグとbeanタグからはおさらばして、Struts上でJSTLとELをフルに利用できるようになった
strutsって重くないですか?
>>105 レスありがとうございます。オライリーのサイトで目次を見ると、自分にはいろいろ
参考になることがありそうなので、買って読んでみます。
108 :
デフォルトの名無しさん :2007/01/16(火) 21:41:15
今回初めて使ったけどこれひどいね Strutsタグのエラーとかstruts-config.xmlの記述間違いの際のエラーとか のメッセージが不親切すぎてデバッグできやしない
プ
>>109 WTPのJSP・XMLエディター使うといいよ
>>109 まぁ確かに不親切だとは思うけどね。
IDEのサポートちゃんと受けてる?
転職したら秀丸でソース編集とかしている俺から見れば・・・
EXCELファイルで定義してstruts-config.xml、validation.xml、フォームBeanを自動生成してます。
>>113 画面の仕様書から
バリデーションとフォームの生成まではやった。
ただしバリデーション定義はS2Strutsのアノテーションによる方式。
あれ結構自動生成と相性がいいと思う。
struts-configのExcelからの生成ってどうですかね?
いまいちもとのExcelシートのイメージができないです。
1ワークブック=1モジュール 1シート=1Form =1Action =1リソースファイル(忘れてた) フォームの定義はValidation定義も併用 フォームBeanも自動生成 ネスとしたBeanのValidationも対応 global-exception等は別に1シート
要するに1ワークブック=1struts-config.xml
>>117 残念ながら、Excelだけではだめなのだ
自動生成ツールが必要なのだ
119 :
デフォルトの名無しさん :2007/03/14(水) 19:20:37
struts 2.x が正式リリースになっているな。(2/27) だけどこのスレではぜんぜん話題になってないな。
>>119 Strutsって名前だけで、中身はStrutsともApacheとも何の関係もないからな。
たしかに 2.x は WebWork と統合、 Shale もあるし、 ひさしぶりにやる側としては、もうわけわかめです。
この間終ったプロジェクトじゃまだstruts1.1だったしなぁ。 またstrutsやるとしても1.x系だろうしな。2.xは手がだせんかも。
2.xを使ってる話なんて聞いたことがない。 2.xは元々Strutsではないから、 バージョンアップというよりまったく別フレームワークへの乗り換えになる。 1.xを使っているのなら、1.3.5はなかなか有用。 モックオブジェクトが用意されたテストケースがあったり RequestProcessorのカスタマイズが柔軟だったり。
じゃあなんでsturtsなんて名前つけたんだ? ぶっちゃけ、2.xがまったく別物ってんなら余計混乱して そのまま「strutsオワタ」ってなりそうな気配がプンプンしてるんだが… というか、struts projectの人間は2.xが本来やりたい事だったんだ! って言ってる様にも見えなくもないな…どのみち衰退の道か
strutsどころかapacheでさえないプロジェクトから移管されたものだからなぁ。2は。
結局フレームワーク使うとこういうことになるんだよ。 それで終わったフレームワークで作られたシステムを 新人にメンテさせる鬼先輩になるんだ、おまえらは。
>>126 独自仕様てんこ盛りの自社製FWのメンテよりはいいだろう?
>>128 >>126 は自社製FWとかではなく、常に1から作るンだろ?
そういうほうがわかりやすいと思うヤツが多い事は事実
>>129 そういうのはフレームワークが古くなるどころか、
作った奴がいなくなるだけで混乱に陥る。
古かろうが、Strutsのように普及したフレームワークを使う方が
ノウハウを持った奴がどこかにいるだけまだマシ。
Struts1.X系でお茶を濁しつつ、JavaEE5サーバが出回ったら JSF1.2にメインの開発は移行すればいいと思う。 GlassFishもJBossもGeronimoもベータ版が出たし、そろそろ動かせるよ
Glassfishは正式リリースじゃないかw JBossはもうReleaseCandidate。 Tomcat6はStableリリースだから、もうJSF1.2の環境はOKだ。 でも実際はEclipseWTPやNetBeansがTomcat6対応しないと使いにくいな。
>>129 それわかりやすいかぁ?
作った人間いなくなったら恐ろしいことになるよ。
どうせドキュメントも残さないで消えていくんだろうし。
>>132 GlassFishは現在V2がリリース間近
V1はJavaEE5SDKとして出すためのものだったが、
今回はフルスペックのアプリサーバとして出す
NetBeans5.5.1でGlassFishV2に対応してる。
EclipseWTP用のPluginもGlassFish側で用意してるけど、WTPがまだJavaEE5対応してないな
JavaEE5なんていらねーよ
136 :
デフォルトの名無しさん :2007/03/29(木) 20:08:06
struts-confg.xmlの内容をエクセルに記録して XML出力とかいうツールどっかにおちてない? エクセルは設計書にできたらなおOK。
>>136 せんせーすとらつこんふぃぐがえっくすえむえるなんですがー
>>137 Excelで画面遷移とか定義して、そっからstruts-config.xml出力してくれるマクロとかツールが欲しいって意味なんじゃないの?
子ノードも無限に作れるし、属性もいくつあるかわからんし XMLをExcelで表現するのは無理があるだろ
140 :
デフォルトの名無しさん :2007/03/30(金) 13:50:46
すみませんが、初歩的質問です。 Strutsの良さの一つとして、Actionクラスの存在がよく挙げられています。 Actionクラスはサーブレットよりずっと軽量なので、1つのActionServlet(の 派生クラス)と多数のActionクラス(の派生クラス)に構築されたコントロー ラは、従来のサーブレットに比べてパフォーマンスが良い、というのです。 しかし疑問なのですが、そのActionクラスの遷移先はJSPで、そして結局JSP一 つがサーブレット一つになるのですよね?こちらのパフォーマンスは問題にな らないのでしょうか? なんとなくですが、JSPを使い続けているのに、コントローラだけActionクラス を主体にしても、パフォーマンスはあんまり変わらない気がするのですが、ど うなのでしょう? ということで、 ・従来のサーブレットのパフォーマンス ・ActionサーブレットとActionクラス ・JSP ・(JSPの代わりに)Velocityテンプレート それぞれの実行性能をご存知の方、お教えいただけないでしょうか?
>>140 ActionとActionServletのおかげでパフォーマンスが向上するなんて、
聞いたこともない。出典は?
Actionクラスの目的は、Commandパターンの導入とstruts-config.xmlによる
画面遷移の宣言的制御にあるじゃなかったっけ
(それが成功しているかは別の話だが)。
この辺でも読んでみて。
ttp://wiki.apache.org/struts/StrutsBenefits しかし今頃になってStruts初心者か。今でも人気あるんだね。
142 :
140 :2007/03/30(金) 15:45:56
>>141 > ActionとActionServletのおかげでパフォーマンスが向上するなんて、
> 聞いたこともない。出典は?
すみませんが、出典は分かりません。
以前にStrutsを使ったことがあって、そのときに何かで読んだのですが、1回だ
けでなく、あちこちでその内容を聞いたように思うのです。
それにしても、聞いたこともありませんでしたか。ちょっとショックです。私
の勘違いだったのかなあ。
基本的にフレームワークは骨組みにいろんな仕事やらせるんだから プレーンで作るより重いよ。体感的には変わらないけど。
Actionの存在が良さとは思わんが・・ 俺が思うStrutsの良いところは・・ ・HTTPパラメータがActionFormとして明確になる ・画面遷移とコントローラの依存が疎になる ぐらいだと思う。 パフォーマンスが良くなるなんて聞いたこと無い。
>>142 完全な勘違いだよ。
ActionServletやらで色々な処理が間に入っているんだから
素でServletを書くより早くなるわけないじゃん。
といってもこの程度のオーバーヘッドでパフォーマンス云々語るのは
かなりアホなことしゃべってると思った方がいいよ。
>>142 あちこちで聞いたって職場でかい?
ちょっと身の振り方考えた方がいいんじゃないかね。
揶揄して言ってるんじゃなくて
そんな一笑に付されるような俗説がまかり通るってのは
全体のレベルが低い証拠だと思う。
自分の今後にとってもプラスにならないよ。
147 :
140 :2007/03/31(土) 19:41:57
どうもお恥ずかしい話ですみません。私の勘違いだったようです。社の人から 聞いたのではなく、雑誌かWEBの記事だったと思うのですが、誤読したのでしょ う。 しかし、実行速度は下がるにしても、他のメリットは無いのでしょうか? サーブレットに比べてアクションクラスは ・インスタンス生成のコストが小さい ・メモリの占有量が少ない という特徴があったりしないでしょうか? もしあるとしたら、たぶんそういう記事を私が誤解したのだと思うのです。 まあ実質的にはメリットに上げるほどの差ではないのかもしれませんが。
>>147 あるとしても、鼻毛抜いてダイエットするくらいの効果しかない。
HttpServletの実装はコンテナ依存なので、ひょっとしたらActionとの差が大きくなる
コンテナがあるのかもしれないが…HttpServletの実装が重いコンテナなんてヤダ。
というか、仮に軽くなっても、struts-config.xmlやvalidator.xmlをメモリに展開する分、
別の分でメモリ食ってるはず。
ま、世の中には、無意味または時代遅れなバッドノウハウを語る低脳ライターが割といるので、
そういう連中の記事を読んだんじゃないかと思う。
「メソッドにfinal付けて高速化」とか、「同じローカル変数を使い回してメモリ使用量を削減」とか言う奴と一緒。
最近笑ったのはこれ。
ttp://www.atmarkit.co.jp/fjava/javatips/168java053.html ライターなんて、下はこの程度ですよ。
>>148 こ、これは・・・
こんな糞記事で原稿代もらえるのか・・・
俺も何か書こうかな。。。
152 :
デフォルトの名無しさん :2007/04/08(日) 20:42:52
きょ,今日先輩から聞いたんだけど, int型使うよりもbyte型使った方が速くなるらしいぜ. DBのテーブルサイズ見積もりなんかはやったことあるけど, 変数のサイズ見積もりなんてやったことなかったけど, これからはきちんと考えて設定しなきゃなぁ...
終わったな
157 :
デフォルトの名無しさん :2007/06/05(火) 23:23:21
クラスSuperClassを継承したクラスSubClassがあって、 SuperClassで定義したpublicなメソッドgetXxx()があります。 そのgetXxx()についてですが、 以下のようなJSPでアクセスできないのですが、何か勘違いしてますか? <%-- subClassObjはSubClassのインスタンス --%> <bean:write name="subClassObj" property="subClassObj.xxx"/> SubClass内でgetXxx()をオーバーライドすれば正常に表示できることはできるのですが…
>>157 オーバーライドする以前に
サブクラスのインスタンスにスーパークラスのメソッドが
あるかどうかくらいリフレクション使って確認したかい?
ヒントはこれだ
Class clazz = Class.forName("java.lang.String");
Method[] method = clazz.getMethods();
後は分かるな?
>property="subClassObj.xxx" xxxだけでいいんじゃないの?
160 :
デフォルトの名無しさん :2007/06/14(木) 22:52:32
国際化しない場合でもメッセージリソースつかってる? メリットってなんかある?
JSPの中のスクリプトレット撲滅運動中です. 代わりにVelocityでテンプレートをうわなにをするはなs
163 :
デフォルトの名無しさん :2007/06/15(金) 00:26:17
JSPの中のスクリプトレット排除にVelocityって、メリットなさすぎ。 #ifとか入るし。
まわりまわってスクリプトレット最強説。 StrutsタグもVelocityもJSTLも可読性を下げてるだけ。
165 :
デフォルトの名無しさん :2007/06/15(金) 02:28:31
デザイナなしで少人数で作るなら、それもありかもわからんね。
デザイナにとってはHTML以外の 変なタグや#が入ってる時点でわずらわしさは全部同じでしょ。 だったらスクリプトレットでいいよ
167 :
デフォルトの名無しさん :2007/06/15(金) 11:53:11
いや、faceletやmayaaみたいにspanとかdivでできれば、オーサリングツールで読み込んでも崩れないし表示確認もやりやすいから、同じではないよ。
168 :
デフォルトの名無しさん :2007/06/16(土) 13:29:48
Servlet の小規模開発案件があるのですが、フレームワークを使うとしたら Struts が最強ですか?
169 :
デフォルトの名無しさん :2007/06/16(土) 15:36:55
>>169 本当に小規模なら、
JSON-RPC-Java(Ajax) の方が楽かも
業務ロジック(画面切り替え)は、javascript で全部やる。
DBアクセスは、サーバ上のMiddlegenで作ったDAOを
ブラウザ上のjavascriptからキックしてやる感じ。
今自分がJ2EEで一定の規模の開発を任されたとしたら
やっぱり Struts1.3+Xdoclet かなぁ・・・
(要員スキルとか、治具(自動生成)とか、ノウハウとかの関係で)
170 :
168 :2007/06/16(土) 16:00:59
>本当に小規模なら 2人月ぐらいの規模です。
>>168 Struts1オンリーでいいよ。
>>169 なんてぜんぜん小規模だと思えない。
おまけにモバイル対応したら画面遷移のロジック全部書き直し。
172 :
デフォルトの名無しさん :2007/06/16(土) 17:22:44
業務アプリでモバイル対応もないなら、JSFの方が楽。 Strutsを使ったことがないなら、JSFにしたほうがいいと思われ。
NetBeans + Visual Web Packも検討に値すると思うよ。
サーブレットも知らない奴がWebアプリのサブシステム開発のリーダーってどういうこと?
175 :
デフォルトの名無しさん :2007/06/16(土) 21:58:04
じゃあお前やれよ
>>166 スクリプトレットなんて許したら死ぬほどコード書きまくられるぜ?
後で地獄見るだけだ。
テロリストは1歩譲ったら100歩踏み込んでくる。
177 :
デフォルトの名無しさん :2007/06/20(水) 12:34:28
sslext使ってて困ったことが起きたのだけれど、 sslext:link でリンクすると、リンク先がlocalhostになってしまう。 何が問題なのかわかる人いますか? 自分でやった変更は、server.xmlの <engine defaultHost="mokuteki.host.jp" …> <host name="mokuteki.host.jp" …> ですが、これでもlocalhostのままでした。
178 :
デフォルトの名無しさん :2007/06/25(月) 10:46:10
Strutsなんて死んでるし、新規プロジェクトで選択するのはまず間違い
179 :
デフォルトの名無しさん :2007/06/25(月) 12:59:23
180 :
デフォルトの名無しさん :2007/06/25(月) 18:08:16
JSFかなあ
業務アプリならJSFだね。 新規でStrutsを、XML手書きでやらせるプロジェクトはダメプロジェクト。
結局変なタグ書かせるJSFもいらないだろ
183 :
デフォルトの名無しさん :2007/06/26(火) 11:23:42
ていうかwebアプリが糞
184 :
デフォルトの名無しさん :2007/06/26(火) 13:30:09
よくしらないんですが Jakarta Commons って、フレームワークではないの?
違います。
プログラムを呼ぶのがフレームワーク プログラムから呼ばれるのはユーティリティ
というか、Commonsはプログラムですらない。共通ライブラリを集めたプロジェクトの名前
188 :
デフォルトの名無しさん :2007/06/28(木) 22:22:45
こういう場合みんなどうやってるか教えて。 1.編集画面を表示する。 今登録されている情報はDBから取得してデフォルト表示されている。 2.編集しようとするとValidationエラーとなる。 この場合、1で取得した今登録されている情報をSessionに入れておかないと Validationエラーで同じ画面に遷移したときにエラーとなります。 Sessionに入れるのが普通?
基本的にいま入力した情報しかいらないだろ。
hidden使ってデフォルト値を受け渡しすればいいんじゃないのか?
>>188 ActionFormでvalidateをやらない。
Action側で独自にvalidateをやり、エラーの場合、必要な値をDBから再度取得して編集画面に戻る。
…なんか破綻しているな。
192 :
デフォルトの名無しさん :2007/06/30(土) 09:43:12
>>190 それもいいですね。
ただ、ドロップダウンリストに表示するものは厳しいかも。。
>>191 それもありかもしれない。
dynaactionformって普通は使わないものですか?
なにこの活況ぶり
JAVA+JSP+Struts+Tomcatスレがなくなったから?
196 :
デフォルトの名無しさん :2007/06/30(土) 15:14:48
>>193 俺は使わないルールにしてる。わかりにくいから。
使うメリットがあまりない
struts1.2はJavaでWEB構築した際のスタンダードとして 今後10年は使われると言ってみるテスト
否定できんな・・・ 10年はともかく5年は・・・
すでに作ったもののフレームワークが変更されることはないだろうな。
新規の基幹システムですとらっつ&EJB2とはこれいかに?
にげて〜〜
今から作るならStruts2がいい?
204 :
デフォルトの名無しさん :2007/07/01(日) 21:55:42
Struts2全然情報ないな
>>201 どっかのstrutsベースの独自フレームワーク強制されるよりマシ
そのどっかのStrutsベースの独自フレームワークなんですが・・・・
>>206 まあ、それも仕事だ!
独自ルール覚えるのが面倒なんだよな。
(中途半端なGUIツールがあったりするとうざいんだこれが。)
早め理解して、気に入らない点があっても受け入れるしかあるまい。
どうしても使い勝手が気に食わなければ、
スクリプトやエディタのマクロなんかを使って、
いかに快適に糞フレームワークを使うかを考えたりすると、精神衛生上良かった。俺の場合はl。
>>201 Strutsはともかく
EJB2というあたりに腐臭を感じるな。
ステートレスSessionBean?
ならわかるかな。
CMPも使うと言っています・・・ IB○の(ry
>> 203 今から作るなら、Webアプリじゃなくデスクトップでやるのがいいな。 Ajaxとか面倒で生産性のないことやるより楽だし顧客の要望にこたえやすい。
212 :
デフォルトの名無しさん :2007/07/02(月) 19:57:26
デスクトップに比べてWebアプリのメリットはなに? デスクトップならすぐできることを、Webアプリだと工数がかかる。 それを上回るWebアプリのメリットってあるのか?
東京でも大阪でも外国でもモバイルでも触れる。
>>213 配布不要。ブラウザひとつで動かせる点。
Java Web Start?あれアプリ起動するのに、
更新チェックとかするから、結構時間かかるんだよな。
>デスクトップならすぐできることを、Webアプリだと工数がかかる。 JSF辺りだと「Webならすぐできることをテスクトップだと工数がかかる」って ノリだと思うが。 まあ、所詮はフレームワークなんでフレームワーク以上の事をやろうとすると 途端に辛くなるのはあるがな。
ビジネスアプリは 何でも出来りゃいいって言う わけではない
218 :
デフォルトの名無しさん :2007/07/18(水) 11:05:44
それはStrutsではなくて、サーブレットコンテナの仕業かと。
221 :
デフォルトの名無しさん :2007/07/21(土) 12:46:54
logic:iterateでトラブルにはまってしまい抜け出せません <logic:iterate id="item" name="result" property="list" indexId="index"> <bean:write name="item" property="fee" /> </logic:iterate> 上記のようなJSPを書くと、 javax.servlet.ServletException: どのスコープにもBean item がありません というエラーを返します。目の前で定義しているのに… ちなみにiterateされるlistは全部で3つあって、 <bean:write name="item" property="fee" /> を <bean:write name="index" /> に変更すると、きちんと0,1,2と表示されます。 このエラーが起こりうる心当たりがあるかた、解決の微かなヒントでもいいのでお願いします
222 :
デフォルトの名無しさん :2007/07/21(土) 17:30:51
>>221 result#getList() が無いとか・・・
>>222 色々調べてみましたが、情けないエラーでした。
具体的には、getList()が返すのはサイズ3の空配列で、
内容はなにもなかったのです。
そこはnull pointer exception出して欲しかった。
助言ありがとう
224 :
デフォルトの名無しさん :2007/07/22(日) 15:10:21
無設定struts使えば、Strutsもつかえる。
全く前知識なしで1から触ったが、jsp表示してDBアクセスjsp転送までに 丸1日かかったぞ。 struts-config.xml,web.xmlはともかく、 最初、最新版がいいとおもって2.xダウンロードしてしまって tldがない、はてな???になってしまった。 1.29でなんとかなったが、問題多発だ。 ベリゲータ入れるつもりだけどまた大変なことになりそうだorz
なんか・・・バージョンによって変な不具合とかバグぽいのもあるし、 自分の触り方がおかしいのかstruts自体がおかしいのか。 バグの上にバグを築いてるようで精神が折れるorz
1系は安定してるだろ。バグっぽく見えるのは フレームワーク全体にいえるんだけど初心者に扱いやすくできてないため。 よくみんなこんなの使うよな。
と言うかフレームワーク使う人はある程度servlet+JSPを理解してから 使うモノだと思うが。 たとえJSFでも、その壁が気持ち下がるくらいだし。
229 :
デフォルトの名無しさん :2007/07/26(木) 10:03:59
Tomcatで開発中のプロジェクトをWebLogic9.2に移動してみたのですが styleIDのところで 「この属性は認識されません。」 というエラーが発生しています。 ただstyleId自体が固定文字列のところは問題ないようなので 下のように可変文字列を出力しているところが問題なようです。 <html:hidden name="hoge" property="type" indexed="true" styleId="<%= "hoge"+ index.toString() %>"/> 同様の問題を解決されたことのあるかたがいましたら ご教示願えますでしょうか? よろしくお願いいたします。
サーブレットメインでやってるときはstrutsの有り難みが今一だったが、 Struts使えばアップロードが簡単にできると知ってからそれが10倍化した。
231 :
デフォルトの名無しさん :2007/07/26(木) 18:45:17
Strutsはゴミ
>>229 カスタムタグの属性のとこにスクリプトレットだの
bean:writeだので値埋め込もうとしても駄目じゃないの?
↓こういう風に書いてもエラーになるよね。
<html:hidden property="honwaka" value="<bean:write name="hogehoge" property="value"/>" />
>ただstyleId自体が固定文字列のところは問題ないようなので
>下のように可変文字列を出力しているところが問題なようです。
なんかもう答えが出ているような気がするけど。
>>230 commons-upload使えばいいだけの話じゃね?
>>232 ありがとうございます。
Tomcatでは問題ないのでWebLogicの設定かもと調べていたら
WebLogic.xmlにJSPのコンパイル設定があるみたいなので
調べてみたいと思います。
キーワードはrtexprvalueみたいです。
>>236 自分も本当は嫌なんですけど
そうするとstyleIdに連番をふる方法が他にありますでしょうか?
もしあるなら使いたいです。
238 :
236 :2007/07/27(金) 08:39:44
カスタムタグの中に別のタグがあるような書き方はできないはずなので
スクリプトレットも当然駄目かと思ったけど、
TLDの設定で変えられるんだね。動かしてないから知らんけど。
(1)スクリプトレットの式を評価して
(2)その値をタグハンドラクラスの指定のフィールドにセットする...
と考えるとできるっちゃできるか。
ただ、スクリプトレットをJSPにゴロゴロ書き出すと
真似する奴が出て大変なことになると思うよ。
コーディング規約とかで禁止されていない?
割り切って使うならいいかもしれないけど。
>>233 え・・・いらなくなったんですか???
それは初耳だな〜Swingとかもう飽きた・・・
WEBアプリの方が楽でいいから戻りたいです。
239 :
236 :2007/07/27(金) 08:42:02
>>237 Struts-elを使うか、
カスタムタグを自分で作る・・・
Strutsのタグクラスを継承してtldをちょいちょい書くだけなので
意外と簡単だよ。
自分は後者の方でやった。
他にいい方法って逆にありますかね。。。
というか株を見ながら書いていたらこんな時間なので仕事逝ってきます。
解決しました。 <html:hidden name="hoge" property="type" indexed="true" styleId='<%= "hoge"+ index.toString() %>'/> としたらTomcatでもWebLogicでも動作しました。 なぜだかよくわかりませんが・・・ weblogic.xmlではうまくいきませんでした。
241 :
236 :2007/07/28(土) 01:22:59
>>240 年のせいか触ってないとすぐに忘れる・・・
俺もかなり適当なこと書いてるっぽいけど
もうちょい自分が何やってるか理解しようとする意思を持った方がいいよ。
嫌な言い方するようだけど
JSPなりカスタムタグなりがどうやって動いているのか
全然理解してないし理解しようともしてないでしょ。
俺はこういうのは気になって放置できない。
Strutsタグは使わないことにしました。
243 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 16:19:01
ところで、 ActionFormのreset()って、ページ遷移時と submitなどが押されたあとももう1回呼ばれるよね。 これって・・・ 駄目では。
236氏いい加減なこと書きすぎ。 えらそうなこと書きたいならJSP仕様を勉強し直してからにして。 スクリプトレットと実行時式の違いとかカスタムタグ仕様とか。
246 :
デフォルトの名無しさん :2007/07/29(日) 21:18:09
フォーム有りページに遷移→ActionFormのreset()でフォームが初期化される フォームに値を入力してsubmitする→なぜかまた同じActionFormのreset()が呼ばれて初期化
それはそういう仕様。 resetメソッドのところの説明をよく読め。
248 :
デフォルトの名無しさん :2007/07/31(火) 19:34:33
仕事でstruts勉強する必要ができたんだけど 一番分かり易い説明と要点の書いてあるサイトを教えて下さい。
249 :
デフォルトの名無しさん :2007/07/31(火) 19:37:49
Strutsってなんであんな使い辛い仕様なんだろう 今時WEB案件でjavaとか馬鹿じゃねーのと思う
250 :
デフォルトの名無しさん :2007/07/31(火) 19:52:45
たしかに、もう何十人の派遣ばっかの烏合の衆でシコシコと大型サイト組むような次代じゃないのかもね でも次候補にきそうなPHPもなんだかJavaと手間が変わらなくなってきてるしRubyはありえないし、、 模範的なWEB案件ってないもんか
Strutsがいいかどうかは別としてJavaが一番作りやすいよ PHPとか中途半端にオブジェクト指向取り入れて死んでるよ
252 :
デフォルトの名無しさん :2007/07/31(火) 21:13:34
JavaはServletクラスの設計からしてクソだからな。 Strutsはクソの上に積み上げたクソに過ぎない。
じゃばじゃば言ってる奴はダサいよな
じゃあ、何が良いの?
まずロジックをHttpServletやHttpServletRequestから完全に切り離すことだろうな。 入力の検査・加工ルールと、出力の整形・加工ルールを外部ファイル化できていればさらにいい。
HTML出力に限ればVelocityが良さそうに見えたが、テンプレート側に文字列の加工を連続して書けないのが難点だったな…。 たとえば「小数点2桁で切り捨ててカンマで区切ってからエスケープ処理したい」みたいなときに テンプレート側にスマートに書けないと、Java側のコードがどんどん膨れて困る。
いや、それじゃロジックとviewを分離する意味ないじゃん・・・
ん? 値をセットするのと、フォーマットして表示するのは別だろ?
本来、JavaがHTMLエスケープまで面倒見るのはおかしいんだよ。 出力がHTMLであることを定義するのはビューなんだから、ロジックとは無関係なフォーマットや HTMLエスケープはビューがやらないと、それこそビューと分離できなくなるでしょ。
いまからやるならJSFでいいじゃない
HTMLでしか表示しないのに、設計的に美しいからと変な手間を増やすのがJava厨クオリティ
まだPHP4が出だした頃にjavaもやりはじめて、 jspのエラー画面でスタックトレースの階層具合を見た時は轢いたな。 いまとなってはどうでもいいけど。
ぶっちゃけJSPでいいじゃんって最近おもう。
さすがに、それはない。
いや普通にJSPでいいだろ。何がダメなのかわかんない
266 :
デフォルトの名無しさん :2007/08/01(水) 21:48:58
そもそもなんのためにjavaあるの?意味なくない
XHTMLってDreamWaverやHomepageBuilderで作れる? 作れるならPOHP系に落ち着いて欲しいな。言語を選ばなくなるし。
>>266 そもそも何のためにVBが(ry
そもそも何のためにRubyが(ry
そもそも何のためにC#が(ry
ということで、そんな意味のないことを書くな。
269 :
デフォルトの名無しさん :2007/08/01(水) 23:05:30
>>268 ここまで使うメリットのない言語も珍しいだろ
javaの利点ってなにさ
煽るためだけに聞いてるような頭の悪いレスにしか見えん。 ああ、夏休みか。
誰も喪前にjavaを使ってくれなんていわないワケだが。
>>269 ここまでマジレスするメリットのないレスもめずらしいな。
ストラッツで作ったwebアプリで ブラウザの戻るボタンで 戻れないのは、 どうしてる? 注意書でブラウザの戻るボタンは押すなって 書いてあるとこもあるけど それは避けたいんだよな。
274 :
デフォルトの名無しさん :2007/08/02(木) 21:11:04
JavaScriptで制御してるな
最初からメニューを消しておけば問題なし。 ついでに右クリックも禁止してしまえ。 ふはははは。
そもそも戻れないって作り方の問題じゃね?
戻られて困るようなサイト、Strutsを使うまでもないカスだ
画面遷移をすべてRedirectで行えばよい
Struts1.2と1.3、実際に現場ではどちらのほうがより使われている? 各種ツールの対応状況の都合で未だに1.2という話も聞くが実際にはどうだろう? それから、Struts使う場合でもlogicタグを使うケースと その部分だけはJSTLを使うケースはどちらが多い?
1.3に上げるメリットがよくわからないし、2.0もあるしな taglibについては、以前のStruts開発ではJSTLを使った。 Strutsタグはhtmlタグ以外は使わなかった
282 :
デフォルトの名無しさん :2007/08/04(土) 17:42:47
分かりやすくstruts解説したサイト教えて
絶対JSTLの方が楽だと思うけど、 「今までlogicタグ使ってたから」という理由でlogic、beanタグを使うことが多い。 struts-html以外は、JSTLを使うのがベスト
2.0系は別物だからStruts以外のフレームワークも含めた別の観点からの議論が必要。 1.2.xで作ったモノを1.3.xへ上げる理由はないけど 新規開発ではどう?1.3があるけどそれでもなお1.2を使う? 理想論とか「あるべき」論ではlogicやbeanタグは使わずにJSTLがベターなのはわかりきっているが 実際の開発現場ではどうなの?
285 :
デフォルトの名無しさん :2007/08/05(日) 10:02:20
おまえらどこでstruts勉強したの?
>>284 1.3に上げてもものすごいメリットがないからなあ
保守を考えると全部1.2で同じ作りにしてあった方が楽なので、
うちは今のところずっと1.2
beanやlogicはJSTLに置き換えつつあるかな。でもlogicタグしか分からない外注さんも
多いから混ざってる
>>285 本家のstruts-examplesとUser Guideを見ながら。本は買ってない
カスタムタグは使わないほうがいい
289 :
デフォルトの名無しさん :2007/08/05(日) 15:43:07
>>286 分かり辛いだろ、
分かり易く書いてあるサイトとかなかったの?
やる気の問題だな
291 :
デフォルトの名無しさん :2007/08/08(水) 22:55:00
やる気なんかないから 分かりやすいのが欲しいんじゃね
292 :
デフォルトの名無しさん :2007/08/12(日) 13:44:17
スクリプトレットにならないだけでもstruts使う価値あり veligateとかtablib:logicとかtaglib:beanとか と、非strutsのソースみて思いました。 JS関数の中にjavaコード埋め込んであったり、もう酷かった。
JSTLで十分かと。
最近GWT使うようになってStrutsいらなくなったと感じる
>>286 同意。
現在の技術者の多くや、情報源の大部分はStruts1.2ベースだから、
1.3や2.0によっぽどのメリットがない限り、保守性、生産性を考慮し、
1.2を採用すべきと考えてる。
それでも1.3や2.0を採用する価値があるか逆に聞きたい。
まぁ、1.3や2.0のこと全く知らないんだけど…
>>295 2.0は俺も知らんけど、1.3のメリットなら
処理の割り込みをカスタマイズするのが非常に楽。
たとえば、Actionのexecute()の呼び出し直前/直後に行いたい処理を割り込ませるとか。
アプローチはCommonsChainでAOPじゃないのがイマドキじゃないけど・・・
あとは、ユニットテスト用のモックが提供されているとか、
Validatorや例外処理のリソースバンドル分割に対応しているとか
URLバリデータが賢くなったりとか。
Actionがインスタンス化されるときのメソッドって何ですか?
298 :
デフォルトの名無しさん :2007/08/25(土) 01:06:47
1.3.8、なんで45MBもあるの?
299 :
デフォルトの名無しさん :2007/08/28(火) 23:34:30
Struts1.3で質問です。 JSPで表示が同じ複数のボタンを配置して、 サーブレットでどのボタンが押されたか判定したいんですが、 どうすればいいでしょうか? 別にStruts使わなくても構いません。
>>299 EventDispatchActionを使うと吉。
301 :
デフォルトの名無しさん :2007/08/31(金) 01:54:22
302 :
299 :2007/09/01(土) 21:37:01
304 :
デフォルトの名無しさん :2007/09/21(金) 23:02:37
なあ、今strutsの本読んだんだけどさ、 素のサーブレットと手間変わんなくない? これじゃ使う意味ないよね。
>>304 そう思うってことは、勉強が足りんよね。
>>304 素のサーブレット書くよりは数倍楽だと思うけど。
派遣とかの現場でもstrutsってもう終ったの?
むしろ、JSFほか別のフレームワークがはじまってないので、Struts一色
310 :
デフォルトの名無しさん :2007/09/24(月) 17:56:13
うちは4年前からturbine(velocity + torque)
311 :
デフォルトの名無しさん :2007/09/24(月) 19:10:42
ひがたんも賢いスーツ側の人間だからなぁ。 しーさーがうまくいかなそうだったら逃げるのかい?
Struts はなんだかんだいって見通しがいいのと 実績があるのもあって総合力は高いよね。
314 :
デフォルトの名無しさん :2007/09/25(火) 17:30:31
うちは去年からWebObjects
何それ、聞いたこと無い
>>313 strutsはたいしたことはやってないので見通しがいいのと、
登場した時期が早かったのと、
開発メンバーが他のを覚えようとしないので、
うちでもめちゃくちゃポイントが高い。
プレゼンテーションフレームワーク以外にも 覚えないといけないことはたくさんあるので 一度覚えた Struts を使ってくれていいです。 それよりはテスト技法とか、リファクタリングなんかを覚えて コードの品質を上げてもらえればうれしいです。
319 :
デフォルトの名無しさん :2007/09/26(水) 12:10:10
>>315 WebObjectsはiTunes Storeに採用されたJavaのWebフレームワークです
ああ、アップルのか 俺的には、どんだけマイナーなんだよって感じだけど、他では大流行してたりするのかな
Macで開発してた人には人気が高いし、WebObjectsを模倣したフレームワークも多くある。 Cayenneなんかもそんな感じじゃなかったかな
Cayenneって永続化層のフレームワークじゃなかったっけ?
>>321 知ったかぶりもここまで度を過ぎましてはいけませんな
ご短慮でありましたな
なんにせよMacなんぞサーバに採用しないし、WebObjectsを使うことはねえな
WebObjectsはJavaだからSolarisでも動くって…
java厨化石化の傾向がこんなに早くみられるとは・・・
>>328 Javaも今に衰退しますからあと10年見守ってて下さい
SSHってなんだと思ったら Struts+Spring+Hibernate のことか。
331 :
デフォルトの名無しさん :2007/10/03(水) 00:53:26
Strutsのよさって何だろう? Action(画面遷移の定義)とリソースが落ちてるぐらいしか思いつかん。 Strutsタグは糞だし、デバッグもしにくい(わかり難い) 勉強するのにはいいかも試練が初心者のは難しい気がする。 ごちゃごちゃ機能があるくせホントに使えるのはあまりない Application層を目的として作ったはずなのにDataSourceが定義できる時点で・・・ 後継承を繁盛に使うせいでユニットテストが使えない。 ver2.xからがらりと変わってるらしいけど・・・・ 変なところで固い癖にごちゃごちゃしすぎ ところでDynaActionFormとか使ってる人がいたら使い方教えてください
DynaActionFormの利点がわからない
>>331 >Application層を目的として作ったはずなのにDataSourceが定義できる時点で・・・
Application層ってなんすか?
自分が知らないだけですかね。
Datasourceは定義できるだけで非推奨じゃなかったっけ?
まぁ使わなければいいだけだし、使わんでしょ普通。
>後継承を繁盛に使うせいでユニットテストが使えない。
よくわかんないなー
ActionクラスとかがサーブレットAPIに依存しているので
結局画面で動かさないとできないとかそういうこと?
MockのHttpSessionとかHttpServletRequestを用意すれば
簡単に単体テストできるというか俺はやったけど。
なんか変な共通処理とか環境に依存する部分を
Actionクラスに見せまくる作りだとやりにくいけどね。
ここはちゃんと設計すりゃ大丈夫でしょ。
「Strutsの良さ」なんて、土方が集めやすいぐらいでしょ。 Wicketは良いよ。土方集められないけど。
337 :
デフォルトの名無しさん :2007/10/03(水) 11:08:17
DataSourceの定義は、1.1の頃からドキュメントでは「推奨しない」と言っていたが、1.3からは完全になくなった。 1.3では定義すら出来ないよ。 1.3では標準でMockテストのためのTestCaseクラスが用意されている。 StrutsTestCaseなんて今時使う奴いるのか? Strutsを使った開発をさらに難しくするだけじゃないか。 2系は今はStrutsプロジェクトで開発されているが、まったく別系統のフレームワーク。 「Strutsの新しいバージョン」と思っていると間違い。
悪くはないが、ヴォケはお前だと思うよ
>>339 は趣味でしかプログラミングをしないヴォケ。
仕事だったらもっとヤバいだろw クソアーキテクトの下で働くのも大変だな。
質問なんですが、 Actionを作った場合、ActionFormを使わない場合でも、 それに対応するActionFormクラスは、 絶対作らなければならないんでしょうか?
そんなことはない
345 :
デフォルトの名無しさん :2007/10/07(日) 01:15:04
Strutsの悪いところってなんですか?
>>345 一度、WicketやTeedaなどに触ってみるといいと思うよ。
347 :
デフォルトの名無しさん :2007/10/07(日) 03:13:34
teedaは触ってます strutsより明らかに良いと思ってます なのでstrutsを排除したいと考えています 部署で説得するためにネタください
>>347 悪い所出そうとしてる時点で説得スキル足りない
より良い物として出さないと
349 :
デフォルトの名無しさん :2007/10/07(日) 08:24:11
頭堅い奴は枯れてるとかいう理由で、いくら良いものがあってもなかなか既存技術捨てて新しいモノに移行しようとしない。
>>347 どういう立場の人を説得したいの?
エンジニア?それともマネージャ?
352 :
デフォルトの名無しさん :2007/10/07(日) 13:30:37
マネージャーです
>>352 会社によって微妙に役柄変わるからあれだけどマネージャーレベルなら
適応によるプラスマイナス両方出して、大まかでも目に見える数値の話でないと食いつかないよ。
マイナス材料(Ex:初期教育コスト、リソース確保とか)がでて無いとちゃんと選定しているのか?と言う話になるし。
注意しないといけないのは「じゃあ次一つやってみて比較しよう」が出た場合、
実績あり(Struts)なし(Ex:Teeda)が初期教育コスト無視で比較される可能性がある。
プロジェクト完了後、技術者からちゃんと情報収集して判断してくれる人ならいいんだけどね・・・
あと技術者レベルでの根回しは必須だと思うよ。
マネージャレベルだと、有償サポートって売りにならない?
355 :
デフォルトの名無しさん :2007/10/07(日) 15:51:09
フレームワークの選定にマネージャーがでてくるの? 技術わかるマネージャー?
土方が探しやすいとか丸投げしやすいとかそういう要素が重要
357 :
352 :2007/10/07(日) 16:15:26
古い組織だとマネージャー出てきます。 WEBと言えばstrutsしかなくてそれがあればWEBアプリができると信じています。 比較しようと思ったときにstrutsのマイナス面を考えたんだがなかなか決定的なのがなくて… teedaって有償サポートあるんですか?
>>357 1個人のいうマイナスと実績どっち信じる?
その後どう言ったってそのレベルの否定から入ったら終わり
ISIDがサポートやってるよ。 JSPじゃなくって素のHTML使えるのも利点だね。 「HTMLだけが書ける安い人が使える」って言って。 あとは、東京三菱の実績ありってとこかなぁ。 技術的な話だと、Ajaxサポートとかは?
360 :
デフォルトの名無しさん :2007/10/09(火) 06:32:47
WTPがまともになった今どき、Sysdeoなんて使ってる奴がいることに驚いた。
362 :
360 :2007/10/09(火) 09:37:12
すみません これからJavaはじめようと思って解説サイトの手順通りに従おうと思ったので・・・ 入れてるのがwtp-all-in-one-sdkなので知らないうちに開発環境整ってたんですね WTPについて調べてきます
363 :
デフォルトの名無しさん :2007/10/09(火) 20:22:53
WTPってまともになったんだ? Tomcat Pluginと比べてどんなメリットがありますか?
比べるものですらない
365 :
デフォルトの名無しさん :2007/10/09(火) 23:25:31
eclipse純正という安心感 all in one 動的WEBプロジェクトのディレクトリが決まっててlibにjarいれたらひとまとまりになる まん
NetBeansの機能の一部やん>WTP struts-configの編集にはまた別のプラグイン入れなあかんかった
all-in-one入れたけどweb開発らしきプロジェクトが選択項目に出てきません なんでだろう・・・ もしかしてtomcat入れないとだめ?
久し振りにstrutsの開発をすることになった。 今日設定をしてたんだけどうまく動かない。。 URLたたいてもActionServletが呼び出されていない感じで404になる。 コンパイルは通るし、デプロイは成功、 デプロイ時にActionServletは読み込まれているので(デバックした) ここら辺は問題ないと思うんだが・・・何か原因わからない? ちなみにearの中にjar,warを含めて、 application.xmlにコンテキストは指定してある。 同じverのstrutsサンプルは動いたので 完全に設定の問題なんだが。。。
>>368 >ここら辺は問題ないと思うんだが・・・何か原因わからない?
>完全に設定の問題なんだが。。。
370 :
デフォルトの名無しさん :2007/10/11(木) 22:02:39
フォームで、submitボタンやtextボックスのpropertyに、 日本語の伸ばし棒"ー"を使うと、 javax.servlet.ServletException: BeanUtils.populate at org.apache.struts.util.RequestUtils.populate という例外が発生してActionのexecuteまで行かないんですが、 これを回避する方法って無いでしょうか? ちなみに伸ばし棒以外の日本語は大概大丈夫でした。
actionListener / onChange で「ー」が入ってたら「−」に変えてしまえ
372 :
デフォルトの名無しさん :2007/10/20(土) 21:29:43
スレ違いかもしれないのですが、どこで聞いたらいいのかわからないので、、、 Actionを継承したクラスに入力チェックやSQLを投げる処理が書いてあるのって普通なのでしょうか。 いろいろな面で(熟練度とか)仕方ないのかもしれないのですが、 SQLの種類が大量になったり、入力の仕様が変わったりするたびに修正漏れなどがおきてどうしようもなくなっています。 もちろん未熟者の私が口をはさめる事ではないのですが、他社での経験がないので知っておきたいのです。
>>372 そのレベルが集まって一番コスト低いのがその手法なら・・・それでもその手法は選択できないw
入力チェックは一概に言えんけど、DBアクセス周りはS2DaoとかiBATISとか触ってみるといいよ。
>>372 ActionクラスにSQLとか終わってると思うすけどね。
unitテストとかできんでしょ?
MockのHttpServletRequestとか用意して単体テストできるようにしたことあったけど、
それにしてもview周りの面倒な処理が入りやすいActionクラスからは
その手のは排除するようにすべき。
単項目でチェックできない入力チェックなら
Actionに入ってもいんじゃないかな。
でもその話からするとActionクラスで
全部をやろうとしている設計ぽく聞こえるなー
俺なら絶対に触りたくない。
375 :
デフォルトの名無しさん :2007/10/21(日) 18:04:18
Strutsが出て5年くらいになるか? 当時、俺はJavaを未経験で入って、研修という名のもとJava未経験のおっさんが だしてくれた課題をせこせこ作ってて、現場デビュー。ちょっとしかかじったことな JSP・サーブレットで悪戦苦闘。その後、StrutsやらEJBやらわけわからん用語が次々とでてきて もうだめだと思い、リタイヤ。このまま新技術がどんどん出てきたんでわ、とてもじゃないがついていけないとおもった。 今、色々みてみたら、当時からそんなに変わってないじゃん。。なんのこっちゃか。。
376 :
デフォルトの名無しさん :2007/10/21(日) 22:30:42
ねえStruts2やってみてるんだけど、なんでもないページでもレスポンス遅くね?一拍置いてから表示される感じなんだよね 解決策あるんでしょうか?
>>375 昔のEJBは確かにアレだったような希ガス。
とは言え今ならJSFとかにシフトすればいいのでは?
それかJava捨ててRoRとか。
Tomcat6.0 + Struts1.3.8を使っているんですが、 FormFileを使ったファイルアップロード時にできる、 一時ファイルはどこに作成されるのでしょうか? <controller> <set-property property="tempDir" value="/TempDown/" /> </controller> これで一時フォルダを指定して見てみると、 一時ファイルは処理後も消えずに溜まっていました。 一時フォルダを指定せずデフォルトでも動かしていたのですが、 そのときできた一時ファイルが残っているなら消したいです。
FormFile#destroy()
デフォルトの一時ディレクトリは、コンテナが割り当てるアプリケーションの一時作業ディレクトリ。 Tomcatなら%CATALINA_HOME%/work/Catalina/localhost/contextname以下。
381 :
378 :2007/10/22(月) 19:08:04
どうもありがとうございます。
>>379 一時ファイル消せるんですね。
根本的に解決しました。
>>380 Tomcatのserver.xmlのContextのworkDirに設定されてました。
>>382 正直、TeedaとかWicketのほうが全然いいと思う。
384 :
デフォルトの名無しさん :2007/10/30(火) 10:18:55
DynaActionFormをプログラム内で生成して値を設定するには どうすればいいでしょうか? 普通のActionFormなら作ったクラスのインスタンスを生成すればいいですが、 DynaActionFormはform-beanでform-propertyを設定しても、 クラス自体を作ったわけじゃないので、 ただのDynaActionFormでしかインスタンスを作れません。
JSP を標準のビューから追い出してテンプレート志向を強めたら Struts は生き残れたかもしれないが。もうダメだろう。
最近上司に迫られてStrutsの勉強をしてみました。 それで簡単な社内システムを作ってみました。 せっかくなので、今どきっぽいやつをというわけでJSFも勉強してみようと思いました。 このスレでもJSFのスレでもJSFの評判はいまいちですね。 いまさらこんなことを聞かれてもとお思いでしょうが、結局今やるならどれ? 会社的にはわけのわからないツールを使っていて、 JSP/Servlet関係の仕事も去年数件やったくらいです。
個人的にはSpringとかどうかなと思っている
Springは層が違う
Teeda, Wicket, Tapestry 個人的にはWicket
>>384 protected DynaActionForm initNextDynaForm(ActionMapping mapping, String NEXTFORM) throws IllegalAccessException, InstantiationException {
FormBeanConfig config = mapping.getModuleConfig().findFormBeanConfig(NEXTFORM);
DynaActionFormClass dClass = DynaActionFormClass.createDynaActionFormClass(config);
DynaActionForm dform = (DynaActionForm)dClass.newInstance();
return dform;
}
>>385 俺はしぶといと思う。struts。
過去の資産があるし、ググれば大抵のことが解決しちゃうから。これは
ある程度の生産性が保障されるしな。廃れるときは、Ajaxで生産性が飛躍的
にあがるフレームワークが広まったときじゃないかな。
AjaxとWicketってどんな感じなの?
そうそう、素敵なものが流行るとは限らないのがこの業界の悲しいところでもある。
Ajaxなんて面倒なもんやらずにFlex+Strutsでいいや
394 :
384 :2007/10/31(水) 16:48:36
>>390 どうもありがとうございます。
DynaActionFormClassのJavadocに、
「開発者はこのドキュメントを調べる必要ない」って書いてたんですが、
DynaActionFormを自分で作るのはあまりやらないことなんでしょうか。
ないな 使い勝手いいもんじゃないし
396 :
386 :2007/10/31(水) 17:25:34
みなさんありがとうございます。 Strutsでっていっときます!
EventDispatchActionを使うと、 submitボタンのpropertyによってメソッドを振分けられますが、 リンクタグにpropertyのようなものをつけて、 submitボタンと同じようにメソッドを振り分けることはできないでしょうか? こんな感じでやってみたんですが、これでは無理でした。 <html:link action="/paging" property="next">次へ</html:link> 度々の質問で申し訳ありませんが、よろしくお願いします。
>>397 やったことはないですが、html:linkにパラメータ渡せるんで、submitでわた
すような値をセットして見ては?
ex)
next=次へ
あと、html:linkへのパラメータの設定方法はぐぐれば出てくると思います。
>>393 flexはえらい高かった。2になって多少安くなったかもしれんけど。
>>398 昨日色々とググったんですが、なかなか上手くいかず…
パラメータ付けるだけならできるけど、
EventDispatchActionのメソッド振り分けができなかったり、
バージョンによってタグに使える属性が違ったり。
と思ったらできました。
Struts1.3.8でこんな感じです。
<html:link action="/paging" paramName="PagingForm" paramId="next">リンク</html:link>
これでpagingアクションのnextというメソッドに飛びます。
>>391 Wicket+Ajax普通に使ってるよ…受託案件じゃないけどw
>>402 Flexデータサービスとかがなくても、サーバ側とのデータのやり取りできる
の?
WebService 経由にしてしまえばどうとでもなる。
405 :
JAVA初心者 :2007/11/02(金) 19:23:54
こんにちは。 いつも参考にさせていただいています。 STRUTS使用のJSPで、html:textを使用するときに フォームのプロパティに値がsubmit後に入ってくると思いますが、 formの直下にプロパティがない場合、 たとえば formの直下にaBeanというビーンがあります。 そして、そのビーンの下にbBeanがあり、 そのbBeanの下のプロパティにsubmit後に ユーザの入力値を設定したい場合は そのようなことは技術的に可能でしょうか? また、可能であれば、どのようにJSPにかけばよろしいでしょうか? よろしくご教授してください、、
406 :
デフォルトの名無しさん :2007/11/02(金) 19:33:40
スレ読まずにSTRUTSの良さ語らせて貰うが、STRUTSの良いところはお手軽に アップロード出来ることかな?
>>405 <html:text property="aBean.bBean.プロパティ名" />
誘導されたのなら、「○○から誘導されました」と一言沿えるのが礼儀だぞ。
それをしないとマルチポスト認定されるぞ。
>>406 Strutsのメリットでも何でもない。
Commons FileUpload使えば同じぐらい簡単。
408 :
JAVA初心者 :2007/11/02(金) 19:45:56
>407 あまりこちらの掲示板の使いこなせてなかったようで申し訳ありませんでした。 以降気をつけます。 また、ご教授してくださいましたやり方でやってみます。 ありがとうございました。
Struts1.2ってこれからの仕事では使われていないのかな? springって今でも使われてる?流行で終わったのかな。 数年前のOSSのフレームワークブームの頃のPGが出世して、 世代が変わったかな。
>>410 うーん、JSFとかの方が1から作るなら生産性は高いんだろうけど
慣れたStrutsと慣れないJSFでどっちをとるか?というと今のところStrutsを選んでしまう
Springは…正直、Strutsで何十も画面を作ってからでないと、
Strutsの何が駄目なのか?なぜDIが登場したのか?DIだと何がうれしいのか?
があまり理解できないと思う。
そういう意味での流行は終わったのかもしれないが、使われてないことはないぜ
>>411 が一番SpringもStrutsもわかってないなw
なぜStrutsとSpringが同じレイヤーで語られるんだよwww
一瞬最近のSpringってJSF相当の機能でも盛り込んだのか?と思ってしまったが・・・。
414 :
デフォルトの名無しさん :2007/11/03(土) 12:50:34
教えてください。 Struts-config.xmlに以下のようなアクションと、そのプロパティが設定されているとき、 <action path="test/test01" 〜略〜> <set-property 〜略〜> </action> test/test01.do でアクセスした時に、filterでアクションのプロパティを取得したいです。 ※actionクラスの実行前に取得したいです。 actionクラスのActionMappingオブジェクトからは参照できるんですけど、 dofilterには該当クラスが引数にないので参照できません。 もう一つの質問ですが、 Struts-config.xmlのAction要素のpath一覧を取得する方法はありますか? 可能なら教えてください。
xsltでも使えば?
416 :
デフォルトの名無しさん :2007/11/03(土) 13:17:48
標準の方法でお願いします。 標準外のライブラリの追加は認められないので・・・
javax.xml.transform.*を標準外と申したか
稼働中のシステムでpathを取得する必要があるのか? ツールの類にまで「標準外は駄目」とかあるのか? jakartaのライブラリ類なんかも使えないのか? そもそもstrutsが「標準外」じゃないか?
419 :
デフォルトの名無しさん :2007/11/03(土) 17:43:13
>>417 ごめんよく知らないからxsltをぐぐったら何か追加しなきゃだめだと解釈した
jdk1.5とstruts1.3.8に入っているもの意外原則駄目。
唯一の例外はojdbc14.jar
フィルタからactionのプロパティ取得は普通のやり方じゃ無理ってこと?
>jdk1.5とstruts1.3.8に入っているもの意外原則駄目。 >唯一の例外はojdbc14.jar アフォじゃねーか、と思う環境だな。
>>420 なぜアフォなんだ?
ある程度縛りも必要と思うが。
>>419 それ酷すぎないか?w
DBアクセス周りとかトランザクション管理とか全部自作?
424 :
デフォルトの名無しさん :2007/11/03(土) 19:45:05
ojdbc14.jarは使うんだって
トランザクションはsqlで吐いてする予定。
DBアクセスの自作ライブラリ作るのはそんな苦にはならないし
※リクエストをまたがってのトランザクション制御が出来るかはまだ未検証(出来ますか?)
>>420 業務のシステム開発にはいろいろしがらみがあるんだよ
趣味みたいに好き勝手自分だけの裁量では出来ない。
新しいライブラリを使うためには、
その根拠などの諸々を上や客に説明し説得する必要がある。
正直めんどくさいから、標準で出来ることだけで済ましたいんだよ。
携帯からなので書くのがめんどくさいから「できる」とだけ答えておく。
426 :
デフォルトの名無しさん :2007/11/03(土) 19:52:09
てか、こっちの事情はいいので 質問の解(手法)を教えてくれませんか・・・ @自作Filterクラスのdofilterメソッドでchain.doFilterの前に、struts-config.xmlの該当actionのset-propertyタグの値を取得する方法 Astruts-config.xmlのaction要素のpathの値の一覧を取得する方法
427 :
デフォルトの名無しさん :2007/11/03(土) 19:54:54
>>425 待ってますので方法教えて下さい。
お願いします。
月曜に会社いくまでテスト環境はないので
月曜に試したいと思います
>その根拠などの諸々を上や客に説明し説得する必要がある。 >正直めんどくさいから、標準で出来ることだけで済ましたいんだよ。 その程度の事を説明できない無能だから、アフォ扱いされてんだと思うが。 漏れもアフォだと思う。
429 :
デフォルトの名無しさん :2007/11/03(土) 21:31:23
元々アフォ扱いされてるのは環境じゃね? 俺をどう思おうが勝手だけど、その行が本気で理解できないのなら もう少し世の中を知った方がいいと思う 皆が上や客に恵まれていたら、この業界ブラックとか言われないよ 道理の通じない奴は間違いなく存在するんだから まあ、俺も昔はそんな風に思っていたから言えるんだけどね
430 :
デフォルトの名無しさん :2007/11/03(土) 21:35:42
>>425 以外でも、分かる人いたら教えて下さい。
方法一つとは限らないし。
知ってる人なら簡単な類のコードなのかと思っていたけど
案外難しい事なのかな??
431 :
デフォルトの名無しさん :2007/11/03(土) 21:35:59
いるよなー。 自分の実力&実績不足を環境や客の性にするヤツ。 50代の保守何十年のCOBOLerが同じ事言ってるの何回か聞いたことある。
>>427 Digesterを使えば?Struts自身がstruts-config.xmlを読み込むために
使用しているので、標準外ということはないはず。
気持ちわからんでもないが、Stuts以外のJakartaも駄目つうのはなんとか
すべきじゃないの。上から下までアフォばかりという印象...。
433 :
デフォルトの名無しさん :2007/11/03(土) 22:02:17
>>431 まあ、初javaで知識も実績もないから仕方ない。
普段お金の意識してないと分かんないかも知れないけど、
知らない技術をプレゼンする為には調査検証が必要だが、
そこにあんまりお金はかけさせてもらえないんだ。
客から取る金は決まってるからね、無限じゃない。
>>432 Digesterぐぐってみます。
Stuts以外のJakartaを説明するだけの知識が付いたら何とかしたいですが
まだ、それだけの知識ないんで・・・精進します
>>433 んな出来ない言い訳で実装コスト増やしてどうすんだよ・・・
実装のほうが金かかるんだよ。
Struts通ってるんだからStrutsで使ってますのでとか適当に言っておけばいいのにw
Not Invented Here症候群は、洋の東西を問わずSIerの宿痾だ。彼だけを責めることはできないな。
.netならすべてそろってるのに
437 :
デフォルトの名無しさん :2007/11/03(土) 22:27:02
>>434 いや、確立した手法があるなら使いたいと思って質問しているだけだよ
手間のかかる実装だって分かってるなら他の方法検討する。
正直なにも分かってないからこの始末
commons-digester-1.8.jarくらいなら使えるのでこっちで検討するかな・・・
Digesterって
<a>
<b>これ</b>
</a>
こういうのは取れる方法はみつけたけど
<a>
<b path="これ"/>
</a>
こういうのは取れるのかな?
<a>
<b path="test">
<set-property name="c" value="これ"/>
</b>
</a>
あとこういうのも
けど、XML解釈は素のDOMかSAXなんで、もっと便利なものが欲しいとNDigesterが欲しくなったり、 ログ出力自作するのがメンドイと、Log4netに手を伸ばしたくなったり、 テスト駆動したいからとNUnitが手放せなかったりと、 そういうことはある。
>>437 なんでもござれ。受け側のクラスの作りにも寄るけど、SetPropertiesRuleが使えるかな。
Digesterは、頑張ればCallMethodRuleで何でもできるよ。
そろそろスレ違いのような気がするけど、Commonsスレはdat落ちしたから他にいいスレもないね。
440 :
デフォルトの名無しさん :2007/11/03(土) 23:00:15
OK ちょっと月曜日いっぱいくらいそっち方面の検証してみます。
ありがとうございました。
ただ
>>425 の情報は引き続きお待ちしておりますw
xpathでとれるだろ。javax.xml.xpathだ。 でも、その環境なら、JDK1.4.2ってオチがありそうだな。
まぁ
>>424 の言う気持ちもわかる。
おれが今まで経験してきた案件でも、追加の jar を入れさせてくれないこともあったり、
入れさせてもらうために資料を作ったり、その検証のためにプログラムを大急ぎで作ったりしたもんだ。
ただ客は馬鹿だから、
>>434 のように適当に言っておいたり、
「OSSで世界中でテストされたプログラムと、これから一から作るプログラムと、どちらが信頼性があると思いますか?」
と言ったりすると納得してくれたりすることもある。
OSS = 品質が高いは、多少の相関はあってもイコールではないけどね。
ただむかつくのは、
>>440 のように、待ちの姿勢であることだ。
いま土日だろ?
> 月曜に会社いくまでテスト環境はないので
チームが2日も止まってくれているんだから家でテストコード書いて試せばいいじゃん。
struts と commons 落としてきてごそごそやればいいだけじゃないか。
おまえそんなんだと今後成長しないぞ(伸び代ないぞ)
>>438 .netならXML周りは読みXPath, 書きDataSetで十分
Log4net, NUnitは同意
StrutsConfigエディタもほんと楽に作れるしなw
スレチすまん
ActionPathの一覧なんてActionConfigだっけか?そんなクラスから取れただろ。 つまり440はアフォでヘタレでカス
org.apache.struts.util.ModuleUtilsあたりなら、Filterからでも取れるんじゃなかったっけ? っていうか、昔似たようなことやった覚えがあるけど、Struts本に普通に書いてあったと思うけどな
ActionConfig見た限りだと、pathはいけるけど、set-propertyの値取れる ように見えないんだが。方法あるのかな?
set-propertyってActionMappingの継承クラスにプロパティセットする為のものだっけ キャストして取ればいいんじゃね? それかBeanUtils使うとか
doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 上のオブジェクトから ActionConfig ModuleUtils これらって取れた?
>>440 の状況は遭遇したことあるわ。ぶっちゃけ客や会社による。
俺?Strutsすら使わせてもらえない、いかれた設計思想の自社フレームワークつかって開発ですよ。
Strutsは実績が十分すぎるほどあるが、
俺の会社ではこのフレームワークがStrutsの実績よりも重視される。
それでもいつか、使うときのためにネットにつなぐたびこのスレをチェックしてるんだ。
いつか自分も悩むかもしれない問題の解決策があったなぁと思い出せるために。
ROMてるだけの俺だが、アフォだのCOBOLerを引きあいにだした書き込みはちょっと萎える。
仲良くStrutsの良さを教えてあげればいいジャマイカ
つか、そんなに信頼性やら実績重視で使うライブラリに制限があるなら、 最初からIBMからWebSphereでも買ってその上でStrutsとかJSFで実装すればいいだろ。 IBMのパッケージならロガーやらUnitとか最初から全て入っているし 困ったらサポートに泣きつける。 それこそ趣味じゃなくて仕事だったら金出してサポート受けろよ、って希ガス。
>>449 > 俺?Strutsすら使わせてもらえない、いかれた設計思想の自社フレームワークつかって開発ですよ。
どっかの電力会社でそんなのあったなぁ。
>>449 >業務のシステム開発にはいろいろしがらみがあるんだよ
>趣味みたいに好き勝手自分だけの裁量では出来ない。
>もう少し世の中を知った方がいいと思う
>月曜に会社いくまでテスト環境はないので
こんな事言う質問者なんて2ch以外でも相手されないぞ?
2chと思えない位このスレの住人は優しすぎる
しかし、なんで
>>414 はこんなに上から目線なんだ?技術力も交渉力も質問力も無いのに・・・
釣れますか?
425です。お待たせ。 2日間外出していたのでレス遅れてスマソ。 org.apache.struts.config.ModuleConfigオブジェクトがServletContext(つまりapplicationスコープ)に org.apache.struts.Globals.MODULE_KEYというキーで入っている。 ServletContextは、FilterのdoFilter()メソッドの引数に入ってきているFilterConfigオブジェクトの getServletContext()メソッドで取得可能。 ModuleConfigは、Strutsの設定ファイルの内容をすべて読み込んで保持しているオブジェクト。 ModuleConfhgのfindActionConfigs()メソッドで、ActionCoofigの配列が取得できる。 ActionCoofigは、各<action>要素の設定内容を保持しているオブジェクト。 ActionConfigのgetPath()メソッドでpathの値を取得できる。 <set-property>要素の値は、ActionConfigの(正確にはスーパークラスであるBaseConfigの) getProperties()メソッドでjava.util.Properties型で取得可能。 APIドキュメント眺めてればこんなのすぐにわかりそうなものだけどな・・・。
すまん。ActionCoofigはActionConfigsと読み替えてくれ。
457 :
デフォルトの名無しさん :2007/11/05(月) 18:23:41
>>455 ありがとうございました。
おかげ様で希望の動作をさせることが出来ました。
1.3.8を使っています。LookupDispatchAction を使ってみました。 クリックされたボタン名(正確には、struts-config.xml の action 定義の parameter属性で指定した名前)に応じてメソッドを振り分けることはできるようになりました。 ただ LookupDispatchAction の場合、そのActionに飛んできたときにどのボタンもクリックせずに遷移してきた場合 (HttpRequestの中にparameter属性で指定したパラメータが含まれない場合)、 > javax.servlet.ServletException: リクエスト[/hoge]に buttonName という名前のハンドラパラメータがありません という例外が発生してしまいます。 LookupDispatchAction、DispatchAction とソースを追っかけて行くとたしかにそう動くようになっていますが、 DispatchAction系を使う場合、かならず遷移元で何らかのボタンを押してもらわないとダメなのでしょうか? ある画面に複数ボタンがあって、押されたボタンによって処理は振り分けたいけど、その画面に初めて遷移してくるときは 前画面からどのボタンも押されないため(リンクでクリックされるとか)、任意のメソッドを動かしたいです。 いままで(ふつうの Action のサブクラスで execute() をオーバーライドしていたとき)は、 以下のようなコードを書いて押されたボタンによって処理を振り分けていました。 execute() { if ("update".equals(form.getButtonName("update"))){ // updateボタンを押されたときの処理 : } else if (form.getButtonName("update") == null) { // 遷移元から何もボタンが押されなかったので初回遷移時とみなす : } : } こういうとき、どうすればいいでしょうか? それともこれはこういうもので、私がDispatch系Actionの使い道をまちがえているのでしょうか?
unspe何とかってメソッドが呼ばれるんじゃなかったか?
たしかに最終的に DispatchAction#unspecified() に処理が移り、
DispatchAction#unspecified() のなかで throw new ServletException(); されてますね。
そうか、これをサブクラスでオーバーライドすればいいのか!! ピコーン(AA略
たしかにこのメソッドの javadoc コメントにも
「DispatchAction のサブクラスは、リクエストパラメータが見つからない場合の挙動を変えたければ
このメソッドをオーバーライドしなさい」
といったことが書いてありました。
ソースを追いかけていたけど、javadoc コメントは英語だったのでスルーしてました。
ちゃんと javadoc 読まないとダメですね。
>>459 さん、ヒントを与えてくださってどうもありがとうございました!!
これですっきりして眠れます。
461 :
デフォルトの名無しさん :2007/11/06(火) 17:00:43
struts2でアップロードしたファイルで拡張子ごとのコンテンツタイプの 早見表などが載っているサイトなどがありませんでしょうか?
JSF使えば1画面複数ボタンがチョーーーーーーーーー楽なのにね
464 :
461 :2007/11/08(木) 20:29:35
ありました!ありがとう。
465 :
デフォルトの名無しさん :2007/11/08(木) 23:50:20
教えてください。 最近strutsを勉強しだしたんですが、現在ダウンロードできるstrutsのバージョンは1.3.x〜2.0のようです。 ところが各サイトで解説しているバージョンは1.1ばかり。売られている書籍は1.2まで。 以上が私の貧弱な検索で調べた結果なんですが、もし1.3以降の解説をしているサイト もしくは1.2以前のアーカイブの入手方法がわかる方、ご教授いただけないでしょうか。
HTMLで、「あなたの年齢を入力してください」みたいな <html:text> のフィールドがあったとします。
数字での入力を期待しています。
ActionForm では、setAge(Integer age) みたいに Integer 型の属性としました。
ただしテキストボックスにはアルファベットも入力できるわけですが、数字以外を入力した場合、
NumberFormatException とか出ずに、ActionForm の age には 0 が代入されています。
未入力の場合も null ではなく、0 が代入されています。
しかしテキストボックスに未入力の場合と、0が明示的に入力された場合を区別したいです。
いろいろググって見ると、そういう場合は属性を String にするしかない(基本的にStringしか使えない)とありますが、
例:
http://blog.goo.ne.jp/glass-_-onion/e/cfc190c41d931bf3020719e7d724cf79 そういうものなのでしょうか?
>>465 Struts 2.0 はまだ出たばかり。1.x と 2.x は別物。
1.2 以前がほしければ、
http://struts.apache.org/ → Older Releases (Archive Site) → binaries/ とたどれば出てくるよ。
プロジェクト等でバージョンの指定がなければ、いまは 1.3 でよいのでは。
467 :
デフォルトの名無しさん :2007/11/09(金) 00:46:41
>>466 この場合はStringにするしかないですね。多分
468 :
465 :2007/11/09(金) 00:49:56
>>466 さん
ありがとうございます!助かりました。
1.3を落として、1.1の解説を読みながらやってたんですがバージョンの違いでつまずいてしまって・・・
かなりの初心者なんで、ちょっとした違いでも対応するのに時間がかかってしまう為、
古いバージョンで解説どおり動くかどうか確認したかった次第です。
>>466 scriptで処理する以外はStringしかないかねぇ・・・
470 :
466 :2007/11/09(金) 01:09:56
471 :
465 :2007/11/09(金) 01:17:02
>>470 重ねてご教示いただき、ありがとうございます。
やはり本は一冊買うべきですね。
明日にでも本屋行って見てみます。
ActionFormにはStringかbooleanかそれらの配列ぐらいしか定義しないと思うんだが。
formbeanをPOJOにして、プロパティエディタ自作するってのじゃうまくいかない?
474 :
466 :2007/11/09(金) 02:51:27
>>472 いまやっている入力画面は(例ですが)、名前と年齢の欄があり、遷移元でDBからselectしてきてListにし、
ActionFormにセットし、jsp側で↓みたいに入力させています。
<logic:iterate id="person" name="MyForm" property="personList">
<tr>
<td><html:text name="person" property="name" indexed="true"/></td>
<td><html:text name="person" property="age" indexed="true"/></td>
</tr>
</logic:iterate>
なので ActionForm には Listのsetter/getter ぐらいしかないのですが、
これだと Struts が getPerson(int index) で Person オブジェクトをとってきて Person#setAge(Integer) する。
なるべく POJO を変更しないまま ActionForm にもってきたけど、
POJO のフィールドを Integerから変えない場合は、
ActionForm に age 等の setter/getter を用意して POJO へのラッパメソッドみたいにし、
このメソッドの中で String から Integer に変換するとか。
でも setter() のなかで NumberFormatException がでてしまうから、
ActionForm → Action に移るまでの間は、POJO は String型で保持するしかないのか・・・
(1)DB → ビジネスオブジェクト → Action の間でやり取りするPOJO(エンティティ)は、Struts の制約から離れられるけど、
(2)Action → ActionForm でやりとりするPOJOは、String ぐらいしか使えない。
エンティティ(DTO)は、(1)用と(2)用で2種類作らなければいけないってこと?
それとも Struts を使った時点で、エンティティはなんでもかんでも String と boolean ぐらいで保持すべきってこと?
>>473 さんが言っているのは、ここら辺の話ですよね。
http://hidek.jugem.cc/?eid=110
俺はFormは全部Stringにして、validatorメソッドでチェックしてる Javascriptのチェックだけじゃ意味無いし
strutsの重大な欠陥の一つ。 普通に考えりゃ、conversionよりvalidationが先だし、 実際に殆どのフレームワークがそうなってる。
ほとんどってどれ? JSFはそうじゃないよ。 入力値に対する変換とドメインオブジェクトに対する変換とじゃ意味が違うのを理解してね
478 :
466 :2007/11/09(金) 10:58:34
なるほど、どうもありがとうございます。 昨今 Struts に否定的な意見をよく聞きますが、 自分は5年前にStrutsを触っていたものの、それ以降は一次請けが作った独自フレームワークばかりだったので あまりぴんとこなかったが、たしかにそういう意見もわかってきた。 Struts はいまいちアジャイルじゃないし、アプリ(業務要件)の本質じゃないところでハマる気がします。 (私のスキルがないだけだと思いますが)
そうそう。本来は本質の部分に手間をかけたいところなんだが、 Strutsだとちょっと完成度が低くて本質以外の部分に手間をとられすぎてしまう。
481 :
デフォルトの名無しさん :2007/11/11(日) 18:08:52
struts2でアップロードした画像や動画を圧縮しつつ保存するといった事は 可能ですか?
482 :
デフォルトの名無しさん :2007/11/11(日) 19:35:09
失礼、この質問は忘れて
そもそもインフラストラクチャだから、本質(ビジネスロジック)寄りに作ってないんじゃないの。 そうじゃなきゃここまで浸透しなかっただろうね。 大手ベンダーのフレームワークは、Strutsがベースで使われてて、 その上に○○標準とか、業務的な部分をラップしてあるのを見るね。
混じりけなしの一般解'(フレームワーク)を求めれば求めるほど、 特殊解(アプリケーション)に落とし込むための手数がかかるようになるのは当たり前 完成度とはまた別の話だと思うが
フレームワークのためのフレームワークというのは、 Avalon とか Turbin じゃないかな?(よく知らないけど) Struts はどちらかというと理論より実践を目指したものだと思うが、 今日 POHP 指向のフレームワークなどが出てきて、 Struts はめんどくさいというか便利ではないという感覚は否めない。 ただ doGet() と doPost() しかなかった時代に Struts が出てきた意義は大きいと思うし、 今でもたまに使うし、自分では Struts なんか作れないので、否定するつもりはない。
別に、めんどくささを解消するためのものじゃないし Strutsは、独立して存在するモデルだとかビューの部品をつなぎ合わせるためだけの存在 つまり、めんどくさいかどうかは単に既存のコンポーネントがいくつ利用できるか、だけに依存する 更に、そこを起点として ・Strutsが、その上に乗っかるコンポーネントに対して十分に侵略的でないと言えるのか? ・そもそもフレームワークを差し替えるニーズなんてないのだから、コンポーネントに対して 侵略的であってもよいからもっと便利に使える方がいいのではないか? などのアンチテーゼが発生し、Struts以降のフレームワーク登場に至る
ひとつ、サーバOSのバージョンアップに強い ふたつ、1.x系を使い続ける限り、根幹部分の変化が少ないので、ノウハウが溜まる (慣れた頃には別のアーキテクチャを覚えなきゃ・・・、がない) 慣れに勝る便利さなし
慣れだけじゃなく、自前のカスタムタグなんかも 溜まってるし。 でも、Struts飽きた。
で、struts作ったクレッグは今なにやってんだ?
strutsを上司に説明することになって、 実際にstruts使ってるwebアプリケーションの事例を 紹介しないといけないんだけど、どこかご存知ないでしょうか?
JALとか、イートレード証券のモバイルサイトとか
テレビ王国とか
>>492 ありがとうございます。
他のスレも見てたら少しあったので追加。
JAL、ANA、三井住友のオンラインバンキング、イートレード証券のモバイルサイト
クラス名がまんま分かってしまうURLが多いですね・・・
もう少しだけ、事例ありましたら教えていただきたいです。
>>493 ありがとうございます。リロードしてませんでした・・・
テレビ王国はStruts2なんですね。勉強になります。。
496 :
デフォルトの名無しさん :2007/11/19(月) 02:01:37
struts2つかって、<s:textfield ... />とか書くと、 生成されたHTMLが<tr></tr>で囲まれるんだけど、 囲んでほしくないときは、 どうすればいいの??
<bean:write>で文字列を出力しているのですが、改行コードを除去して 表示することは可能でしょうか?
496ですが、自己解決しました。 コンフィグファイルでsimpleを設定したら、でなくなりました。
>>497 jakartaのString taglib使うといいぜ
Strutsマンドクセ
501 :
デフォルトの名無しさん :2007/11/23(金) 00:12:42
502 :
デフォルトの名無しさん :2007/11/23(金) 00:43:35
SEマンドクセ
SE=SexEngineerだったら・・・
Sexマンドクセ
Struts2てマンドクセじゃないの?
どんなもの使っても、変なタグ呪縛から逃れることはできない。 逆に考えると、 変なタグ使うくらいなら、 ぱっと見、何してるか分かりやすいコードをJSPに書いた方がいい。 デザイナーの事なんて、シラネ。
WicketやMayaaなら、タグ呪縛はないよ
Teedaも忘れないでください
<logic:equal> って or の比較はできないのでしょうか? java における、以下のようなことをやりたいです。 int flag = myBean.getFlag(); if (flag == 1 || flag == 3) { // 処理A } else { // 処理B } <logic:equal name="myBean" property="flag" value="1,3"> //処理A </logic.equal> <logic:notEqual name="myBean" property="flag" value="1,3"> //処理B </logic:notEqual> みたいなかんじで。
A+B=!A*!B
普通はフラグの値を見てタグのほうで判断するんじゃなくて、 判断した値(true,false)を返してやるよな。
514 :
510 :2007/11/30(金) 11:27:55
レスどうもありがとうございます。
やはりないですよね。
>>513 MyBean に以下のようなメソッドを持たせて、
public boolean isOK() {
if (flag ==1 || flag == 3) {
return true;
} else {
return false;
}
}
JSP では
<logic:equal name="myBean" property="OK" value="true">
//処理A
</logic.equal>
という感じかな。
isXXX() メソッドって jsp から setter / getter と同じように JSP から認識されたっけ?
JSTLのc:ifならできんじゃないの? JSPに書くことかなって気がするけど
>>514 普通に認識されるので無問題。
>>515 たぶん使えると思うが使ったことがない。
<c:if test="${myBean.flag == 1 || myBean.flag == 3}">
って感じ?
そういえば、StrutsのTaglibで変数同士の比較ってできたっけ?
517 :
510 :2007/12/03(月) 13:43:22
>>510 >
>>514 > 普通に認識されるので無問題。
ぐぐってみて、isXXX() も認識されるようなページが結構あったので
そう思っていたのですが、サンプルを書いてみるとうまく認識されませんでした。
書いた JavaBean:
package sample;
import java.io.Serializable;
public class HogeBean implements Serializable {
private boolean flag = true; // フィールド
public void setFlag(boolean flag) {
this.flag = flag;
}
public boolean isFlag() {
return flag;
}
}
jsp側:
<jsp:useBean id="hoge" class="sample.HogeBean"/>
<jsp:getProperty name="hoge" property="flag"/>
これで jsp にアクセスすると、以下のようなエラーがブラウザに表示されます。
java.lang.NoSuchMethodError: sample.HogeBean.getFlag()Z
org.apache.jsp.index_jsp._jspx_meth_html_html_0(index_jsp.java:126)
org.apache.jsp.index_jsp._jspService(index_jsp.java:63)
〜
getFlag() を探しに行っているようなのですが、isFlag() を認識されるように
するにはどうしたらいいでしょうか?
jsp を修正せずに、Sample.java で getFlag() に変えるとうまく動きます。
jdk1.5.0_13 / Tomcat 5.5.20 / Windows XP です。
>>517 たとえば、<bean:write>とかだとどうでしょ?
519 :
困っています :2007/12/08(土) 18:25:39
こんにちは。 現在STRUTSでWEBアプリを作っています。 たとえば1.5や2.2などの少数点がつくものを bigDecimalがたの」formに格納すると15や22に なってしまいます。 STRINGにしたらいいにたいですが、それだとまた後から 型変換しなくてはいけません。 何かいい方法ヲご存知野方がいらっしゃいましたら 教えてください、、お願いします。
Stringにして後から型変換する
String<->BigDecimalで変換や検査を行うクラスを作って、 それをFormのフィールドで持つと良いよ。
522 :
デフォルトの名無しさん :2007/12/09(日) 22:21:45
3点程教えて下さい。 1)ひとつのプロジェクト(war)内にStruts(ActionServlet)と 普通のサーブレットを混在させることは設計上あまり 宜しくないことでしょうか? 2)その場合、Strutsのアクションクラスから呼び出される ビジネスロジッククラスをサーブレットから呼び出すことは 設計上あまり宜しくないことでしょうか? 3)ビューの無いアクション(ファイルのダウンロード等)は 設計上有りでしょうか?(サーブレットにすべき?)
1) 特に問題ないと思う。 ファイルダウンロードとか、ビューをJSP以外で実現する場合とか。 2) 特に問題ないと思う。 同じビジネスロジックを、StrutsのアクションとWebサービスの両方から呼び出すとか。 3) 特に問題ないと思う。 でも、ダウンロード用のサーブレットにフォワードするほうが見通しが良くなる気はする。
>>523 ありがとうございます。
参考にさせていただきます。
Struts2本だれか書けよ、読んでやるから。
526 :
デフォルトの名無しさん :2007/12/25(火) 23:10:08
情報少なすぎだよな>struts2
StrutsとJSFて、開発者同じ人?
ところで、Shaleって普及すると思う?
しないと思う。
530 :
デフォルトの名無しさん :2008/01/04(金) 11:55:27
ShaleとStruts2とXWorksって違うの?
531 :
デフォルトの名無しさん :2008/01/06(日) 00:42:19
532 :
デフォルトの名無しさん :2008/01/06(日) 00:43:02
次期Strutsの呼び声が高く注目を浴びていた Shale しかし、Struts2 として採用されたのは WebWork2 その WebWork2で内部的に使用されているコマンドパターンフレームワークが XWork でおk?
533 :
デフォルトの名無しさん :2008/01/06(日) 00:44:52
imgのsrcにそのURLを書けばいいべさ
534 :
デフォルトの名無しさん :2008/01/06(日) 00:48:18
>533 ありがとうございます。そんな簡単でいいんですね。 やってみます。
Struts2の情報が少ないて、あったけど 〜大全に、ちょっとStruts2のセクションがあったよ。 買ってないから、どんだけ詳しく解説されてるか、知らないけど。
>>535 デジカメで撮って uぷ するか、全部コピペしてくれ
537 :
デフォルトの名無しさん :2008/01/11(金) 23:49:25
Struts2の情報くれくれ
538 :
デフォルトの名無しさん :2008/01/12(土) 01:51:17
Struts以外のフレームワークを知らない人がStruts2をさわってみた感想。 すべてのリクエストにフィルターをかまして、ActionをPojoで生成。 インターセプターでActionに値をinjectionするって考えがすごいと思った。 これがコマンドパターンっていうの? 他のフレームワークでもこんなことしてるのあるの? struts2のタグでAjax(dojo)をサポートしてるけど、 なんでjsファイルを配置してないのにできるの?って不思議だったが フィルターでjarファイル内の静的リソース(js、画像)を返してた! これならjarファイルだけでいろいろできる! すべてのリクエストがフィルターを通る分、ややもっさりしてるけど そのへんはハードのがんばりで問題ない気がする。。
539 :
デフォルトの名無しさん :2008/01/12(土) 17:46:54
>>538 でStruts1と比べて、Struts2はどうなの?
結局のとこ、 使える奴が、ほとんどいない。 て事なんじゃないの?
オンラインの日本語struts2書籍ってあるじゃん、あれってどう?
542 :
デフォルトの名無しさん :2008/01/17(木) 23:01:46
struts2でstruts.xmlにアクションを記述するけど、 そこにHttpヘッダーを定義する方法教えてください。 Pragma:: no-cache とかをやりたい。 今のところアクションクラスでresponseにsetHeaderしてます。 struts.xmlに簡単に記述する方法あるのですか?
543 :
デフォルトの名無しさん :2008/01/17(木) 23:31:26
>>542 Interceptor書けばいいと思うよ
探したけど標準ではそういうのは無いみたいだね。
544 :
デフォルトの名無しさん :2008/01/18(金) 01:30:25
>>543 ありがとう。初心者なのでInterceptorってどうやればいいかわかりませんでした。
struts.propertiesのstruts.serve.static.browserCacheってのをみつけたけど、
これを設定をしたら解決するのでしょうか?
545 :
デフォルトの名無しさん :2008/01/18(金) 22:18:58
>>544 それが効くのは静的コンテンツのキャッシュだけみたいね
546 :
匿名希望 :2008/01/22(火) 11:38:33
Struts1.3.8を使っています。 FormFileのgetFileSize()でアップロードされたファイルのサイズを取得 しているのですが3メガくらい以上のファイルだと 0が返ってきます。 小さいファイルだと問題なくサイズが取得できます。 どういったところを調べてみればよいでしょうか?
httpd.conf
548 :
546 :2008/01/22(火) 13:11:05
すみません。 getFileSize()の前にdestroy()してました。
ちょw
スレ盛り上げようと、気使いすぎ。
551 :
デフォルトの名無しさん :2008/01/23(水) 13:13:15
フレームの中からバリデートを実行してhtml:errosで表示する方法を教えて下さい
struts2+spring2.5+hibernateを使って開発した 生産性が高いから少数精鋭でやってける 高いスキルと英語力が必須条件だけどね javaの開発者は、これからは淘汰されてくんじゃねーの? インド人がより有利になってく気がする
struts+spring+hibernateの組み合わせは数年前からあるが 現在淘汰されたのだろうか。
>>553 struts2とstruts1.xは別物
>>553 spring、hibernateが必要なシステムも少ないでしょ。
逆にコストがかさむだけ。
>>554 だから「淘汰されたのだろうか」じゃねーの?
>>556 提供機能が多いほど設定記述が多く発生する。
どんな設定記述が? で、設定でできなければ、コード書かないといけないんじゃないの?
559 :
552 :2008/01/28(月) 22:53:41
struts2の設定はstruts.xmlだけ springの設定はApplicationContext.xmlだけ hibernateはモデルクラスのanotation そんなに面倒では無いよ この組合せの良い所はあらゆるエンタープライズ向けアプリケーションに対応できること バッチ処理もどきやsoaにも対応可能、その内spring batchが出るそうだけどね DBアクセスはジェネリックを使ったクラスを作ったら半分位はそれで用足りた。 勿論、単純なテーブルアクセスしかできないけどね spring securityも良い感じ、使いこなせばかなり楽できる struts2はcoolで楽チン、もうstruts1.xは過去の遺物(ガラクタ)だよ
>559 ほかのFWはなにを使ったことありますか? なぜその組み合わせが良いのか説明してもらえんかな? S2は設定ファイル無しですが?
> DBアクセスはジェネリックを使ったクラスを作ったら半分位はそれで用足りた。 こういう物言いをする人に何言っても無駄。
562 :
552 :2008/01/29(火) 02:08:07
ジェネリック医薬品でばっちりキメてるんじゃね?
565 :
552 :2008/01/29(火) 02:11:21
>>561 実は、開発スピード重視の苦渋の選択でした
ホントはiBatisとかでノンビリ作り込みたかった
566 :
552 :2008/01/29(火) 02:19:45
盛り上がってきましたw まあ、ただ単にstruts2は良いよ、ってことが言いたいだけだよ ただstruts2単体で使うってケースは考え難く 複数のフレームワークは組み合わせて使うのがベターかなって
>552が一人で盛り上がってるだけじゃん Struts2の何がいいか具体的に言ってくれ。 ぜんぜん伝わらない。 他のFWのことあんまり知らなさそう。
Struts 1.x はもううんざりだが、Struts2 は、web の記事しか読んでないけど(自分で試してないけど)
気になっている。別に
>>560 みたいに煽るつもりは全然ない。
だから
>>552 には思ったことをもっと書いてほしい。正しいかどうかは関係ない。
どれが Best Practice かどうかは興味があるが、プロジェクトによって状況が違うから一概には言えないし、むしろ
・どういう理由で Best Practice と思ったか
・どういう理由でクソだと思ったか
という意見が重要。
ただ
>>568 のように、「何がいいか」(どういう理由か)を書いてくれないと、こちらには伝わらない。
湾岸ミッドナイトでも言ってるだろ。
結果を求めるな。
結果だけを知ろうとするな。
なぜその結果が正しいかなのではなく、どういうプロセスでその結果にたどり着いたのか。
# 自分で試す前に人の意見を聞きたがるオレも、あまりえらそうなこと言えないけどw
570 :
552 :2008/01/29(火) 23:45:09
struts2 + spring2.5 + hibernate or iBatis のフレームワークの組合せは、 企業向けシステムのあらゆるパターンに対応可能 単なるWeb applicationだけじゃ無くて、メインフレーム・マイグレーションさえ可能だと思う とは云え、そんな重量級システムだけじゃ無く、手軽な短期開発にも対応可能なのが良いとこさ 間違いなくデファクトになるよ struts1.xとstruts2の違いは、自転車とオートバイくらい違う じっくり時間をかけながら汗をかきたい人はstruts1.x さっーっと楽したい人はstruts2を使うと良いでしょう ネチネチ時間をかけながらSQLにビジネスロジックを実装させたい人はiBatis 多少パフォーマンスが悪くてもサクサク開発したい人はhibernateって感じでしょ ケースに応じて選べば良いんじゃな〜い
空気読めないかなぁ・・・
自転車とオートバイ
Teeda + seasar2 + S2JDBC or S2Dao のフレームワークの組合せは、 企業向けシステムのあらゆるパターンに対応可能 単なるWeb applicationだけじゃ無くて、メインフレーム・マイグレーションさえ可能だと思う とは云え、そんな重量級システムだけじゃ無く、手軽な短期開発にも対応可能なのが良いとこさ 間違いなくデファクトになるよ struts1.xとTeedaの違いは、自転車とオートバイくらい違う じっくり時間をかけながら汗をかきたい人はstruts1.x さっーっと楽したい人はTeedaを使うと良いでしょう ネチネチ時間をかけながらSQLにビジネスロジックを実装させたい人はS2Dao 多少パフォーマンスが悪くてもサクサク開発したい人はS2JDBCって感じでしょ ケースに応じて選べば良いんじゃな〜い 正直なんも違和感を感じない。 結局なんでもいいじゃん。ってことに。 ま、Seasarは良いけど。明らかにSSHよりは開発速度は速いよね。552は世間知らず。
せんせーSturts2のどこが良いんですか? ほかに比較したFWはなにがありますか? どう違いますか? Seasar教の自分から見たらStruts+Spring+Hibernateなんて超めんどくさいんですが〜
結局Struts2の何が良いのかわからないままか・・・
>>573 TeedaとS2JDBCは相性悪いって本人が言ってるよね。
Seasarって、沖縄人の使ってるローカル・ツールでしょ?
>575 ソースは?
激しくすれ違いなので申し訳ない。 >575 S2Dxoを使わなければそうかもしれんが、使えば差は無いと思うが。
Seasar派はspringに勝ってると勘違いしてんだろーな...
釣られてみるか・・・ SSH対Teeda+S2JDBC or S2DaoなのにSeaser対Springにしちゃうあたり理解して使ってないんじゃない?
582 :
デフォルトの名無しさん :2008/01/31(木) 20:28:57
ダイナバリデータフォームのリセットメソッドの呼び出し方を教えて下さい
583 :
デフォルトの名無しさん :2008/01/31(木) 20:31:43
ダイナバリデータのリセットメソッドの呼び出し方を教えて下さい
>>581 たぶんspring派が勝手に勝ったと勘違いしてるんだよ。
勝ち負けつけようなんてことが馬鹿馬鹿しい。
どれも.netにはかなわない
586 :
デフォルトの名無しさん :2008/02/01(金) 23:48:24
おー 新説登場 kwsk
>>585 低レベルの開発要員しか集められない場合は、最高の選択肢かもな
.Net(C#)って、扱うのはそれなりに難しいと思うぞ。 C#の言語仕様も、Java よりも優れているという意見もいっぱいある(詳細はム板の言語関係のスレで。ここでは省く) VB を「低レベル開発要員」と位置づけるなら、Struts もその位置にだんだん当てはまってきていると思うけど。 あと、Spring.NET、Hibernate.NET、iBatis.NET なんてのもあるし。 豆○の中の人とこの前はなしていたが、いまは .NET での案件が Java と同じくらいあるんだって。
中規模以下案件は.NETでも充分でしょ
どれくらいから大規模?
>C#の言語仕様も、Java よりも優れているという意見 そりゃ、後発で先駆者のいいトコ取りしてるんだから当たり前って言えば当たり前なのだが、 どーも仕事でWin鯖の不安定っぷりを見せ付けられると微妙なんだよな。
どのへんが不安定?
不安定はWin鯖のせいなの?
595 :
592 :2008/02/03(日) 00:08:38
安定度の比較対象として同部署で管理しているiSeriesと言う鯖があるが、 これに比べればネットワークは不安定だわ、負荷が高い時のレスポンスやらな・・・。 購入時の価格がちがうので比較は無意味なんだろうけど、 障害発生時の対応・対策を見ていると「安物買いの銭失い」と言う印象が強いので。
iSeriesと比べちゃうの?w
ちょw
いや、この間Win鯖の障害に繰り出されサ。 なんつーか、エラーハンドリングというかモニター機能の貧弱さになけてきたり、 自己診断機能のいい加減サに辟易したり、対応策に「とりあえずリブート汁」とかサ・・・。 タスクマネージャーを目視して「ここが○○になったらこのウインドウのココをメモして」とか ずいぶんと前時代な対応させられたりしてサ。 で後日の対策会議とかでエロい人が5・6人あつまってあーだこーだと。 なんじゃコリャと思いましたです。 おそらくはWin鯖でも本当は自動化とか柔軟な運用・保守・管理が出来る様な気がするし、 扱う人間のレベルによって安定度も変わってくるんだろうけど、 今はITドカタな時代で優秀なエンジニア少ないんだから、せめて機械はiSeriesみたいな 「ヴァカが扱ってもなかなか壊れない鯖」とか買ってくれとおもうのよ。w
まあ、俺が作ったアプリケーションならWin鯖でも 超安定だぜ。5年くらい余裕でノンストップだ。
Windowsが不安定と言われるのは、無駄にサーバに接触できる環境が多いからじゃないかな 以前リモート・デスクトップで繋いだら、始めてブルースクリーンに遭遇したよ・・・
>>598 それはなんちゃって一応はiSeriesメインのエンジニアのお前がWMI知らないだけで馬鹿
>>598 iSeriesは特定のモデルでコンデンサあぽん続出ですよ
不安定なのはOSのせいじゃなくてハードのせいだから
Win鯖は不特定モデルでまんべんなく不安定だろ。w ただ、引き合いにiSeries出すのは卑怯だ罠。 今は絶滅したジャンル(?)で唯一のオフコン機だし。 しかしiSeriesとタメはれる安定性のWin鯖のハードってあんの? あるなら会社の基幹業務からiSeriesは消えてなくなっているはずだが。
ES7000とかはどう? 地元の地銀では使っているよ。
うちにもiSeriesが4台あるんだけど(同じモデルじゃなくてピンキリで色々) NIC不良とかCPU不良とか4台ともハード的に不具合出てるぞw
おいおまえら激しくすれ違い
607 :
デフォルトの名無しさん :2008/02/10(日) 23:29:42
保守age
struts2でおすすめの書籍ありますか?
オヌヌメサイトも
struts2でstruts.xmlを使わずにアノテーションだけでInterceptorって実現できるもんですかね? 会員サイトでログインチェックをすべてのメソッドに書くのは格好悪いし、 かといってstruts.xmlには何も書かない方針だし、どうしたらいいんでしょうか。
Filter
>>612 thx!
でも具体的にどういう実装するのがいいのかわからんorz
javax.servlet.Filterの具体クラスをweb.xmlに登録すればいい。 doFilterのServletRequestをHttpServletRequestを取得、 request.getSession(false)でHttpSessionを取得、後はお好きにどうぞ。 ログインといえば、JAAS使ってる人ってどのくらいいるんだろう。 次の案件で長いお付き合いになるパッケージ製品作るから採用するけど。
>>614 こんなフィルタ作ってみたんだけどダサいかな?突っ込みキボンヌ。エロイ人。
public class SessionFilter extends FilterDispatcher {
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest) req;
String userId = (String) httpReq.getSession().getAttribute("userId");
if (StringUtils.isEmpty(userId)) {
if (!httpReq.getServletPath().equals("/login.action")
&& !httpReq.getServletPath().equals("/login!input.action")) {
((HttpServletResponse) res).sendRedirect("login!input.action");
return;
}
}
super.doFilter(req, res, chain);
}
}
616 :
デフォルトの名無しさん :2008/02/14(木) 22:33:58
>>614 Acegi security 使えばどうよ
今はspring security だけどさ
>>615 大体そんな感じでいいと思うけど、セッション乗っ取り攻撃には気をつけなされ。
>>616 貴重な情報 thx、調べてみるよん。
>>615 さすがにlogin.actionだけを文字列チェックして回避ってのはダサくね?
ビジター画面増えたら困るし。まあそこは設定ファイルに外だしするとしてもだ。
今思いついただけなんだけど、jspへの遷移をアノテーション等で実現する場合、
struts.xmlにはビジターとメンバーのpackageだけ記述しておいて、各Actionクラスでは
@ParentPackageで所属するパッケージを指定する。
メンバーパッケージではセッションチェックのインターセプターを定義する。
っていうのがstruts2流なんじゃないかな。
うちがやった時はそこまで頭まわらなかったので、こんな感じにしてたけど
BaseAction ..... getRequest()とか実装しとく
|
+-------------+
LoginAction BaseMeberAction ... セッションチェック
|
+----+-----+
MenuAction ... ...
でもってインターセプターの定義は呼び出される順序とか大事だから、 struts.xmlにはインターセプターの定義がずらずらと並んで Zero-configからはどんどん離れていくと。 ヤレヤレだぜ
>>619 >ビジター画面増えたら困るし。まあそこは設定ファイルに外だしするとしてもだ。
具体的にどうやって実現するのがベターかね?
>>620 extendすれば多少は抑えられるかと。
完全なゼロコンフィグはむりぽいけど。
>>621 俺はweb.xmlにごちゃごちゃ書くのが嫌いなので
別途設定ファイルを用意して
<root>
<action>
<visitor>login.action</visitor>
<visitor>login!input.action</visitor>
</action>
</root>
こうなってるのを読み込む方がソースに直書きよりははるかにいいと思う。
xml読み込むライブラリとかは普段使ってる奴があるでしょ。
web.xmlに書くなら長くなっちゃうから、カンマ区切りで並べて書いちゃうかも。
で拾ってきてsplit(",")する。
packageそのものはextendできるけど、インターセプターの一部だけ拡張って
どうやるの?インターセプターは順序が大事だから、パッケージで一個でも
独自にするなら定義全部書かないといけないと思ってた。
623 :
デフォルトの名無しさん :2008/02/19(火) 07:06:01
struts.xml書かないでアノテーション使う奴理解できねえ 画面遷移定義が偏在化して管理が大変そう
624 :
デフォルトの名無しさん :2008/02/19(火) 08:19:26
>>623 俺もそう思う、画面遷移を定義ファイルに集中化して見通しをよくしたはずじゃなかったのかよ?
又ソースに埋め込んでどうするつもりだ?
ゼロコンフィグ 魅力なし
で、次は一つのファイルが肥大化するとか、 プロジェクトメンバー全員で一つのファイルをメンテウザスとか Struts1.xの頃の不満を繰り返す・・・ おまいら学習能力まるで無しだなw
画面遷移の定義ってあまりころころ変わるものじゃないから 集中管理してもメリット少ないよね。
>>622 <interceptors>
<!-- LoginInterceptorを定義 -->
<interceptor name="login"
class="example.interceptor.LoginInterceptor" />
<!-- LoginInterceptorとStruts標準のdefaultStackを足し合わせた新しい「defaultLoginStack」を定義 -->
<interceptor-stack name="defaultLoginStack">
<interceptor-ref name="login" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
>>625 それなら分割すれば済む話だろ。いったいいつの話をしているんだ?
>>628 そういう意味じゃなくてXMLに集中させるメリット少ないなって意味。
一度XMLに書いてそれっきり変えないようなものはソースに書いてもいいんじゃねーのと。
開発中や運用中に頻繁に変えるならXMLでもいいと思うけど。
画面遷移ってそんなに頻繁に変更するか?
変更の度合いよりも、 どうせプログラムも変更しなきゃ動かなくなるんだから XMLあるだけジャマじゃね ってことじゃないのか。
>>629 何を言ってるんだ??
この画面のシステムをメンテしているときに、別の画面に切り替えておくとか、
運用の切り替えはファイルの方が圧倒的に有利だろ
運用状態を切り替えるのに、いちいちコンパイルするのかよ
strutsってホットデプロイできるの?
レス読んで日本語が難しいって事がわかったw まぁうちは今のレベルの人員(運用も含め)じゃ集中管理の方がメリット高いな
>>627 interceptor-refにはインターセプター単体でもスタックでも指定できるのね。
なるほど。デフォルトのparamとvalidatorの間に入れたい、みたいな場合も
全部書かないでいけるの?
>>629 一度きりで変更しないならxmlでもアノテーションでもどっちでもいいと思うけど。
むしろ変更があるからこそ、作業対象が分散しないようにアノテーションがいい。
>>631 運用状態を切り替えるのにstruts.xml修正して再起動するの?
tomcat自体は立ち上げておく必要があるのなら
管理画面から動的に切り替えられるようにしとかないと怖くない?
webサーバーの台数増えたらめんどいし。
再起動する必要ないよ tomcatは知らないけど、WebLogicはアプリケーションごとにデプロイできる まぁこれとは別にHTTPサーバがあったりすると、切り替え中はそっちで抑止かけるなりすればいいし
>>636 tomcatもホットデプロイはできるけど
static領域とか初期化し直しになるじゃん。
初期化するからstruts.xmlも再読込されるんだけど。
classに変更があるとセッションも保持されないし。
アプリの再起動って意味で書いたんだけど。
ユーザーからのアクセスがほとんど無い時間帯がある
システムならそれでもいいけど
WARでデプロイしてるなら コンパイルし直すのもWAR作り直すのも手間は変わらないんじゃないか?
>>636 新人君よ。アプリケーションサーバを複数台用意して1台づつ止めてデプロイしなおすということもあるんだよ。
tomcatもweblogicもホットデプロイというより、自動デプロイという表現の方がええと思うぞ
640 :
デフォルトの名無しさん :2008/02/20(水) 03:47:38
ダイナミックなモジュールのロード・アンロードでSpring OSGi に期待してるんだけど、SpringDMってそういうもんだよね?
>>639 複数台あっても、抑止かけるんだから結局同じことなんじゃ?
>641 かけません。 最低1台稼動させたまま入れ替えます。
>>642 うん、それそれ
例えば10台あって、2台ごとにグルーピングされているとして、
Aグループを停止している間、グループB・C・D・Eが起動していて、Aグループへのアクセスは抑止しておく
うちは、これをアプリケーション(業務処理)単位でやってるリリースパターンがあるんだけど、
はて、実際どうやってんだろ
この2台の組がなんちゃってデュアル構成なんだけど、これをうまくどうにかして、どうにかしちゃってるんだろうか
定義ファイルだろうがアノテーションだろうが関係無い話だな。
アノテーションだとコンパイルしなきゃいけないじゃない リリース中はこの画面に遷移するように、って一時的な変更をコンパイルでやってたら、永遠に終わらなくない? Aグループに属するαサーバとβサーバを、それぞれ交代でアップデートするときに、 βへのアクセスを抑止させて、定義ファイルを更新して、 次にαを抑止させて、βを解放して、その間αをアップデートさせて、αを通常運転に戻して、βをアップデートして、 βも通常運転に戻す・・・だったかな?よく覚えてないけど、そんな感じ ってのを、コンパイルでやろうとすると βへのアクセスを抑止させて、コンパイルして、デプロイして、・・・あ、出来なくもないね ただ、ソースをいちいちいじらないといけないから、混乱しそうだわな リリース用に、遷移ロジックのあるソースをいじる、うーん、ないな やっぱリリース運用はファイル中心だなぁ
warでデプロイするならeclipse上で設定ファイル書き換えてwar固めてデプロイでも アノテーション書き換えてwar固めてデプロイでも変わらない。 あと通常モードと停止モードの二つのモジュールを事前に用意しておくのが 当然だと思う。別にβへのアクセスを止めてからコンパイルする必要なんてない。 つーかコンテナの話はもういいからstrutsの話しようぜ
こういうコンテナの話ってどこですればいいんだろう? 昔は 「JAVA+JSP+Strugs+Tomcat」スレなんてものがあったが、 JavaServlet全般とか Servletコンテナ全般のスレがほしい。
649 :
647 :2008/02/22(金) 03:43:27
>>648 どうもありがとう、巡回先に入れました。
でもあまりにぎわってないな・・・・・
話題提供するようにします
ActionFormにArrayListがありその中にArrayListがあるような 構造のデータを受け取るようにするにはどうしたらいいでしょうか?
651 :
デフォルトの名無しさん :2008/03/02(日) 18:34:24
ArrayListをListDataModelにsetRowIndexすればdataTableタグで受け取れる
652 :
☆Visual C++ Runtime Libraryってエラーが出てネットゲーム強制終了 :2008/03/02(日) 20:03:10
スレ違い
教えてほしいのですが、 WebLogic Workshopを使わずに、EclipseでWeblogicとStrutsの連携をどうすれば良いですか? Weblogicは9.2です。
655 :
デフォルトの名無しさん :2008/03/08(土) 19:57:23
656 :
デフォルトの名無しさん :2008/03/11(火) 03:40:54
質問なのですがstruts-config.xmlのactionのforwardエレメントに プレースホルダーとかって使えないんですかね? <forward name="success" path="/${0}/test.html"/> こんな事がしたいんですが知っていたらご教授お願いします。 環境はstruts1.3です
知らないけど、ForwardingActionForward使っておけば?
658 :
デフォルトの名無しさん :2008/03/20(木) 20:39:15
最近Strutsを触り始めたんですが、ちょっとつまづいたので教えてください 画面Aと画面Bがあって各々ActionFormが違う場合 AからBに遷移するActionのなかで ActionFormBをnewしてActionFormAの値をコピーしています。 ソースだとこんな感じ。 ActionFormA a = (ActionFormA) form; ActionFormB b = new ActionFormB(); aからbにコピー form = b; こうやっても画面BでActionFormBの値がとれないのどすが、何が間違ってるのでしょうか? そもそも遷移前と遷移後でフォームが違う場合どうするのがよいのでしょうか?
659 :
デフォルトの名無しさん :2008/03/23(日) 02:29:49
同じクラスのフォームビーン使うようにすればいいんじゃない?
bがrequestにもsessionにもいないんでしょ。
JavaAppletとStruts2のアクション間で非同期通信したいんだけど、 フレームワーク内部でInputStreamが読まれており、アクションで取得できません。 なんかいい方法ない?
662 :
デフォルトの名無しさん :2008/03/24(月) 20:52:21
これまた理解力を発揮しがいのある質問文ですねage
文字列化してリクエストパラメータの一つに してしまえば良いんじゃね?
664 :
デフォルトの名無しさん :2008/03/25(火) 04:41:48
Appletはyesterdayの技術だけど、セキュリティ絡みでAppletに逃げる奴多いな
FlexとかSilverlightには逃げないのですか?
既存スキルを生かせるのは強いよな。 あとシリアライズしてオブジェクトの受け渡しができるってのも強みか。
Java Web Startでええやん
シュワシュワワワシュワワシュワ?
Struts2で、struts.xmlの一部をこんな感じ可変にできますか? <result name="success">/○○.jsp(login.jsp等)</result> 可能であれば、どうやって値をセットすれば良いかご教授ください。
<result name="success">${ '/' + page + '.jsp' }</result> getPageって言うメソッドをアクションに作ってそこで適当な "login" とか返してあげればOKだよ まあ、login とかを処理したいのならアプローチが間違ってるけどね
>>671 ありがとうございます!
確かにloginは処理しないです;
本当に助かりました。明日早速試してみます。
673 :
671 :2008/04/14(月) 23:37:09
いえいえ。 差し支えない範囲でどんな使い方をするのか教えて!
>>671 ,673
うーん、きっとまたアプローチが違うって突っ込まれそうですが・・・
帳票をPDF形式で出力させます。
PDF名が固定だと、複数ユーザが同時に出力しようとした場合に
不具合が起きるんじゃないかな?と考えて、PDF名+時間とかをくっつけて
出力しようとしていました。
そんなことできるの?
676 :
671 :2008/04/15(火) 00:02:23
むむむ。resultのDispatch先の名前はURLに出てこないから関係ないのでは? たしかに突っ込みたいです ^ ^ まあガンバッテ。 ${ } の中に書いてあるのはJSPに書くのと同じOGNLでValueStackも同じだから色々できるよ
677 :
674 :2008/04/15(火) 00:02:34
PDF作成とresult部分は固定でなら実現してます (PDF作成にはbirtを使用) なので、多分出来ると思います。 ただ、このままだとPDFがサーバにわんさか作成されちゃうんですよね。。 タイミングを計って、PDFを削除しなくてはならなくなっちゃいますね。。 ダウンロードではなく、ブラウザにPDF表示させなくちゃいけないので こんな面倒なことやってます。
678 :
674 :2008/04/15(火) 00:05:44
追記で・・・ PDFは、画面の選択条件から動的に作成しています。 突っ込み大歓迎です!もっとスマートなやり方があれば 是非乗り換えたいです!
679 :
671 :2008/04/15(火) 00:17:36
application/pdf のコンテンツタイプのhttpヘッダーでpdf内容そのまま出力すればいいんでないの? 一時ファイルはいらないと思うんだけど。birtも知らないし勘違いだったら失礼。
680 :
674 :2008/04/15(火) 00:27:53
薄々感じてはいましたが、やはり一時ファイルは必要無いのですね・・・ servletを扱うこと自体が初めてで、他に聞ける人もおらず・・・ 勉強不足を痛感しています。。本当にありがとうございます!
681 :
デフォルトの名無しさん :2008/04/15(火) 00:55:57
すいません。Strutsというか、Javaの質問になってしまうかもしれないのですが <input type="text" name="aText" value=""> と書いたHTMLのaTextの値を、StrutsのFormで取得するにはどうすればよいでしょうか? なんか、FormクラスにString aText;と書いておいてgetAText()やっても値が入っていないんです。 <input type="text" name="atext" value="">と書いて、 String atext;と書いてgetAtext()だとOKなんですが・・
よろしくお願いします。 Struts2のインターセプターで、RequestAware、ApplicationAwareというのは どんな時に使えば便利なのでしょうか?
683 :
682 :2008/04/16(水) 19:40:01
すいません、スコープというものを分かっていませんでした。 というか、スコープの説明を見てもピンときません。。
>>683 なるべく使わないようにするのが良いStruts2アプリの一歩
685 :
デフォルトの名無しさん :2008/04/24(木) 14:32:40
struts初心者なのですが、ちょっとつまづいてしまったのでご教授お願いします。 DynaActionFormを使っている際の質問です。 たとえば、struts-configで <form-beans> <form-bean name="formA" type="org.apache.struts.action.DynaActionForm" > <form-property name="a" type="java.lang.String"/> </form-bean> <form-bean name="formB" type="org.apache.struts.action.DynaActionForm" > <form-property name="b" type="java.lang.String"/> </form-bean> </form-beans> <action-mappings> <action name="formA" path="/pathA" scope="request" type="actionA"> <forward name="success" path="/mainA.jsp" /> </action> <action name="formB" path="/pathB" scope="request" type="actionB"> <forward name="success" path="/mainB.jsp" /> </action> </action-mappings> というような場合、actionBクラスでformAを使い、aの値を取れたりするのでしょうか? 色々調べてみたけれどよく分かりませんでした。 もし、方法があるのならご教授ください。
Struts2のプロパティファイルをpropertiesではなく、 XML形式で記述できますか? やり方がわからなかったんですが、できそうな気がするので。。 今は自分でjava.util.PropertiesのloadFromXML使って XMLを読んでますが、もっと簡単にできないものかなと。。
struts.propertiesに入れる項目ならたぶんこうしておけば struts.xmlに入れておける。ただファイルを一つに出来ると言うだけで 階層化できないのであんまり意味無いけどね <struts> <!-- SpringFramework integration --> <constant name="struts.objectFactory" value="spring" /> <constant name="struts.objectFactory.spring.autoWire" value="type" />
688 :
デフォルトの名無しさん :2008/05/13(火) 10:24:17
スレ違いかもしれませんが、よろしくお願いします。 Struts2を使用しています。 submitボタンをクリックすると、javascriptで確認メッセージを出し、 OK→次の画面 キャンセル→処理をキャンセル、画面遷移無し という風に処理させたいのですが <s:form> <s:submit value="追加" action="hoge_add" onclick="return add();" /> <s:submit value="更新" action="hoge_upd" onclick="return upd();" /> <s:submit value="削除" action="hoge_del" onclick="return del();" /> </s:form> javascript function add(){ if(confirm('追加します。よろしいですか?')){ //OK var frm = document.getElementsByName('hoge')[0]; document.frm.submit(); return 0; }else{ //キャンセル return 1; } } このように書いてみたのですが、OK、キャンセルどちらのボタンを押しても 次の画面に飛んでしまいます。。どうすればよいのでしょうか?
689 :
688 :2008/05/13(火) 11:04:20
自己解決しました。お騒がせしました。
>>689 情報量がゼロの書き込みはしなくていいよ。
首くくって死ね。
691 :
デフォルトの名無しさん :2008/05/13(火) 22:40:51
今日の恥ずかしい体験を心に刻め その気持ちが貴方を育ててくれるハズ...
>>690 ところで、おまえのその書き込みは情報量がゼロじゃないのか?
首くくって死ね
>>689 自己解決した場合でもどこが間違っていたのか書いておけば
後々人の役に立つかもよ。
キャンセル時のreturn 1をreturn falseにしたら直ったとか?
694 :
デフォルトの名無しさん :2008/05/17(土) 11:38:05
ひがです。
Seasar2の後継プロジェクトとしてSlimを申請します。
SlimはかつてはSeasar3(?)と呼ばれていたものです。
詳細は、Seasarカンファレンスで発表します。
# 開設プロジェクトに関する情報
プロジェクト名:Slim
一覧に記載する簡単な説明:
"Less Is More"をコンセプトに持つ、フルスタックフレームワーク。
所属するトップレベルプロジェクト名:Sandbox.java
リーダアカウント名: higa
希望サイトアドレス: slim.sandbox.seasar.org
Maven用groupId: org.seasar.slim
よろしくお願いします。
http://ml.seasar.org/archives/operation/2008-March/003758.html
>694 スレ違い
696 :
デフォルトの名無しさん :2008/05/17(土) 13:46:12
strutsをベースに業務フレームワークを作る仕事を担当する かもしれません。オススメな書籍って何かありますか?
今頃そんなことする会社は辞める
>>685 試してないですけど、actionAの中で、formAをセッションコンテクストに登録し、actionBで、セッションコンテキストからformAを取り出せば使えるのでは?
別案として、もしstruts-config.xmlを変更できるならば、actionAのformAのscopeをセッションにしておけば、actionA内でformAをセッションに登録する処理は不要になると思われ。
ちなみに激しく亀レスと、自分で言っておく。
699 :
デフォルトの名無しさん :2008/05/17(土) 15:42:59
Struts2のJSPをサブディレクトリにまとめたいと思っています。 例えば機能AのJSPは、/jsp/a/に、機能Bは/jsp/b/に置きたいのです。 なるべくZeroConfigurationに近づけたいので、 できるだけ記述(XMLやアノテーション)が少ない方法がいいのですが 何かまとめて設定する設定方法は無いのでしょうか?
struts2で<s:textfield...に属性を追加しようとしています。 struts2のTextFieldを派生したクラスを作って、 独自のTextFieldTagから呼び出してaddParameter()を呼び出してるのですが、 生成されたhtmlにこの属性が反映されていません。 デバッガで追って、Component#addParameter()で拡張属性が parameterにputされてるのは確認したんですが、なにがいけないんですかねえ。 ちなみに追加しようとしているのはistlyle等です。 今更ながらstruts2を使ったことを後悔
ftlのテンプレートに書かれていないんじゃないの? てか componentタグでスクラッチから出力した方が面倒なくね?
一応TextFieldの派生はやめてUIBeanの派生でやってみたんだけど 同じ結果だった。Componentからスクラッチだと属性多すぎない? 今ftlをググリ中
全部の属性インプリする必要あるの? ftlは出力テンプレートの拡張子ね 多分 templates/simple/text.ftl
それは見つけたんだけど、 自分で属性を追加したい場合に参考になるURLとかある? とりあえずクラスパスにおいてみたんだけどどうにもならん。 そりゃあ全部の属性は必要ないんだけど、後でcssStyleとか 必要になってから困るのも嫌だし。textfieldかUIBeanの派生にしたい。 というか、s2タグやめたい
よくみんなこんな設定ファイルやアノテーションの海を泳いでいられるな なんかまだスパゲッティコードの方が順番に処理が負えるだけマシな気がしてきた
判っちまえば、こんなパラダイスねーけどな
俺には無理っぽいからComponentから自作することにする。 自作するときはページレンダリングなんて一種類しか使わないし、 ComponentTagSupportとComponentに分かれてるより、 JSTLのdoStartTag()でゴリゴリ書く方が楽じゃね?
708 :
701 :2008/05/20(火) 02:11:40
Componentを拡張して。。って話じゃないよ それなら textfield拡張したほうがいいでしょ 俺のは s:component タグの話ね、念のため
どっちもorg.apache.struts2.components.Componentじゃないの? とりあえずそこから最低限の機能で作って行ってるんだけどmaxlengthとか labelとかやっぱりいろいろ要りそうだなあ。 onXXX系を除いて、ftlを使わない方法で実装し直してる感じ。 すごおおおおおく無駄な気がする。
>>706 パラダイスっていうならftlの追加方法教えてくれよ(泣
>>708 そのtextfieldの拡張の仕方がわからんのでつまづいとるんだわ
そうそう、画面遷移の変更はそんなにないだろうし、 Actionのアノテーションに遷移書くようにすれば ソース変更もそのActionだけにすることが可能で、わざわざ設定ファイルをいじらんでも。。ということだよね。 しかし未だにアノテーションで記述できずに、struts.xmlに書かないと動かないのもある。 そういえば、この前小規模案件のキット作り頼まれて、 「Strutsって設定ファイルの競合とか大変なんですよー」と泣きつかれたのを受けて、 可能な限り設定ファイルを分割+SubVersion管理にして競合起こさないようにしたら 今度は「ファイル多すぎですよー」とかくらいしか文句出なかった。 小規模でも分割大事だね。
712 :
デフォルトの名無しさん :2008/05/21(水) 23:12:02
iFitって使ってる人居る?
何だっけ? 東京方面で使わされるヤツだっけ?
struts2で<a href="...にactionのURLを入れたい時ってどうするの? <a href="<s:url action="input" />">aaa</a> こんな風にHTML属性の値の中にsタグ入れるのはかっこわるすぎるよね。 <s:a>タグをみててもわからないんだけど
>>700 ちょっと時間があったのでやってみたんだけど
ftlを変更、tld追加したら、今度は追加した属性のsetterが見つかりません、、と嫌になるねぇ。
さんくす 英語のドキュメントも最後まで読まないといかんな
>>716 そこまで来たらTextFieldの派生クラスにその属性のsetter/getter
用意するだけじゃないの?
ftlを変更ってstruts2のjarの中のファイル?
自プロジェクトで新規にftlファイルを作って、
それを読み込ませる方法がわからないんだけど
struts2を使っています。 画像表示とかのアクションで、使用してるライブラリの関係上 responceに対して直接書き込んじゃうのでjspに 遷移したくないんだけど、こういう時はどうするのがstrutsらしいの? とりあえずアノテーションで @Result(name = "success", value = "") としておいて、 return SUCCESS; してみようかと思うんだけど。 アクションにしないで直接サーブレットにすべきなのかな。
return NONE; にしたらできた。 Actionインターフェースみたらわかった
721 :
716 :2008/05/24(土) 12:21:01
>>718 ちょっとぐぐると出てきた>テンプレート読ませる方法
なんかカナリめんどくさいなー、、、これ。
例えばTextareaタグを拡張(istyle属性を追加)するとして…
Textareaを拡張したUIコンポーネントクラス(ExTextarea)とタグクラス(ExTextareaTag)を作る。
拡張タグのテンプレートファイルを以下のルールで作成する。
ファイルは、{クラスパス}/template/{拡張テンプレートテーマ名}/**.ftl
例えば、theme="extend" とする場合は、{クラスパス}/template/extend/textarea.ftl
次は、Strutsタグ拡張なので、タグライブラリも追加する。
拡張タグクラスは次の実装が必須。
・追加した属性名のgetter/setter
・populateParams()をオーバーライド。親の同メソッドを実行。
・getBean(ValueStack , HttpServletRequest , HttpServletResponse) を継承
拡張したUIコンポーネントクラス
・引数つきコンストラクタを作成。
・追加する属性と、setterを作成
・setterに@StrutsTagAttributeアノテーション追加
・evaluateExtraParams()をオーバーライド&親実行。
追加する属性を判定し、addParameter("属性名" , findString(属性))を記述
つづく
722 :
716 :2008/05/24(土) 12:21:49
ftl textareaタグの中であればどこでもいいので、 <#if parameters.{属性名}?exists> {属性名}="${parameters.{属性名}?html}"<#rt/> </#if> を追加 tld: 既存Struts2TLDを一部拝借(textareaのtag要素から引用+istyle属性分の定義を追加。) JSP&web.xml 追加したStrutsタグを宣言 順番にないものを潰していくだけなので難しくはないんだが… 激しくめんどくさいな〜。 書いてて思ったんだが、拡張のサンプルソースキット提供の方が判りやすいね。
>>721 サンクス。ググったけど自分で拡張する方法が見つからなかったんだよね。
ftlで定義した"extend"をどこで使うのかと思ったけど
UIコンポートネントクラス#getTemplateDir()かgetDefaultTemplate()で
return "extend"しないと駄目だよね?
しかしこの面倒くささは、将来違う人が保守することを考えると導入をためらうね。
普通のstrutsタグですらJSTLにすべきか悩んでたのに
724 :
デフォルトの名無しさん :2008/05/24(土) 19:10:37
Frameworkの高機能化が進むと、拡張作業は複雑化せざるを得ないのかもね
>>699 @Resultも書きたくないってこと?
それなら@Namespaceかなあ
@Namespaceをpackageで一括指定することは可能だけど
各Actionで@ParentPackageは必要。
でもこれはまっとうなアプリ作ってれば定義してるよね。
@Namesapceを"/a"にすると
actionへのアクセスも/a/XXX.actionになる。
jspは/a/XXX.jsp
さらにjspのトップディレクトリを指定する方法はなんかあるのかなあ
ちょっとstrutsから外れちゃうけど、jspを/WEB-INF/jsp/配下に
置くのってそんなにメジャーじゃないのかな。
Actionを通さないで直接jspを呼ぶようなシステムってそんなに
ないでしょ?PHPじゃあるまいし。
ほとんどのjspはユーザーに直接アクセスされたくないから
WEB-INFに置いてるんだけど、index.jspとかは直接アクセスにしてるから
拡張子*.jspを禁止することはできない。
Eclipse+WTPで開発してると、/WebContent/WEB-INF/jsp/xxxとなって
階層が深くてアクセスしづらい。これは回避策見つけたけど。
>>725 の@NamespaceもWEB-INF配下に置くってのは想定されてない
みたいだし、一般的にはコンテキストルートにjspを置くのが普通なのかなあ
>>724 というかまだ過渡期だから、進化の方向がちょっと間違ってると思うよ。
暗黙の了解が多すぎるのはグローバル変数多用と同じ害がある。
あれだって、どんなグローバル変数があるか、値を変更するときの
ルールはなにかっていうのが明確になってれば問題は無いわけだけど、
変数が多くなってくるとそうもいかない。
struts2ではWorkflowInterceptorでexclude宣言したメソッドなら
validate()が呼ばれないからinput()では呼ばれないけどexecute()では
呼ばれる。ほぼすべてのActionでの共通機能だから一カ所に
定義できて確かに便利。でもValidateInterceptorとの関連はどうで、
doExecuteValidate()を実装したらexecute()専用のvalidate処理が定義できて、
execute()直前のアノテーションでも定義できて、各フィールドでも定義できて・・・
っていうルールをすべてのアクションの開発者が知っていないと
ソースの解読すら大変、っていうのはちょっとね。
Java経験豊富でもstruts2経験の無い人に、このアクション修正してって
頼む前に教えないといけないことが多すぎる。
>>726 俺はWTP捨ててノーマルEclipseとMaven2でやってるよ。
普通にデバッグもできるしな。
WTPって長い歴史の割には未だになんかいまいちだし。
>>715 auのケータイがCacheコントロールを無視するので、毎回アクセスするURLが
変わるように<s:url>を拡張してdoEndTag()で毎回ユニークなURLに
なるようにパラメータつけてたんだわ。これなら戻るボタンの時に
通信発生しないで快適だし。
でもその独自パラメータもidに含めるためには、textareaみたいに
テンプレートから拡張しないといけないのかなあ
730 :
716 :2008/05/25(日) 10:18:52
>>728 こういう手もある。
Maven2でWebキット作成→さらにmaven2でWTP用プロジェクトを生成する。
デバッグ作業や稼働確認が簡単にできるのでウチではWTPは重宝してる。
>>729 一回作ってしまえば、後は悩まず作れる…調べるのが面倒なんだよね。
修正箇所が多いのがめんどいだけ。
しかしsタグ(sxタグ)拡張して便利になるのを作ろうとすると大変だねー
慣れなのかな、やはり。
ちなみに、ウチでは、JSTLとStruts1タグ、JSP2.0をごっちゃにしちゃってる人がかなり多い。
その上、Struts2タグ+OGNLなんか出てくると、
「今度は一体どれで書くのが正しいんだ!」ってなってる人多いよ…
今、プロジェクトでstruts2+springを提案されてて、 試しに作ってみたんだが、どうみてもseam(JSF+Ejb)の方が使いやすいんだが seamと比べてstruts2のメリットってなんだ?
Strutsという名前
まあ、名前だろうだろうな。 seamの方が使いやすいとは漏れも思うよ。
新規開発案件でもまだStruts? ポストStrutsの決め手がない現状では仕方ないのかな・・・
>>730 OGNLやValueStackで任意の変数にアクセスして、
<s:property id="">で埋め込んだりするくらいなら
スクリプトレットでよくね?JSTLで基本的な整形をして、
拡張が必要なときだけスクリプトレットで値をいじってから
JSTLに渡す、みたいな。
taglibに限定するメリットって
1.ソースが見やすくなる
2.ビジネスロジックが紛れ込むのを排除できる
っていう2点だと思うんだけど、教育コストに見合わないよ。
へぼいPGの場合は2に限らずコードレビューしてプロジェクトの
ルールに則ってない場合は手直しさせるから、jspだけそういう
制限があったところで大差無いし。
>>731 「どうみても」なのはseamに慣れてるからじゃないの?
WebサーバーとAPサーバーが分かれてるプロジェクトで
seam導入しようとしたとき、アノテーション地獄でなかなか
理解できなかったよ。便利そうとは思ったけど。
JSP&Servletが最強です。
struts2のタグで、値をDoubleで持っていてjspで DecimalFormatでフォーマットして出力するのはどうするの? <s:property id="">で代入して表示? みんなはActionで文字整形までやってるわけ?
jstlで
>>737 確かにseamには慣れてるけど、比較対処が簡単なlogin画面で明らかにコーディング量が違っていたよ。DBアクセスの為のBean作成やログイン後の情報を保持する部分とか。
struts2に慣れればもっと良い書き方が出来るのかもしれないが
アノテーションはXML地獄よりは確実にましだと思うんだけどな
確かにおっちゃん連中はついて来るのが大変そうだった
DBアクセスはstruts2/springの範囲外だからそこで比べても。 アノテーションとxmlは一長一短だけど、そこそこの複雑さの場合は アノテーションの方が記述が分散する分学習が面倒だと思う。 xmlでいろんなライブラリ導入してxmlファイルがあちらこちらに あってそれぞれの役割がよくわからないのが一番ひどいけどね。 アノテーションなら定義クラスにすぐアクセスできるけど (Eclipseとか使って無くてもimportとアノテーション名を見ればわかる)、 xmlだとそもそも誰が読んでるのかすらわからないし
744 :
デフォルトの名無しさん :2008/05/27(火) 23:53:30
>>742 ログイン認証処理なんて、spring security使えば楽チンだよ
Strutsと直には関係ないだろうけど、オマイらメールのテンプレート処理とかなに使ってやってんの?
>>745 自前でstr.replaceAll(key,value)
駄目だ。struts2のタグは応用効かなさすぎ。 俺はstruts2をやめるぞジョジョォォォオオオオオ
>>747 そ、、、、そうかー???
使う側の応用力の問題ジェネーーーーーーーーノーーーーオオオ
てかOGNLって何でも出来すぎてあとでメンテで困るんじゃねーー って感じなんだけど。
750 :
747 :2008/05/28(水) 02:51:58
ValueStackはうまくいってるときは便利で強力だけど、 「望みの値が出ない」ときにどこが間違ってるのか検証するのが面倒。 struts2のComponentTagSupport系のタグだと処理が追えない。
ajaxとstrutsの相性ってどうなんですかね。 styleId属性使うんだろうけど。
752 :
デフォルトの名無しさん :2008/05/28(水) 22:24:38
名前忘れたけど、選択リストが複数出てくるGUI部品は内部でAJAX使ってたよ
EventDispatchActionってボタンによってjavascriptのvalidation切り替えたりできない?
>>745 Velocity
>>749 その通り。
もし使用に耐えられるのであれば、JSONプラグインを使ってAJAXタグと組み合わせるのも良いかもしれない。
>>751 2.0系はdojo0.4が同梱。
しかしdojoの現リリースと大きく離れていて、かつ欲しいのがあったりして困る。
>>752 を補足すると、AJAXタグはそこそこある。
タブパネル、オートコンプリータ、ツリーパネルなども。
ちなみに、Struts2.0系で何か作ってる連中はとりあえず2.0.11.1にしておきましょう。
s:aタグがトンデモない状態だった。
>>753 EventDispatchActionは知らんけど、
Struts1.1でやったよ。
ELでMap#get()を呼び出したいときはどうしたらいいでしょうか。 ${map.get(key)}だと 「デフォルトの名前空間が指定されていない時には、関数 get はプリフィクス付きで使用しなければいけません」と出ます。 OGNLなら%{map.get(key)}で取り出せるんだけど。 s2のタグにformatNumberがあればEL式と併用しないでいいのになあ
${map['key']} keyが変数なら ${map[key]} ちなみに、「key」が実際のkey名でプロパティ名として使える場合は ${map.key}でもOK JavaScriptの連想配列アクセスに似ている
>>756 S2タグとELの混在利用なんてとんでもない間違い
>>759 じゃあ数値フォーマットはどうやんのさ?
いちいち
>>741 みたいにフォーマット外だしにして
メッセージフォーマット使うの?
>>757 ありがっとさん。
ママ、僕にも出来たよ
struts2のタグが生成するxhtmlをhtmlにする方法ありますか? <constant name="struts.ui.theme" value="simple" /> としてもxhtmlみたいなのですが。 古い携帯にも対応したいのでhtmlにしたいんです。
s:iteratorで見てるカレントオブジェクトとその上のactionとか requestで同じ変数名を使ってるときに、上の方を参照するには どうするんだっけ? どこかのwebサイトで見かけたんだけどなあ。どこだったっけなあ
>>760 数値フォーマットはJSTLでいいんじゃない?
S2タグにあっても良さそうなんだけど、fmtないんだよね〜
>>764 JSPファイルはきっとぐちゃぐちゃだなww
766 :
デフォルトの名無しさん :2008/06/01(日) 03:18:28
>>761 ボク、りっぱになったわね
大き過ぎて口に入らないわ
>>765 どうやったらそこまでぐちゃぐちゃになるんだ…?
>>728 お前は俺か。Maven最高。pomがちょいアレだけど。
WTPマジうんこ。
MavenもWTPも両方使うだろJK
770 :
デフォルトの名無しさん :2008/06/03(火) 08:18:22
struts2で ■■■■■ 上記の様に複数の画像をサブミットボタンとして並べると画像間に隙間が空いてしまいます。 調べてみたのですが回避する方法見当たりませんでした。 隙間を開けずに画像を並べる方法ありましたら教えて下さい。
>>768 maven スレは過疎っているので、暇なときに遊びに来てください。
自分は maven はそれほど万せーでもないけど(微妙にめんどう)
>>771 jetty って jsp 動かせるの?
>>771 Maven Eclipse PluginでWTPプロジェクト作成した方が楽だと思うw
今ならQ4Eだろ
NetBeans使えばいいだけじゃねぇの?
それはない
WTPとは比べ物にならないよ。
779 :
デフォルトの名無しさん :2008/06/04(水) 22:39:24
あれ、JSTLのfmtタグってリクエストヘッダみて挙動変えるのか。 DoCoMoだとformatNumberがきかない。つかえね。auは大丈夫なのに。 fmt:setLocaleしても駄目だなあ。なにが足りないんだろ。結局カスタムタグか。 リクエストヘッダからfmt:messageでとってくるプロパティファイルは setLocaleで変えられるんだよね?
>>780 それはDocomoだとロケール情報をHTTPヘッダに持ってないってことなのか?
実際に取得したロケールの値と、プロパティファイルの接尾名が合致してないというオチは結構ある。
例えば、言語コードと国コード両方だと思ったら、片方しかないとか。
>>781 うん、GETだとhostとuser-agentしか入ってない。機種はSO902i。
他の人のDoCoMoでも駄目だった
>>782 だったらもう、Action側でロケール上書きで付けるしかないのかな。
web.xmlのcontext-paramにjavax.servlet.jsp.jstl.fmt.fallbackLocaleとかはセットしてる?
してない。 <fmt:setLocale value="ja_JP"/>を入れて駄目だった時点で これ以上時間を浪費したくないからカスタムタグ書いた。
もし簡単に試せる環境があるのなら、 <context-param> <param-name>javax.servlet.jsp.jstl.fmt.locale</param-name> <param-value>ja_JP</param-value> </context-param> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name> <param-value>ja_JP</param-value> </context-param> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> <param-value>{リソースバンドル名}</param-value> </context-param> これセットしてどうか試してみてくれない? setLocaleやbundleを個別に書く必要はない
えー それを開発環境に入れるのは楽だけど カスタムタグに変えたところを戻して 外からアクセスできるところにデプロイしなおすのは面倒 と思ったけど手元にエミュレータがあったのでやってみた。 ちゃんとフォーマットされたよ。ちなみにauは"ja-jp"で送る みたいだね
ありがとう 携帯用画面の開発では結構ありそうなパターンだったから確認しておきたかったんだ 参考になったよ
カスタムタグにすればOGNLに統一できるし悩ましいところだな
しかしこれはいい事例だね。俺も作ってみるか…
struts2で、session.invalidate()を読んだ後ちゃんとrequest.getSession(true)で新しいセッションを作らせてから、 ActionChainResultで別画面に遷移させると「セッションが無効」の エラーがでます。おそらくInterceptorでセッションインスタンスを キャッシュしてるせいだと思うのですが、追い切れていません。 logout時のinvalidate()は普通に成功しています。 login時にはsessionIdを発行し直して、かつリロードで 再度ログイン処理が走らないようにリダイレクトさせたいと 思っているのですが、なにか回避策はあるでしょうか。 sessionIdの発行し直しはセキュリティ会社に指摘されたことが あって、ログイン前の無防備な状態でid盗聴されたらログイン後に 乗っ取られる可能性があると。今回の案件では始めから httpsなのでやらなくてもいいかなとは思っているのですが、 できたらやっておきたいなあと。
793 :
デフォルトの名無しさん :2008/06/15(日) 00:58:09
sessionをプレゼンテーション層的観点で皮相的にとらえると上手くいかない。 自分もstruts2とacegisecurity(spring security)を組み合わせたカスタマイズで苦労した。
HTTP Status 503 - サーブレット action は現在利用できません -------------------------------------------------------------------------------- type Status report message サーブレット action は現在利用できません description The requested service (サーブレット action は現在利用できません) is not currently available. -------------------------------------------------------------------------------- Apache Tomcat/4.1.24 というエラーが出るのですが、原因としてはどのようなことが考えられるでしょうか? tomcat 4.1.24 jre 1.50 struts 1.22 です。ご教授いただければありがたいです。
795 :
デフォルトの名無しさん :2008/06/22(日) 14:16:47
あげときます
よろしくお願いします。 Struts2で、iteratorタグを使用しています。 <s:form> <s:iterator value="hogelist"> <s:property value="no"> <s:textfield name="hogelist.get(%{no}).hoge" value="%{hoge}" /> </s:iterator> <s:submit action="hogeaction" value="送信" /> </s:form> 上記のようにに作っていて、初期表示でデータを表示させることはできています。 送信ボタンを押してActionを呼び出したら、 hogelistの中にテキストフィールドで入力した値が入っていることを望んでいるのですが、 データを取得することができません。 nameの書き方が悪いのでしょうか?それともこういった使い方はできないのでしょうか? どうかご教授ください。
えー、マジTomcat4?今時許されない
なんかの保守じゃねえの?
799 :
796 :2008/06/22(日) 17:30:06
>>796 name="hogelist.hoge"でいいんだぜ
800 :
796 :2008/06/22(日) 17:47:08
>>796 ごめん、嘘ついた。
データは取得できるけど、名前が重複して変になる。
>>794 エラー画面だされても意味がわからんので、リクエストしてるURLとエラーが出てるログファイルから判断しろ。
話はそれからだ。
>>796 <s:iterator value="hogelist" status="idx">
と、イテレーションのループ変数を宣言、
<s:textfield name="hogelist[idx]" />
でいいんじゃないのかね。
ただ、そのままだとValidatorを使ったときに困ると思う。
802 :
796 :2008/06/24(火) 09:45:20
>>801 ありがとうございます。泣く泣く固定の変数使ってやってました。
statusを使用するんですね。
<s:form>
<s:iterator value="hogelist" status="idx">
<s:textfield name="hogelist[%{#idx.index}].hoge" value="%{hoge}" />
</s:iterator>
<s:submit action="hogeaction" value="送信" />
</s:form>
これでhogelistにデータを入れることができました。
Validatorは今のところ使用していないので、スルーの方向で。
スッキリ解決しました。お世話になりました!
strutsにも飽きてきた。 strutsに代わるフレームワークってないの? 個人的にはwicket辺りに注目してるんだけどあんまり流行ってない?
飽きたらカスタマイズか新作なんかね、wicketは日本で人気っぽいけど。 または自動生成ツールを作るとか、RIA側に手を出すか。 ちなみに、Struts2.2と2.5出るのって本気なのかね。
>>804 dolteng入れてTeeda使うと笑えるよ
808 :
デフォルトの名無しさん :2008/06/27(金) 01:50:54
810 :
デフォルトの名無しさん :2008/06/28(土) 02:12:13
811 :
デフォルトの名無しさん :2008/06/28(土) 02:15:57
AJAX対応とスピードアップってことだな、2.2は
2.0だとdojoプラグイン(でも0.4)が既にバンドルされている。 dojo1.0に対応するのか、それとも他も使えるといいんだが… 2.2以降が出るのを待つかなぁ。
813 :
794 :2008/06/28(土) 14:17:11
特にヘンな設定していなければ、 ログファイルは、catalina.yyyy-mm-dd.out Struts系の設定ファイルはきちんと書かれているか - web.xmlにstrutsの定義があるか - struts-config.xml <form-beans>と<action-mapping>がきちんと設定されているか 基本的すぎる内容なので自分で調べまくる方がいいとは思うが。
815 :
デフォルトの名無しさん :2008/06/28(土) 15:13:27
ageときます
816 :
デフォルトの名無しさん :2008/06/28(土) 15:24:28
よろしくお願いします。 struts2を勉強しています。 propertiesファイルにUnicodeエスケープ形式で メッセージを書くのが面倒なのです。 ツールやプラグインを使用していますが、 XML形式で書くと、日本語をツールなしに使えると伺いました。 書き方等教えていただけないでしょうか。よろしくお願いします。
817 :
794 :2008/06/28(土) 15:28:51
レス有難う御座います。
ログファイルは、C:\tomcat\logsに
・ localhost_log.2008-06-28.txt
・ localhost_admin_log.2008-06-28.txt
・ localhost_examples_log.2008-06-28.txt
がありますが、このうちどれでしょうか?
web.xmlも確認しましたが、特に自分では変なところは見つかりませんでした。
下記のとおりです。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "
http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd ">
<struts-config>
<form-beans>
<form-bean name="chap02_loginForm" type="chap02.LoginForm"/>
</form-beans>
<global-exceptions>
</global-exceptions>
<global-forwards>
</global-forwards>
<action-mappings>
<action path="/chap02/login"
type="chap02.LoginAction"
name="chap02_loginForm"
scope="request" >
<forward name="success" path="/WEB-INF/jsp/chap02/success.jsp"/>
</action>
</action-mappings>
</struts-config>
818 :
794 :2008/06/28(土) 15:30:36
819 :
794 :2008/06/28(土) 16:43:41
struts.jarなどをeclipseの「プロジェクト」→「プロパティ」→「JAVAのビルド・パス」 →「ライブラリ」タブでインポート(とでも言うのでしょうか?)していたのを、直接 アプリケーションのWEB-INF\lib配下にコピペしたらエラーメッセージが変わりました。 下記のとおりです。 HTTP Status 404 - パス {0} に対するリクエストは無効です -------------------------------------------------------------------------------- type Status report message パス {0} に対するリクエストは無効です description The requested resource (パス {0} に対するリクエストは無効です) is not available. -------------------------------------------------------------------------------- Apache Tomcat/4.1.24
820 :
794 :2008/06/28(土) 16:57:28
うまくいきました! 原因ですが、やはりWEB-INF\libに直接コピペしたのがよかったようです。 上記のエラーからは、struts-config.xmlのミスで、やっとうまくいきました!!! 本当に有難う御座いました! またお世話になることがあると思いますが、その際はどうかよろしくお願いします!!
>>819 遷移先のパスは<forward name="success" path="/jsp/chap02/success.jsp"/>でいいんじゃないのか?
おっと、自己解決してたw
823 :
794 :2008/06/28(土) 17:10:25
>>821 はい、そこを直したら無事動きました!!ありがとうございました!!!!
824 :
794 :2008/06/28(土) 22:14:06
さきほどは皆様、ありがとうございました! 次のステップに進んだのですが、またエラーに引っかかりました。 MappingDispatchActionを使って、データベースへの入力をひとつの アクションで済まそうとし(正確には、使っている本にMapping DispatchActionを使うように書いている)たら、下記のエラーが出ました。 ご教授いただければ幸いです。どうぞよろしくお願いいたします。 HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: クラス database.DBActionForm のbeanを生成する際の例外: {1} at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at filter.EncodingFileter.doFilter(EncodingFileter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) エラーメッセージが長いので、途中で切れます
825 :
デフォルトの名無しさん :2008/06/29(日) 01:13:45
初心者スレかと思た 面倒見の良い人がいて良かったな
826 :
794 :2008/06/29(日) 07:15:25
>>825 そうですね、本当にありがたいです!!!
>>824 ・struts-config.xml に正しくActionクラス、Beanクラス等を定義できているか
・JSP内のパスは、struts-config.xmlに定義した名前になっているか
MappingDispatchActionをぐぐると思いっきり出てくるんだが。 MappingDispatchActionを使う場合の必須事項はちゃんとやってるんだろうな…
>>816 Eclipseプラグインのプロパティエディタ使えば、プロパティファイルをマルチバイトでそのまま編集できるぞ。
逆に
>XML形式で書くと、日本語をツールなしに使えると伺いました。
の出所を知りたい。
830 :
794 :2008/06/29(日) 13:18:03
831 :
816 :2008/06/29(日) 15:44:07
>>829 知り合いがどこかで見たことがあるという、とても曖昧なソースです。。
以前eclipseプラグインをいれようとしましたが、相性が悪かったのか
プラグインが認識できず、スタンドアロン版を使用していました。
PCも変わったので、eclipseプラグインを再度入れてみたら
すんなり入れることができました。お騒がせしました。
Properties#loadFromXML を使えばってことでしょ。 struts2では、xml形式かどうかなんか判断してないと思うので使えないと思うけど。
833 :
794 :2008/06/30(月) 01:08:09
さきほど、エラーが通りました!むちゃくちゃうれしいです! 皆様、本当に有難う御座います!
834 :
デフォルトの名無しさん :2008/06/30(月) 01:19:54
偉くねーよ。 お礼の前に「なにを直したら動くようになったのか」を 書かないと情報量0じゃねーか。
836 :
794 :2008/06/30(月) 17:54:24
>>835 すみませんでした。
一からすべて書き直したら、エラーが通りました。どこが悪かったのかは
わからないままでした。
struts2のアクションのPackageについて解説したURLご存じの方居ませんか? struts.xmlで <package name="admin" namespace="/" extends="visitor"> という宣言をして、/com/xxx/action/admin/の配下にアクションクラスを 置いたら、ParentPackage(vlaue="admin")を指定していないアクションまで このPackageが適用されているようでハマりました。 ログイン前のページはこのPackage適用したくないのですが、 ParentPackage(value="visitor")と宣言していても adminパッケージを利用するようです。 開発者はクラス名やパッケージ名から自動的に判断するのが便利だとでも思っているのでしょうか。 正直なにがおきているのかわかりにくくてウザいです。 せめて明示的にParentPackage指定したときくらい それに従って欲しい
>>837 struts.xmlのpackage name=visitorの部分晒してみ?
こんな感じだけど、visitorがなんか関係あんの?adminじゃなくて? <package name="visitor" namespace="/" extends="ベース"> <interceptors> <interceptor宣言> <interceptor-stack name="visitorStack"> <interceptor-ref さっき宣言した奴 /> <interceptor-ref ベーススタック /> </interceptor-stack> </interceptors> <default-interceptor-ref name="visitorStack" /> </package>
前にも質問したのですが、struts2のformタグで生成されるタグを xhtmlではなくhtmlにする設定は無いのでしょうか? template/*.ftlを一式全部つくらないと無理でしょうか。
>>837 それぞれのActionに
@Namespace("/")
て書けば期待したような動きになると思う
>>837 継承元となるpackage要素には、次の決まりがあるみたい。
・abstract="true"をつける
・abstractのパッケージは、ネームスペースを持ってはいけない。
→他のパッケージ要素たちも、きちんとネームスペースを割り当ててあげないと誤動作する現象がある。
>>840 それって、theme=simpleでもダメなんだっけ。
>>842 今simple
xhtmlみたけど、内部でsimpleのftlをincludeして拡張
してるだけっぽい。
simple/submit.ftlの中を見たらケツの方に「/>」と直書きしてあるっぽい
ftl作り直すとしたらクラスパスにtemplateってフォルダ作って
そこにtheme名でフォルダ作ったら勝手に認識してくれるのかな。
まさかカスタムしたやつをstruts-xxx.jarに埋めるわけにもいかないし。
というわけでinput(accessKeyの件),fmtに続いて
ボディの無いタグもすべてstruts2のものは使わないことにした。
絶対に非struts2のタグで統一した方が便利。
>>843 イエス。
で、その中にtheme.properties置いて、parent=(継承テンプレート名)でいける。
使いにくい!と感じたら、ポリシーもって「使わないもの宣言」するのもありかね。
まぁ、あくまであの初期テンプレートたちはサンプル実装らしいが…
Struts2のアクションのテストケースって、どういう風に書くのが一般的?
846 :
843 :2008/07/02(水) 20:16:36
不具合報告者の日本語がおかしくて、ログインボタンが無いっていうから てっきりsubmitボタンだけ表示されないのかと思ってxhtmlが 駄目なのかと判断したんだけど、どうも全然違うURLを開いていたようだ。 とりあえず今のところ<input ... />となっていても不具合のある携帯は なさそう。でもなあ、DOCTYPEでHTML宣言してるのにxhtmlが混じってるのは 気持ち悪いっていうか、お客に出すシステムとしては恥ずかしいなあ。
4月にIT企業に入社したものの、配属先が見つからずにモソモソと自習している物です。
JVM 1.6.0_05-b13 Tomcat5.5 Struts2.011 Eclipse3.3でサンプルを作りながら慣れようと思い、会社で勉強しています。
ttp://www15.plala.or.jp/k_maeba/struts2/のサイトを参考にしながら進めているのですが 、ゼロコンフィグを試したところで詰まってしまいました。
Tomcat Managerで実行中であることを確認して選択すると404エラー(The requested resource (アクション名) is not available.)が返ってきます。
フィルタマッピングがまずいのか、バリデーションした結果のinputのjspを作っていないのが悪いのかよくわからなくなってしまいました。
以下配備ログです。
2008/07/01 13:59:52 org.apache.catalina.startup.HostConfig deployWAR
情報: Webアプリケーションアーカイブ ManageUser1.war を配備します
2008/07/01 13:59:53 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts-default.xml]
2008/07/01 13:59:54 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts-plugin.xml]
2008/07/01 13:59:54 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts.xml]
2008/07/01 13:59:54 org.apache.struts2.config.Settings getLocale
警告: Settings: Could not parse struts.locale setting, substituting default VM locale
2008/07/01 13:59:55 com.opensymphony.xwork2.util.ResolverUtil findInPackage
情報: Scanning for classes in [/C:/apache-tomcat-5.5.26/webapps/ManageUser1/WEB-INF/classes/pkg/sample/] matching criteria: org.apache.struts2.config.ClasspathConfigurationProvider$1@1f287e8
2008/07/01 13:59:55 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory <clinit>
情報: Setting DefaultObjectTypeDeterminer as default ...
struts.xmlとweb.xmlの内容は参考にしたサイトそのままなので
/user1/struts.xml.txt
/user1/web.xml.txt
と同一です。何か設定が必要なのでしょうか?
848 :
デフォルトの名無しさん :2008/07/03(木) 00:57:24
>>847 初心者は既に動いてるサンプルプログラムをダウンロードしていろいろ試した方が良いと思うよ。
まずは知ることから始めなさい、だ。
849 :
847 :2008/07/03(木) 06:35:21
>>848 Struts付属のサンプルプログラムをポチポチといじってみたのですが良くわからず、
もっと基礎的な部分からやってみたほうがいいのかと上記サイトに行き着いた次第です。
サイトでは使用するソースをダウンロードできるのですが、
そこからプロジェクトを丸々落としてきても404なので首を捻っていた次第です。
もう少し付属のサンプルのxmlファイルとにらめっこしてみます。
>>847 struts.xml.txtでどきどきしてしまった俺がいる。
拡張子はtxtじゃないよな…?
そうだなぁ…日本語でサンプル公開してる所ではmaven2利用してるものも結構ある。
あとは
>>848 の通り、Struts2以外で覚えるの多いかなー。超頑張れ。
ウチもサンプルとか公開してるので、ぐぐった履歴とかもついでに集計してるんだけど
結構みんな色んなので悩んでるね。
多いのはValidator(Validation)、Annotation、ModelDriven、Uploadとか。
いあいあ、それは大丈夫です。.xml.txtになっているのはサイトのアドレスがそうなっているからでして。 来週からプロジェクトに参加することになったのでstruts2とは暫しお別れです。 まぁプロジェクトではたぶんstruts+spring+もう一個DB系のフレームワーク?でやるらしいんで これからよろしくねstruts1。 struts1のことで判らなくなったらまたお世話になります。
852 :
794 :2008/07/04(金) 23:08:38
現在、struts1.29でWEBアプリを作っています。 JSPで入力画面を作り、入力して送信ボタンを押すと、入力した
内容がデータベースに反映されるようになっています。そこまでは いいのですが、データベースに反映された内容が文字化けして
しまっています。 考えられる対策はすべてしようと思い、以下の対策をしました。
1 filter
web.xmlに以下の記述をしました。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"
http://java.sun.com/dtd/web-app_2_3.dtd ">
<web-app>
<filter>
<filter-name>EncodeFilter</filter-name>
<filter-class>SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
(以下略)
853 :
794 :2008/07/04(金) 23:10:04
続きです。 2 MYSQL側のエンコーディング設定 MYSQL側のエンコーディング設定を色々といじって、下記のような 状態にしました。 mysql> show variables like "char%"; +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | utf8 | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\\Program Files\\MySQL\\MySQL Server 5.0\\share\\charsets\\ | +--------------------------+---------------------------------------------------------+
854 :
794 :2008/07/04(金) 23:11:59
同じく続きです mysql> status; -------------- mysql Ver 14.12 Distrib 5.0.27, for Win32 (ia32) Connection id: 1 Current database: input Current user: root@localhost SSL: Not in use Using delimiter: ; Server version: 5.0.27-community-nt Protocol version: 10 Connection: localhost via TCP/IP Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 TCP port: 3306 Uptime: 4 hours 59 min 41 sec mysql> show create database input; +----------+----------------------------------------------------------------+ | Database | Create Database | +----------+----------------------------------------------------------------+ | input | CREATE DATABASE `input` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+----------------------------------------------------------------+
855 :
794 :2008/07/04(金) 23:12:41
長々と申し訳ないです。これがラストです。 mysql> show create table input; +-------+------------------------------- ---------------------------------------- | Table | Create Table +-------+------------------------------- ---------------------------------------- | input | CREATE TABLE `input` ( `id` int(11) NOT NULL auto_increment, `title` text, `movie_url` text, `material_url` text, `explanation` text, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------+------------------------------- 考えられる対策はすべてしても、なお文字化けしています。なお、 「あ」「い」「う」「え」とそれぞれの項目に入力すると以下の ようになります。 | 縺・ | 繧」 | 繧ヲ | 蠕・ | どんなことでも結構ですので、ご教授いただければ幸いです。 どうぞよろしくお願いいたします。 開発環境 OS;WINDOWS VISTA SP1 IDE;ECLIPSE 3.32 DB;MYSQL5.0 JRE;jre1.6.0_06 struts;1.29
JSPがUTF-8じゃないとか
切り分けるためにDBに入れる前にアクションで
ログ吐いた方がいい
SetEncodingFilterでUTF指定してるなら俺も
>>856 に一票
FORMをGETで送っていて、Tomcatのserver.xmlの設定をしてないとか
859 :
794 :2008/07/05(土) 04:04:06
>>856-858 皆様、レス有難う御座います。
JSPはUTF-8に設定してあります。
<%@page contentType="text/html; charset=utf-8"%>
とページの一番上に指定してあります。
>>切り分けるためにDBに入れる前にアクションでログ吐いた方がいい
初心者で申し訳ないのですが、詳しく教えて頂けないでしょうか?
現時点では、フォームの画面で入力し、SUBMITボタンを押すとフォワード
で「入力完了」とだけ表示されるJSPに移動する状態です。そして、SUBMITボタンを押した
時点でDBに反映されます。それを、フォームの画面で入力し、SUBMIT
ボタンを押すと入力した内容がJSPに表示され、入力した内容を
確認させてからもういちどSUBMITボタンを押すことでDBに反映させる
ようにする、ということでしょうか?
>>FORMをGETで送っていて、Tomcatのserver.xmlの設定をしてないとか
初心者で申し訳ないのですが、詳しく教えて頂けないでしょうか?
FORMにGETとPOSTがあるのは知っていますが、どうやって見分ける
(もしくは使い分ける)のかはまだ分からない状態です。今回のWEB
アプリは本に載っているのを参考に作ったので、まだソースで理解し
きれてない部分があるのも事実です。大変申し訳ないですが、詳しく
教えて頂けないでしょうか?
SET NAMES UTF8 な予感
861 :
デフォルトの名無しさん :2008/07/05(土) 05:24:36
今回は、レベル低過ぎだな
862 :
794 :2008/07/05(土) 10:03:40
>>860 SET NAMES UTF8 というコマンドは知りませんでした!ありがとうございます!
>>861 低レベルで申し訳ないです・・・ orz
>>859 初心者なら、まずはSystem.out.printlnでFORMから受け取った文字を出してみることだね
StrutsのAction上で、ActionFormにセットされたパラメータを出力してみる
そこが文字化けしていたら、FliterかTomcatの問題の可能性
そこが文字化けしていなかったら、DB登録時に文字化けしている可能性が高い
FORMのGET・POSTを見分けるには、
出力されたHTMLのformタグに、method="POST"みたいなのが書いてあるか
チェックするといい。method属性が書いてなければ、デフォルトでGETになる
Strutsのhtml:formタグを使っているなら、デフォルトでmethod="POST"になっている筈
使っているのがTomcat5以降で、もしGETを使っていたら
server.xmlのConnectorに URIEncoding="UTF-8"
を追加してやる必要がある
だいたいmysql文字化けのほとんどは
>>860 だな。
set names するのがイヤならjdbcのurlは
jdbc:mysql://ほげほげ&useUnicode=true&characterEncoding=utf8
でよいな
[mysqld] default-character-set=utf8 skip-character-set-client-handshake これでSET NAMESは要らなくなる 794のstatus見る限り、ここはクリア出来ているように見える
まぁ、JSPがUTF-8なら大丈夫だと思うけど、 その送信元ページにメタ要らなかったっけ。 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> あとは皆の言ってくれた通り、 Actionなどでログ吐いてみて、どこで化けてるかを切り分ければいいんじゃないかね。
あ、あとWin版のMySQL5.0だと、 UTF-8設定はインストール時にがっつりやってしまってくれるので 悩まなくなったかな。 余談だけどStruts2だとEncodingFilterなんか設定しないから 昔の苦労なんかしなくなった感じだよなぁ。。 「ウェーブダッシュが化けます」とかさ… 今もたまに頼まれるんだけど
まぁそれでも文字化けするのがmysqlなんだけどな
男は黙ってpostgres
ポスグレって、Oracle互換にするんだっけ。
871 :
794 :2008/07/05(土) 19:57:42
おお、みなさん、たくさんのレス有難う御座います!! いろいろ試行錯誤してみますね! また来ます!!!
>>871 おー、頑張れ。
おまいさんの今やってることは皆通ってきた道で、
同じように同じようなところでつまづいて、
でも切り抜けた連中ばかりがここにいる。
まずは自分で稼働できるようになれば、二度と忘れることはないだろう。
似たようなトラブルがあったとしても、切り抜けるヒントにもなる。
動くようになって、それで終わるのでもいいが、動いたら動いたで
「なんで動かなくなったんだろう?」を調べることが大事。
>>872 つーか、mysqlのトラブルは経験値というより、
時間の無駄タイプが多かったからのぅ・・・
というかmysql4.1のときは本当に解決手段なかったからなぁ 4.1.6だったっけ?あのあたりからマルチバイトがまともに動かなくなって 直るまでには1年以上放置 その間にWindowsネイティブ対応したPostgreSQL8にもっていかれたという感が強い
すれ違いな話題を引っ張ってすまん。 前は日本ではmysqlとpostgresのシェアが半々くらい、 海外ではmysqlの方が断然多いと聞いていた。 実際オープンソースプロジェクトで標準DBがmysqlの物が 一番多いようにみえる。postgresも次点くらいに多いけど。 20年ほど前、LinuxとFreeBSDのシェアが日本では半々だけど 海外ではLinuxが圧倒的に多かった。結局LinuxがUNIX互換OSの デファクトになった。DBではpostgresが逆転するかもってこと? だと嬉しいんだけどなあ
876 :
794 :2008/07/06(日) 10:05:46
>>872 本当にありがとうございます!このスレ、いい方ばかりです。
まずは今、まずは今アクションフォームから受け取った文字を出してみる
ことを頑張っています。
結局Strutsで作るってなると、オープンソースのDB使うこと多いから
あながちスレ違いでもなさそうだけどね。
先月どっかのセミナー聴講したときに、ポスグレのおっさんが言ってたけど
未だにMySQLの方がシェア高く、ポスグレは次点だけど、新製品でどんどんシェア伸ばす予定だそうな。
>>873-874 そうだったねぇ…5.0になってようやくマシになった感じ。
まぁ、MySQLのGUIツールの方が優秀に見えるけど
マルチバイトを入力するとハングするのはいただけない。
>>877 > 結局Strutsで作るってなると、オープンソースのDB使うこと多いから
え・・・?
>>877 > 結局Strutsで作るってなると、オープンソースのDB使うこと多い
うーん。おれもこの考えには同調できないな。
struts(J2EE)を利用できるという時点で、共用レンサバユーザとか
LAMP層顧客は除外されるから、Oracleだったり、DB2だったり
という機会が増える。寧ろSIerがOracleパートナーだったりすると尚更だな。
ただ
>>877 が言いたかったのは、OSSなstrutsを選択する時点で
MySQLやPostgresを使おうとするプロダクトに当たる可能性が増えるが、
既存システムを有償DBで構築してしまうとわざわざそれを変えようと
することも少ないと稚拙な経験から思う。
>>877 >新製品でどんどんシェア伸ばす予定だそうな。
それは予定っつーか願望でしょw
キャッシュ割り当ての設定とかSQLの癖とか
ダンプ・リストアスクリプトの組み方とか両方覚えるのかったるいから
ポスグレにデファクトまで登り詰めて欲しいんだけど
PostgreSQLってもうOracleの性能、品質ともに超えてるんでしょ?
>>878 OracleやDB2って、ウチではそんなに使わないから、ってこと。
あとは
>>879 の言ってくれた通り、SIerがOracleパートナだとOracle一択になる。
すまんね。
>>877 >まぁ、MySQLのGUIツールの方が優秀に見えるけど
>マルチバイトを入力するとハングするのはいただけない。
あの出来で金取るとかいってんだぜ?失笑だよ
バグの為に金払うかっての
MySQLがGPLだから通常の業務で使おうとすると金がかかるというのが面倒かな 昔はpostgreSQLだけのためにLinuxいれてたところおおかったね
もう夏休みだっけ?
このスレに夏休み取れる奴がいるのか…?
881と885は・・・
MySQLがGPLで請負だと金かかるのは常識かと
そなの? GPLなら顧客に対してソースを開示すればいいだけ、 いやなら商用ライセンスにできるししたところで数万円だから 開発全体のバジェットから見たら誤差だと思ってたんだけど、 どうも前者の前提が違うみたいだね。わかるように説明してもらえないか?
やるならその通りだけど、単に手間が面倒ってだけじゃね? 事務仕事とか経理処理とかそういうの。 で、金払いや事務仕事を実際にする人から 「どうせ同じOSSのDBなんだし、どっちでも同じでしょ」 と言われて、簡単な方に流れるというのはある。
いや、GPLで請負だと「金がかかる」って言ってることから そういうちょっとした手間の話じゃないだろう。 請負ならGPLじゃなくソース渡すこともあるしな。 ASPサービスなら渡さないけど。
Struts1.2で勉強中なんですが、 どのサンプルを見ても、まずトップ画面でフォームを置いて 入力された値をsubmitタグのactionでstruts-configに飛ばし、 そこでaction-mappingを参照して指定されたpathの通りにアクションクラスを実行、ロジックで内部処理。 返却された「success」等の文字列によってforwardで次のjspページへ飛ばすって感じです。 この場合最初にフォームを利用してactionを呼び出していますが、 フォーム入力無しに、ロジックでの処理やアクションフォームへの値設定を内部で行い、 最後に表示されるjspをいきなり呼び出したい場合はどうすればいいんでしょうか? strutsにはページを開いた時に強制的にアクションを実行するといったhtmlタグはないようなのですが。
自己解決です。 <logic:foward />すればいいんですね。 ありがとうございました。
まぁ他にもいろいろ手段はあるがな。
アクションに飛ぶと見て勘違いしました。 forwardだとページ遷移するだけでaction-mappingは実行出来ませんね・・。
897 :
893 :2008/07/08(火) 17:46:50
度々すみません。
<logic:forward>は<global-forward>で指定されたパスへページ遷移するものだと思うんですが、
ttp://tag.main.jp/logicforward.html このページの
>Struts-config.xmlの<action>のpath属性を参照し、リクエストを転送している。
という説明は間違いということでしょうか?
>>897 うそだと思うなら
1.そのpathを別のものに変えてみる。
2.logic:forwardを使わずに従来のRequestDispatcher#rforwardをjspで呼び出してみる
3.metaタグやJavaScriptでフォワードしてみる
あとはstrutsはソース公開されてるし、Eclipse+jadでデコンパイルしたソースを
眺めてみるもよし、ご自由にどうぞ
899 :
893 :2008/07/08(火) 20:19:00
>>898 実際にJSPとStruts定義ファイルを書き換えて試したところ、
<logic:forward>は<global-forward>で指定したパスに飛んでいるので、
うそ、というのが何を指して嘘なのかは分かりませんが、
「<action>のpath属性を参照する」と書いてある、上記のリファレンスページは誤っているようですね。
900 :
デフォルトの名無しさん :2008/07/09(水) 03:41:16
解説本やサイトのソースで"${hoge.property}"なんて書式があるけど、これって使うにはなんか設定が必要なのかな?
本を見ながら
<bean:struts id="act1" mapping="/action1" />
<html:link action="${pageScope.act1.path}">
<bean:write name="act1" property="path" />
</html:link>
とか書いてみたんだが、HTMLソースにはリンク先が「
http://localhost:8080/hogehoge/${pageScope.act1.do 」なんて出てきてる。
※ちなみにbean:writeで書いてるトコロには、マッピングされたアクション名がちゃんと出てきてる。
これって${pageScope.act1.path}の中身が置き換わってないってコトだよね?
>>893 global-forward要素の意味をちゃんと調べろ。話はそれからだ。
>>900 解説本やサイトのソースで、稼働環境(特にJSPのバージョン)を見てみな。
調査が足りなすぎる。
>>901 知識も無いのに曖昧なレスだけしなくていいよ。
>>900 JSTL , Velocity etc ...
904 :
900 :2008/07/09(水) 12:03:37
>>901-903 ご助言感謝。
StrutsIDE使ってたんだけど、自動生成のweb.xmlがservlet 2.3用になってた。
自分でweb-appの属性書き換えて、jspにtaglibの記述追加したら無事置き換わるようになった。
・・・これって最初からservlet 2.4用のweb.xmlにすることはできないのかな?
最初に生成されるweb.xmlやamaterasの設定見ると多分出来ると思うんだけどググれないっす。
ヘタレで申し訳ない・・・。
2.3・・・すげーふるいね 今のバージョンは2.5だというのに
金融系システムだとオープンソースがそもそも 使えなかったりするから、それよりはましかと。
金融系システムにはオープンソースが使えない ということにして自社製品を押し込むコンサルまじでイラネ 特にIBMは逝ってよし
IBMって、WASのHTTPサーバはApacheじゃねーか。
>>908 そのとおり。
それを"オープンソースはよくないから"とか"保証が無いから"とか
難癖つけて有料で押し込むのがコンサル。
>>908-909 そのくせWACSもしかりだが、IBM製品のソースは
ゲティってるわ、1年生バグ修正痕はそこらじゅうにあるわ。
最近ではにIBMサンプル改造品をメンテしたが、
W3Cとは正反対方向のタグ組んでたりとか、もう・・・。
911 :
900 :2008/07/10(木) 14:59:02
>>905 確かTomcat5未満だっけ?>2.3
5&5.5が2.4、6から2.5でよかったんだよね
>TomcatのServletのバージョン
引き続き、隙間な時間を見てググってるが見つからず。StrutsIDEって結構メジャーだと思ったんだが・・・。
みんな手でweb.xml書き換えて・・・るわきゃねーよなw
>>911 サーブレット全盛ならまだしも、strutsでWebアプリ組むのに
そんなしょっちゅうweb.xmlなんて触らなくないか?
StrutsIDEの最新版でもservlet2.3なの?
facesなら2.4対応なんだけどな。
>>911 EclipseWTP使えば、Tomcat5なら自動的にServlet2.4、6なら2.5になる
今使っているweb.xmlが古かったら、Tomcatの中にあるからコピペしてくればいい
2.4以上ならJSP上でELが普通に使えるようになる
916 :
900 :2008/07/12(土) 12:42:41
>>916 それはひどい
俺は使ったことないけどユーザー数が極端に少ないとか>StrutsIDE
FW用のプラグインってそういうことよくあるから、自分は基本的に使わないな Strutsの設定ファイルなら、EclipseのXMLエディターのアシスト機能で十分だし
>>918 大規模ならstruts-config.xmlを小分けするし、
ましてやweb.xmlを編集することなんて皆無。
小規模なら、ツール使うよりテキストエディタでコピペして
必要か書だけ書き変えるよなあ。
ひさびさ趣味アプリを1からstruts1.3で作ったら文字化けに 悩まされた。@page meta filter すべてUTF-8に統一しているのに、だ。 結果はTomcat5なのにGETでサブミットしていることだった。 たまにはこういうトラボーも経験だな。
Struts1.2+Eclipse3.2+Tomcat5でWebアプリ開発のトレーニングをしています。 struts-blankを元にモゾモゾと弄っていますが、どうにも404エラーが発生してしまい困っています。 エラーには「サーブレットActionが利用できません」とのメッセージだったので、これを元に検索したところ、 どうやらStruts-congfig.xmlの構文の問題などでActionServletの初期化に失敗しているとのこと。 ここまでは見切ったんですが、自分には具体的な問題箇所が見つからないのでご指導ください。 **Struts-config.xml** --action-mapping-- <action path="/Login" name="LoginPass" type="trainAction.LoginPassAction"> <forward name="succsess" path="/index.jsp" /> <forward name="id_not_match" path="/user-error.jsp" /> <forward name="password_not_match" path="/pass-error.jsp" /> <forward name="DB_access_error" path"/db-error.jsp /> </action> --from-beans-- <form-bean name="LoginPass" type="trainForm.LoginPassForm" /> **web.xml** <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
922 :
つづき :2008/07/14(月) 06:49:46
一応これも **server.xml** <Context path="/Struts-train" reloadable="true" docBase="C:¥workspace¥Struts-train" workDir="C:¥workspace¥Struts-train¥work"> <Logger className="org.apache.catalina.logger.SystemOutLogger" verbosity="4" timestamp="true"/> </Context> index.jspとLogin.jspとLoginPassActionとLoginPassFormを作成し、とりあえずここまででサーブレットが動作するか確認しようと 一時的にsuccessのforward先をindexに変え、動かしてsuccessを返す動作を入力しています。 しかし入力が終わったところで404… なにが原因なのでしょうか?
server.xmlのdocBase、workDirのパス指定が\1個になってるんだが…。 そもそも全角になってるのが気になる。
>>921 <forward name="succsess" path="/index.jsp" />
↓
<forward name="success" path="/index.jsp" />
925 :
924 :2008/07/14(月) 19:44:43
Actionに適当にブレークポイント打ってデバッグしてみ? どこでコケてるか分かるぜ。
927 :
921 :2008/07/15(火) 06:22:03
アドバイスありがとうございます。
最終的な問題はsuccessのスペルミスとjspにカスタムタグを使っていないことでした。
なんとか404は脱したのですが、今度はカスタムタグを含めたjspが500エラーを吐くようになってしまいました。
getModuleConfigを読み込みにいったところで"Module 'null' not found"とヌルポを投げている模様。
複数のjspでhtml:linkとhtml:formでそれぞれエラーなので設定がおかしいのだと思うのですが…
作成したソース類:
ttp://ccfa.info/cgi-bin/up/src/up21624.txt どこがまずいんでしょうか?
それと、jspからアクションにリクエストする際の書き方がaction=/LoginだったりLoginだったりLogin.doだったりページによってマチマチなんですが、
どれも同じなのでしょうか?
なんか基礎から全然出来てないと思う。
なんとなく近頃教えてgooっぽくなってるかも。 Strutsへリクエスト投げる場合は全て****.doですよっと。 つか、libの中身空っぽなわけないよな? Eclipseのビルドパスに入ってるんだよな。
>>***.do ですよねー。/Loginとか書いてあるのはなんだったんだろう… ライブラリはWEB-INF直下に.tlbを入れてありますが…
931 :
900 :2008/07/15(火) 23:29:54
(たぶん)原因判明。 そもそも、StrutsIDEがStruts1.2までにしか対応していないのが原因らしい。 だめだこりゃ。 struts-config.xmlエディタとしてだけでも使えないかと思ったが、どうも今ひとつ動きが怪しい。 小分けにしてテキストエディタで書き換えていった方がよさそうだね。 便利だったんだけどあきらめるか>StrutsIDE Struts 1.3に対応してるのはMyEclipseだけっぽいけど、使ってる人いる?
932 :
876 :2008/07/15(火) 23:51:23
以前、文字化けについて教えて頂いた者です。 その後、色々と試してみた結果、OS(winVISTA)のエンコーディングの デフォルトがshift-JISのため、UTF-8でDB登録が出来ていなかったようです。 set names sjisとやったらちゃんと表示されました。 まさかOS側の方に原因があるとは・・・。 いずれにせよ、今回は、このスレの方に大変お世話になりました。ありがとう ございます。現在、諸事情によりstrutsを一人で独学中なので、またお世話に なることがあるかと思います。 そのときは、またレスを頂ければ幸いです。
>>931 Strutsは1.2系がいわゆるこなれてる安定版で今でも一番使われてるよ
1.3では便利な機能がたくさんあるけど ほんの一部消えた機能があったりする
まず問題にならないけど
だから1.2対応ってのはそんなに間違ってない
web.xmlとかの話とは別だから
>>932 set namesはやめといたほうがいいぞ
935 :
876 :2008/07/16(水) 06:15:59
>>934 え、そうなんですか?ほかに対応策とかあるでしょうか?jdbcのurlを
jdbc:mysql://ほげほげ&useUnicode=true&characterEncoding=sjis
にするとかでしょうか?
936 :
900 :2008/07/16(水) 11:08:19
>>933 なるほど、ある程度は納得。非常に便利なんだけどね>StrutsIDE
特に、必要なjarを勝手に引っ張ってきてくれたりするところなんか。
まぁ、もともと手で書くものだと思うことにしよう>struts-config.xml
・・・話は変わるけど、Struts1.2以降で、リファレンス的に使えるお勧めな参考書はあるかな?
「プログラミング Jakatra Struts」はいい本だけど、いかんせん内容が古い。
「 Jakarta Strutsクックブック」を買い足すべきか、他の本も見てみるべきかというところで少し迷ってる。
JSTL以外にも役に立ちそうな情報はあるだろうか?
>>101-107
937 :
デフォルトの名無しさん :2008/07/19(土) 17:59:59
初心者入門スレだなw
画面上でボタンを押すとtextに表示中の値に”さん”を付けて textに再表示されるといった動作をさせたいのですが上手くいきません。 以下にソースを付けますのでどなたかご教授願います。 <%@page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <html:html locale="true" > <SCRIPT LANGUAGE=javascript> <!-- function addItem( obj1 ){ var txt = obj1; if ( txt.value == "" ) return; var test = txt.value + "さん"; obj1.value = test; } --> </SCRIPT> <BODY> <html:form action="/HelloWorld" > <bean:message key="greeting" /><BR> お名前をどうぞ。 <BR><html:text property="name" /><BR> <html:button property="button" value="textの値にさんをつける" onclick="addItem(this.form.name,);" /> </html:form> </BODY> </html:html> 要はjavaScriptで変更した値をtextに表示させたいのですが、上手くいきません。 よろしくお願いします。
もはやStrutsも関係ない
FireBug使ってデバッグしろ
941 :
938 :2008/07/20(日) 19:28:32
自己解決しました。
obj1.value = test;
↓
txt.value = test;
と変更し解決できました。
>>939 様
struts関係ないとの事でjacascriptの関数をもう一度
試行錯誤してみて できました
ありがとうございました
またスレ違い申し訳ありませんでした。
942 :
デフォルトの名無しさん :2008/07/21(月) 12:03:38
ここ1〜2年の間eclipse+strutsで開発しています。 strutsのおかげで可読性は保ちやすくなっていると思うのですが、 書かなければならないお約束が多くて生産性が上がらないように 思います。 例えば画面に項目を追加するためにjspにタグを書いて デザインのためcssを書いてcssを適用させるためにタグに class属性を追記して・・といったような部分に手間が・・ リファクタリングは便利なんですけど。 学習コストは無視したとしてlinuxサーバーでwebアプリケーションを 手っ取り早く作れるツールはないでしょうか? 因みに自分が使った言語では最もてっとり早く作れるのはVB6 ( webじゃありませんが(^^; )で、.netは使ったことがありません(^^;
strutsが生産性最悪なのは有名かと でもcssの話はStruts関係ないかと 生産性が気になるならフレームワークを変えたほうがいい
944 :
デフォルトの名無しさん :2008/07/21(月) 13:54:15
>>942 tag拡張してJSP実装者が細かいこと意識しないですむようにすればよいのでは?
数年前いじりまくったなぁ、かなり。
個人的にはいじりがいがあって面白かったけど
最近のサイクルの早いWEBアプリの開発だと
もうStrutsはきついなとは思った。
Rubyはなんか言語仕様が嫌いなんでRuby On Railsもねぇ・・・
といいつつ最近はSwingばっかり。
WEBは楽で良かったな−
普通はSwingのほうが楽だろうに・・・
Swingの方が色々要望が出るのでキツイかも知れない。 Strus1も2も、自動生成ものがあれば軽いやつはさくっとね。
948 :
デフォルトの名無しさん :2008/07/21(月) 21:34:15
942です。皆様レスありがとうございます! >943さん やっぱり生産性悪いんですね!! (^^; もっとラクできるツールがあれば今後の開発時に検討したいと思います。 >944さん struts1.xを使っております。 >945さん、946さん、947さん 恥ずかしながらtag拡張は使ったことがありません。 勉強します(^^; あとSwingですね、こちらも名前しか知らなかったので・・・ 今後の開発ツールの候補として一度調べてみます! 皆様のご意見参考にさせていただきます。 ありがとうございました!
こんなレベルで検討とか・・・
本人が検討したいんだから、いいんじゃないかね〜
>>949 が検討に値するものを伺ってみたいな。
別人だけどどの言語で開発しても必須のcssと、 開発ツールのEclipseと、Webアプリフレームワークのstrutsを 混同してフォームベースポトペタ開発のVBと くらべてる時点で検討に値しないと思う
952 :
デフォルトの名無しさん :2008/07/23(水) 01:33:49
Strutsの1.2系って、どのJavaのバージョンから動きますか? Java1.3でも動かせますか?
>>950 942のスキルレベルで検討したって検討結果に意味が無いって言ってんの。
ちゃんと検討出来る人間ならある程度自分で探して比較してる。
それが対象がVBですがな、VB厨なのに.NETすら調べてないがな、話にならんがな
つか、Strutsって開発効率悪いか? PHPなら他のフレームワークにも少し触ってるが、それほど開発効率に差があるとは思えんがねぇ。 そりゃタンキで使ってりゃわからなくも無いが、最低Hibernateなり他のO/Rマッパと組み合わせて、少し規模が大きくなればSpringと一緒にってー所だべ? ※S2Strutsって使ってる香具師いるん?(;´∀`) ここまで有名なフレームワークなら、大抵のノウハウはWebに転がってるし。
955 :
デフォルトの名無しさん :2008/07/24(木) 18:01:01
>>954 そこまで劇的に良くなるというものでもないかな。
経験者が多い(だろう)から、教える手間が省ける(と思いたい)と。
…と、甘いこと考えてると酷いケースがあったり。
ウチは規模小さくてもSpring+iBatisをあわせて使ってるなぁ。
トランザクション定義のテンプレXMLが出来てるので、それを使えって感じにしてる。
そういうところは個人的な慣れがあって、オレだけの効率がいい…。
>>955 Strutsのは結局よーわからんかったので、
ウチはSpringのmock使ってる。
個人的にはその方が動作試験作りやすいかなぁ。
サービス試験って位置づけにしたと上に言うと、ウチは納得してくれる。
957 :
デフォルトの名無しさん :2008/07/26(土) 00:56:04
struts2の時はカヌーを使ったな、日本で使ってる奴なんて居るのかな
>>956 >経験者が多い(だろう)から、教える手間が省ける(と思いたい)と。
>…と、甘いこと考えてると酷いケースがあったり。
なにその俺の今やってる仕事。上がStrutsなら楽だ的なのりで素人集団に
何の教育もせずに放り投げたから、JSPにロジック入れまくりだの、
Formはちゃんと使わないだの、出来上がったものは生き地獄ですよ。
ちゃんと扱える人間混ぜとけよ・・・orz
959 :
デフォルトの名無しさん :2008/07/26(土) 19:59:23
960 :
デフォルトの名無しさん :2008/07/27(日) 01:22:16
素人だがStrutsより JSFの方が良いんじゃないの?
>>960 案件しだい
社内用ならそのとおりといえる
>>958 あるある。
結局そのぐだぐだなソースを「リファクタリング」の名の下に修正しないといけない。
リファクタフェーズといいつつ、ほとんどがバグ修正になるんだぜ。
しかしその放り投げられた瞬間にできる予防策っていうと
サンプルコードを大量に作成するくらいなんだろうかね。。。
コピペならできんだろお前ら…?という情けない状態だし、そもそもそんな時間なかったりするけどね。
StrutsとJSFって一応ポジションが違うんじゃないの? ShaleってJSFに最適化されるとかしないとか・・・古い知識でスマソ
JSFって。。。。完全に終了だろ
Strutsしか扱えない土方乙 でもここはJSFの話をするスレではないぜ
>>942 Struts2でzero configuration使っとけ
codebehindも使えば struts.xmlは空っぽでもおk
具体的には
・ActionForm不要
・action-mappingsはzero configuration設定すれば必要なし
・ActionForwardはResultになった
Resultの設定はアノテーションで書くか、codebehindプラグイン入れてファイル名の規約にすれば
アノテーションすら不要
・action-mappingsを一生懸命読むよりもファイル一覧を見た方がはやいし管理も一応できてる
・validation.xmlもアノテーションにして終了
ただOGNLの仕様がでかくてうざい
別の言語作っちゃってどうするのかと
FTLはsimpleテーマ使ってれば回避可能 でも使った方が便利か?
正直OGNL最悪だよね 実行時エラーでやすいし
ELに比べれば100倍マシだろ
あとinterceptorのせいで呼び出しスタックが無闇に深くなるのもウザい あれでパフォーマンス落ちてないか心配だが誰か調べた人っていないんかな。
スレ読んだ。 誰もcodebehindについて触れてなかったのか。オススメっすよ。 Railsみたいな感じになる。CoC万歳。まだexperimentalなのが玉にきずだけど。 上でも言われてたけど、zero configuraitionだと、(codebehindがない場合) アノテーションを使わなきゃいけないから、規模が大きくなると画面遷移を追いにくくなるのは確か。 でもcodebehindを使ってれば、ディレクトリ構造見ただけでaction-mappings程度の情報量があるので無問題。 わざわざ別ファイルにして、ActionForwardとかいって妙な識別子を増やす必要は殆どなかったってことだな。さよならstruts1。 あと注意して使えば dynamic method invocation (クラス名!メソッド名.actionでアクセスできる)も良いよ
971 :
デフォルトの名無しさん :2008/07/30(水) 07:05:52
Struts2は次のバージョンでパフォーマンスアップするんじゃねーの Struts1.x代の資産持ってるとこは引き継げなくて大変だろうけど
972 :
デフォルトの名無しさん :2008/07/30(水) 12:08:49
strutsはまどろっこしくてイライラする
973 :
954 :2008/07/30(水) 14:27:16
>>956 まぁO/Rマッパは好みとして、Springってやっぱ初手でも/規模小さくても使ったほうがいいかな?
「リクエストのたんびにインスタンス作るからスレッドセーフ気にしなくてもいい」ってのは、余計なバグを防ぐ対策にもなるし
※いや、「そんなヘッポコな開発要員使ってんじゃねーよ!」というツッコミは至極御尤もではあるが(;´∀`)
「とにかくこーやってstruts-configとSpringのxml書け。そうすればログは勝手に記録されるから、自分がキャッチしたい例外以外は全部Throwしとけ」
「DAOのメソッドをadd***とかdelete***って名前にしとけば、その前後でトランザクションは制御される。例外出たら勝手にロールバックされるし」
別にインターフェース分離しなくてもいいぢゃん、これだけの為にSpringするのもいいかも。と思い始めた今日この頃。
ま、あまり大規模な開発ぢゃない場合、という大前提は付くだろうけどね。
使いまわさなけりゃならないオブジェクトがそんなにないなら、これでもいんぢゃね? というのは浅はかカナ?
いろいろキモい
Strutsの話か?
976 :
デフォルトの名無しさん :2008/07/30(水) 20:39:56
>>973 springを使いこなせる奴はspringを使うよ
知らない奴は無理するな、火傷するだけ
とはいえ、ひとつの目安として
将来、機能拡張する予定があるならspringは良い選択だよ
978 :
876 :2008/07/30(水) 22:03:40
次スレのタイトルどする?
△△もっとStruts2の良さを教えてください
@ITは定期的にひどいの載せるよね なぜこんなコードを書くのかわかんねーというような しかも違う人が書いても同じところでまったく同じミスをしていると コピペしたのかと疑ってしまう しかし、Eclipseだとセットアップが面倒だね 初心者向き記事ならNetBeansのほうがいいかな Tomcatも内蔵してるし、いきなりプロジェクトの作成からスタートできる
ぱっと見た感じいろいろツッコミどころはあったけど
そこまで酷いというのはわからなかった。
>>980 はなにを
酷いと思ったの?今更struts1の入門記事を隅から隅まで
読むのも面倒だから教えてよ
技術系は編集者が技術レベルについていけてなくて、
著者の勘違いが校正されないまま嘘記事が載るっていうのは
@ITに限らず昔からあると思うんだけど
普通こんなセットアップしないからw 今なら別にTomcatプラグインも要らないし Eclipse for JavaEE Developers落として、 TomcatをServer登録するだけですぐ使える
その程度で酷いとか突っ込むの? devLoaderとかtomcatにしか無い機能もあるし、 WTPの方が高機能だけど重いからtomcatプラグイン を新規プロジェクトで採用する人もいる。 自分がたまたま知ってる事と違うことをやるのは許せない人なんだね
>devLoaderとかtomcatにしか無い機能もあるし、 tomcatプラグインにしか、の間違いね。
>>984 >>983 は
>>981 のNetBeans関連に対するレス
あと、@ITの記事はTomcatプラグイン入れてるのにJavaプロジェクトで構築してるから、
Tomcatプラグインはサーバ起動にしか使ってないぞw
ところでこの記事 なんでアクション&フォーム=サーブレットになってるの? 少なくとも”常識を学んでいこう”という文字が悲しくなるね。 つーか、肝心のサーブレットの設定がなくね? ほかのコード省略してでもこっち載せるべきなのでは?
988 :
デフォルトの名無しさん :2008/08/01(金) 00:25:48
で、Server.xmlにコンテキストの設定を直接書いて、インターネットから参照(笑)
>>988 うは、ひどい
なんか5年位前の記事かと思うようなところが多いな
筆者の会社のサイトリンクあるんでみてみたらIE以外動作が怪しいし・・・
今更もったいぶってstruts1なんかのクオリティ低い記事を書く時点で知れたものっつーか 記事にするならstruts2でそ
>>986 すまんす。勘違いしてた。
>>988 よくこんな細かいとこまで読んだな。吹いたよ。
「インターネットから以下のURLを参照」でlocalhostとか。
この人のインターネットってなんなのか聞いてみたいわ
IEの事だったらパソコン初心者すぎるw
つかさ、前線でバリバリやってる人は忙しくて
原稿なんか書く暇ないし、ライターに期待するのは
紹介記事程度なわけだけど、こんな古いものの
紹介記事なら昔の記事を検索できるようにしといてくれれば
いいだけだし、なにがしたいのかわかんないね。
とりあえずメセナ・ネットコムの技術力がやばい
ことだけはわかった。
@ITは記事が2ちゃんで叩かれると、何の断り文も無しに いつの間にかしれっと修正して、酷い記事が叩かれたことなど 無かったことのようにすることがあるから、今回も要観察だねw
まあ放置するよりはいいんじゃね
>>992 有名なストリームアクセスの問題はずっと放置されてるような
995 :
デフォルトの名無しさん :2008/08/01(金) 05:30:12
996 :
デフォルトの名無しさん :2008/08/01(金) 05:45:18
S
997 :
デフォルトの名無しさん :2008/08/01(金) 05:47:00
t
998 :
デフォルトの名無しさん :2008/08/01(金) 05:48:52
r
999 :
デフォルトの名無しさん :2008/08/01(金) 05:51:37
u
1000 :
デフォルトの名無しさん :2008/08/01(金) 05:52:29
t
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。