- 1 名前:デフォルトの名無しさん [2006/12/30(土) 18:05:08 ]
- Apache Strutsフレームワークについて語るスレ
前スレ △△まだまだStrutsの良さを教えてくださいSession4 pc8.2ch.net/test/read.cgi/tech/1109465052/
- 652 名前:☆Visual C++ Runtime Libraryってエラーが出てネットゲーム強制終了 [2008/03/02(日) 20:03:10 ]
- ネットゲームを2時間くらいやるとやってる途中にimepita.jp/20080301/780070のようなエラーがでて、
強制終了されます。どうしたらよいのでしょう。 厨房なので、ぐぐっても全くわかりません。 どなたかご存知の方教えてください
- 653 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 20:46:19 ]
- スレ違い
- 654 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 01:59:32 ]
- 教えてほしいのですが、
WebLogic Workshopを使わずに、EclipseでWeblogicとStrutsの連携をどうすれば良いですか? Weblogicは9.2です。
- 655 名前:デフォルトの名無しさん [2008/03/08(土) 19:57:23 ]
- WebLogic® Server Toolsを使え
https://dev2devclub.bea.com/updates/wls-tools/
- 656 名前:デフォルトの名無しさん [2008/03/11(火) 03:40:54 ]
- 質問なのですがstruts-config.xmlのactionのforwardエレメントに
プレースホルダーとかって使えないんですかね? <forward name="success" path="/${0}/test.html"/> こんな事がしたいんですが知っていたらご教授お願いします。 環境はstruts1.3です
- 657 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:48:37 ]
- 知らないけど、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 ]
- 同じクラスのフォームビーン使うようにすればいいんじゃない?
- 660 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:48:40 ]
- bがrequestにもsessionにもいないんでしょ。
- 661 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 13:14:43 ]
- JavaAppletとStruts2のアクション間で非同期通信したいんだけど、
フレームワーク内部でInputStreamが読まれており、アクションで取得できません。 なんかいい方法ない?
- 662 名前:デフォルトの名無しさん [2008/03/24(月) 20:52:21 ]
- これまた理解力を発揮しがいのある質問文ですねage
- 663 名前:デフォルトの名無しさん mailto:sage [2008/03/24(月) 22:58:48 ]
- 文字列化してリクエストパラメータの一つに
してしまえば良いんじゃね?
- 664 名前:デフォルトの名無しさん [2008/03/25(火) 04:41:48 ]
- Appletはyesterdayの技術だけど、セキュリティ絡みでAppletに逃げる奴多いな
- 665 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:24:48 ]
- FlexとかSilverlightには逃げないのですか?
- 666 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 12:04:28 ]
- 既存スキルを生かせるのは強いよな。
あとシリアライズしてオブジェクトの受け渡しができるってのも強みか。
- 667 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 05:12:06 ]
- Java Web Startでええやん
- 668 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:16:15 ]
- >>666
日本語でおk
- 669 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:30:34 ]
- シュワシュワワワシュワワシュワ?
- 670 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 20:31:00 ]
- Struts2で、struts.xmlの一部をこんな感じ可変にできますか?
<result name="success">/○○.jsp(login.jsp等)</result> 可能であれば、どうやって値をセットすれば良いかご教授ください。
- 671 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:31:19 ]
- <result name="success">${ '/' + page + '.jsp' }</result>
getPageって言うメソッドをアクションに作ってそこで適当な "login" とか返してあげればOKだよ まあ、login とかを処理したいのならアプローチが間違ってるけどね
- 672 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:28:16 ]
- >>671
ありがとうございます! 確かにloginは処理しないです; 本当に助かりました。明日早速試してみます。
- 673 名前:671 mailto:sage [2008/04/14(月) 23:37:09 ]
- いえいえ。
差し支えない範囲でどんな使い方をするのか教えて!
- 674 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:50:48 ]
- >>671,673
うーん、きっとまたアプローチが違うって突っ込まれそうですが・・・ 帳票をPDF形式で出力させます。 PDF名が固定だと、複数ユーザが同時に出力しようとした場合に 不具合が起きるんじゃないかな?と考えて、PDF名+時間とかをくっつけて 出力しようとしていました。
- 675 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:56:07 ]
- そんなことできるの?
- 676 名前:671 mailto:sage [2008/04/15(火) 00:02:23 ]
- むむむ。resultのDispatch先の名前はURLに出てこないから関係ないのでは?
たしかに突っ込みたいです ^ ^ まあガンバッテ。 ${ } の中に書いてあるのはJSPに書くのと同じOGNLでValueStackも同じだから色々できるよ
- 677 名前:674 mailto:sage [2008/04/15(火) 00:02:34 ]
- PDF作成とresult部分は固定でなら実現してます
(PDF作成にはbirtを使用) なので、多分出来ると思います。 ただ、このままだとPDFがサーバにわんさか作成されちゃうんですよね。。 タイミングを計って、PDFを削除しなくてはならなくなっちゃいますね。。 ダウンロードではなく、ブラウザにPDF表示させなくちゃいけないので こんな面倒なことやってます。
- 678 名前:674 mailto:sage [2008/04/15(火) 00:05:44 ]
- 追記で・・・
PDFは、画面の選択条件から動的に作成しています。 突っ込み大歓迎です!もっとスマートなやり方があれば 是非乗り換えたいです!
- 679 名前:671 mailto:sage [2008/04/15(火) 00:17:36 ]
- application/pdf のコンテンツタイプのhttpヘッダーでpdf内容そのまま出力すればいいんでないの?
一時ファイルはいらないと思うんだけど。birtも知らないし勘違いだったら失礼。
- 680 名前:674 mailto:sage [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なんですが・・
- 682 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 19:35:05 ]
- よろしくお願いします。
Struts2のインターセプターで、RequestAware、ApplicationAwareというのは どんな時に使えば便利なのでしょうか?
- 683 名前:682 mailto:sage [2008/04/16(水) 19:40:01 ]
- すいません、スコープというものを分かっていませんでした。
というか、スコープの説明を見てもピンときません。。
- 684 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 21:05:25 ]
- >>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の値を取れたりするのでしょうか? 色々調べてみたけれどよく分かりませんでした。 もし、方法があるのならご教授ください。
- 686 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 18:25:42 ]
- Struts2のプロパティファイルをpropertiesではなく、
XML形式で記述できますか? やり方がわからなかったんですが、できそうな気がするので。。 今は自分でjava.util.PropertiesのloadFromXML使って XMLを読んでますが、もっと簡単にできないものかなと。。
- 687 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 18:28:12 ]
- 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 mailto:sage [2008/05/13(火) 11:04:20 ]
- 自己解決しました。お騒がせしました。
- 690 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 22:40:26 ]
- >>689
情報量がゼロの書き込みはしなくていいよ。 首くくって死ね。
- 691 名前:デフォルトの名無しさん [2008/05/13(火) 22:40:51 ]
- 今日の恥ずかしい体験を心に刻め
その気持ちが貴方を育ててくれるハズ...
- 692 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 03:27:41 ]
- >>690
ところで、おまえのその書き込みは情報量がゼロじゃないのか? 首くくって死ね
- 693 名前:デフォルトの名無しさん mailto:sage [2008/05/14(水) 19:32:31 ]
- >>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 よろしくお願いします。 ml.seasar.org/archives/operation/2008-March/003758.html
- 695 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:12:48 ]
- >694
スレ違い
- 696 名前:デフォルトの名無しさん [2008/05/17(土) 13:46:12 ]
- strutsをベースに業務フレームワークを作る仕事を担当する
かもしれません。オススメな書籍って何かありますか?
- 697 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:20:54 ]
- 今頃そんなことする会社は辞める
- 698 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:38:55 ]
- >>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やアノテーション)が少ない方法がいいのですが 何かまとめて設定する設定方法は無いのでしょうか?
- 700 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:09:13 ]
- struts2で<s:textfield...に属性を追加しようとしています。
struts2のTextFieldを派生したクラスを作って、 独自のTextFieldTagから呼び出してaddParameter()を呼び出してるのですが、 生成されたhtmlにこの属性が反映されていません。 デバッガで追って、Component#addParameter()で拡張属性が parameterにputされてるのは確認したんですが、なにがいけないんですかねえ。 ちなみに追加しようとしているのはistlyle等です。 今更ながらstruts2を使ったことを後悔
- 701 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:21:19 ]
- ftlのテンプレートに書かれていないんじゃないの?
てか componentタグでスクラッチから出力した方が面倒なくね?
- 702 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:34:25 ]
- 一応TextFieldの派生はやめてUIBeanの派生でやってみたんだけど
同じ結果だった。Componentからスクラッチだと属性多すぎない? 今ftlをググリ中
- 703 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:40:43 ]
- 全部の属性インプリする必要あるの?
ftlは出力テンプレートの拡張子ね 多分 templates/simple/text.ftl
- 704 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:46:20 ]
- それは見つけたんだけど、
自分で属性を追加したい場合に参考になるURLとかある? とりあえずクラスパスにおいてみたんだけどどうにもならん。 そりゃあ全部の属性は必要ないんだけど、後でcssStyleとか 必要になってから困るのも嫌だし。textfieldかUIBeanの派生にしたい。 というか、s2タグやめたい
- 705 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:49:47 ]
- よくみんなこんな設定ファイルやアノテーションの海を泳いでいられるな
なんかまだスパゲッティコードの方が順番に処理が負えるだけマシな気がしてきた
- 706 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:52:07 ]
- 判っちまえば、こんなパラダイスねーけどな
- 707 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 02:00:38 ]
- 俺には無理っぽいからComponentから自作することにする。
自作するときはページレンダリングなんて一種類しか使わないし、 ComponentTagSupportとComponentに分かれてるより、 JSTLのdoStartTag()でゴリゴリ書く方が楽じゃね?
- 708 名前:701 mailto:sage [2008/05/20(火) 02:11:40 ]
- Componentを拡張して。。って話じゃないよ
それなら textfield拡張したほうがいいでしょ 俺のは s:component タグの話ね、念のため
- 709 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 02:17:53 ]
- どっちもorg.apache.struts2.components.Componentじゃないの?
とりあえずそこから最低限の機能で作って行ってるんだけどmaxlengthとか labelとかやっぱりいろいろ要りそうだなあ。 onXXX系を除いて、ftlを使わない方法で実装し直してる感じ。 すごおおおおおく無駄な気がする。
- 710 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 02:44:52 ]
- >>706
パラダイスっていうならftlの追加方法教えてくれよ(泣 >>708 そのtextfieldの拡張の仕方がわからんのでつまづいとるんだわ
- 711 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 13:08:19 ]
- そうそう、画面遷移の変更はそんなにないだろうし、
Actionのアノテーションに遷移書くようにすれば ソース変更もそのActionだけにすることが可能で、わざわざ設定ファイルをいじらんでも。。ということだよね。 しかし未だにアノテーションで記述できずに、struts.xmlに書かないと動かないのもある。 そういえば、この前小規模案件のキット作り頼まれて、 「Strutsって設定ファイルの競合とか大変なんですよー」と泣きつかれたのを受けて、 可能な限り設定ファイルを分割+SubVersion管理にして競合起こさないようにしたら 今度は「ファイル多すぎですよー」とかくらいしか文句出なかった。 小規模でも分割大事だね。
- 712 名前:デフォルトの名無しさん [2008/05/21(水) 23:12:02 ]
- iFitって使ってる人居る?
- 713 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:51:45 ]
- 何だっけ?
東京方面で使わされるヤツだっけ?
- 714 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 01:01:13 ]
- struts2で<a href="...にactionのURLを入れたい時ってどうするの?
<a href="<s:url action="input" />">aaa</a> こんな風にHTML属性の値の中にsタグ入れるのはかっこわるすぎるよね。 <s:a>タグをみててもわからないんだけど
- 715 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:01:31 ]
- struts.apache.org/2.x/docs/a.html
<s:url id="url1" …>で遷移先つくって <s:a href="%{url1}"> JSP2.1使ってたら無理。
- 716 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:41:53 ]
- >>700
ちょっと時間があったのでやってみたんだけど ftlを変更、tld追加したら、今度は追加した属性のsetterが見つかりません、、と嫌になるねぇ。
- 717 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 14:04:37 ]
- さんくす
英語のドキュメントも最後まで読まないといかんな
- 718 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 14:06:34 ]
- >>716
そこまで来たらTextFieldの派生クラスにその属性のsetter/getter 用意するだけじゃないの? ftlを変更ってstruts2のjarの中のファイル? 自プロジェクトで新規にftlファイルを作って、 それを読み込ませる方法がわからないんだけど
- 719 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:07:28 ]
- struts2を使っています。
画像表示とかのアクションで、使用してるライブラリの関係上 responceに対して直接書き込んじゃうのでjspに 遷移したくないんだけど、こういう時はどうするのがstrutsらしいの? とりあえずアノテーションで @Result(name = "success", value = "") としておいて、 return SUCCESS; してみようかと思うんだけど。 アクションにしないで直接サーブレットにすべきなのかな。
- 720 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 06:19:37 ]
- return NONE;
にしたらできた。 Actionインターフェースみたらわかった
- 721 名前:716 mailto:sage [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 mailto:sage [2008/05/24(土) 12:21:49 ]
-
ftl textareaタグの中であればどこでもいいので、 <#if parameters.{属性名}?exists> {属性名}="${parameters.{属性名}?html}"<#rt/> </#if> を追加 tld: 既存Struts2TLDを一部拝借(textareaのtag要素から引用+istyle属性分の定義を追加。) JSP&web.xml 追加したStrutsタグを宣言 順番にないものを潰していくだけなので難しくはないんだが… 激しくめんどくさいな〜。 書いてて思ったんだが、拡張のサンプルソースキット提供の方が判りやすいね。
- 723 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:14:30 ]
- >>721
サンクス。ググったけど自分で拡張する方法が見つからなかったんだよね。 ftlで定義した"extend"をどこで使うのかと思ったけど UIコンポートネントクラス#getTemplateDir()かgetDefaultTemplate()で return "extend"しないと駄目だよね? しかしこの面倒くささは、将来違う人が保守することを考えると導入をためらうね。 普通のstrutsタグですらJSTLにすべきか悩んでたのに
- 724 名前:デフォルトの名無しさん [2008/05/24(土) 19:10:37 ]
- Frameworkの高機能化が進むと、拡張作業は複雑化せざるを得ないのかもね
- 725 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:45:41 ]
- >>699
@Resultも書きたくないってこと? それなら@Namespaceかなあ @Namespaceをpackageで一括指定することは可能だけど 各Actionで@ParentPackageは必要。 でもこれはまっとうなアプリ作ってれば定義してるよね。 @Namesapceを"/a"にすると actionへのアクセスも/a/XXX.actionになる。 jspは/a/XXX.jsp さらにjspのトップディレクトリを指定する方法はなんかあるのかなあ
- 726 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:05:36 ]
- ちょっと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を置くのが普通なのかなあ
- 727 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:25:05 ]
- >>724
というかまだ過渡期だから、進化の方向がちょっと間違ってると思うよ。 暗黙の了解が多すぎるのはグローバル変数多用と同じ害がある。 あれだって、どんなグローバル変数があるか、値を変更するときの ルールはなにかっていうのが明確になってれば問題は無いわけだけど、 変数が多くなってくるとそうもいかない。 struts2ではWorkflowInterceptorでexclude宣言したメソッドなら validate()が呼ばれないからinput()では呼ばれないけどexecute()では 呼ばれる。ほぼすべてのActionでの共通機能だから一カ所に 定義できて確かに便利。でもValidateInterceptorとの関連はどうで、 doExecuteValidate()を実装したらexecute()専用のvalidate処理が定義できて、 execute()直前のアノテーションでも定義できて、各フィールドでも定義できて・・・ っていうルールをすべてのアクションの開発者が知っていないと ソースの解読すら大変、っていうのはちょっとね。 Java経験豊富でもstruts2経験の無い人に、このアクション修正してって 頼む前に教えないといけないことが多すぎる。
- 728 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:52:35 ]
- >>726
俺はWTP捨ててノーマルEclipseとMaven2でやってるよ。 普通にデバッグもできるしな。 WTPって長い歴史の割には未だになんかいまいちだし。
- 729 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 04:11:26 ]
- >>715
auのケータイがCacheコントロールを無視するので、毎回アクセスするURLが 変わるように<s:url>を拡張してdoEndTag()で毎回ユニークなURLに なるようにパラメータつけてたんだわ。これなら戻るボタンの時に 通信発生しないで快適だし。 でもその独自パラメータもidに含めるためには、textareaみたいに テンプレートから拡張しないといけないのかなあ
- 730 名前:716 mailto:sage [2008/05/25(日) 10:18:52 ]
- >>728
こういう手もある。 Maven2でWebキット作成→さらにmaven2でWTP用プロジェクトを生成する。 デバッグ作業や稼働確認が簡単にできるのでウチではWTPは重宝してる。 >>729 一回作ってしまえば、後は悩まず作れる…調べるのが面倒なんだよね。 修正箇所が多いのがめんどいだけ。 しかしsタグ(sxタグ)拡張して便利になるのを作ろうとすると大変だねー 慣れなのかな、やはり。 ちなみに、ウチでは、JSTLとStruts1タグ、JSP2.0をごっちゃにしちゃってる人がかなり多い。 その上、Struts2タグ+OGNLなんか出てくると、 「今度は一体どれで書くのが正しいんだ!」ってなってる人多いよ…
- 731 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:13:09 ]
- 今、プロジェクトでstruts2+springを提案されてて、
試しに作ってみたんだが、どうみてもseam(JSF+Ejb)の方が使いやすいんだが seamと比べてstruts2のメリットってなんだ?
- 732 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:23:31 ]
- Strutsという名前
- 733 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:25:12 ]
- まあ、名前だろうだろうな。
seamの方が使いやすいとは漏れも思うよ。
- 734 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:42:03 ]
- >>732 >>733
名前だけかORZ...
- 735 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:07:39 ]
- 新規開発案件でもまだStruts?
ポストStrutsの決め手がない現状では仕方ないのかな・・・
- 736 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 11:05:06 ]
- >>730
OGNLやValueStackで任意の変数にアクセスして、 <s:property id="">で埋め込んだりするくらいなら スクリプトレットでよくね?JSTLで基本的な整形をして、 拡張が必要なときだけスクリプトレットで値をいじってから JSTLに渡す、みたいな。 taglibに限定するメリットって 1.ソースが見やすくなる 2.ビジネスロジックが紛れ込むのを排除できる っていう2点だと思うんだけど、教育コストに見合わないよ。 へぼいPGの場合は2に限らずコードレビューしてプロジェクトの ルールに則ってない場合は手直しさせるから、jspだけそういう 制限があったところで大差無いし。
- 737 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 11:06:47 ]
- >>731
「どうみても」なのはseamに慣れてるからじゃないの? WebサーバーとAPサーバーが分かれてるプロジェクトで seam導入しようとしたとき、アノテーション地獄でなかなか 理解できなかったよ。便利そうとは思ったけど。
- 738 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 11:36:10 ]
- JSP&Servletが最強です。
- 739 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 03:13:47 ]
- struts2のタグで、値をDoubleで持っていてjspで
DecimalFormatでフォーマットして出力するのはどうするの? <s:property id="">で代入して表示? みんなはActionで文字整形までやってるわけ?
- 740 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 13:06:10 ]
- jstlで
- 741 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:31:29 ]
- こんなのを見つけた
ttp://www.toshiki.net/x/modules/wordpress/index.php?p=81 後々のメンテを考えたらJSTLの方がいいと思った
- 742 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:00:37 ]
- >>737
確かにseamには慣れてるけど、比較対処が簡単なlogin画面で明らかにコーディング量が違っていたよ。DBアクセスの為のBean作成やログイン後の情報を保持する部分とか。 struts2に慣れればもっと良い書き方が出来るのかもしれないが アノテーションはXML地獄よりは確実にましだと思うんだけどな 確かにおっちゃん連中はついて来るのが大変そうだった
- 743 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 23:08:47 ]
- DBアクセスはstruts2/springの範囲外だからそこで比べても。
アノテーションとxmlは一長一短だけど、そこそこの複雑さの場合は アノテーションの方が記述が分散する分学習が面倒だと思う。 xmlでいろんなライブラリ導入してxmlファイルがあちらこちらに あってそれぞれの役割がよくわからないのが一番ひどいけどね。 アノテーションなら定義クラスにすぐアクセスできるけど (Eclipseとか使って無くてもimportとアノテーション名を見ればわかる)、 xmlだとそもそも誰が読んでるのかすらわからないし
- 744 名前:デフォルトの名無しさん [2008/05/27(火) 23:53:30 ]
- >>742
ログイン認証処理なんて、spring security使えば楽チンだよ
- 745 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 01:44:58 ]
- Strutsと直には関係ないだろうけど、オマイらメールのテンプレート処理とかなに使ってやってんの?
- 746 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 01:54:25 ]
- >>745
自前でstr.replaceAll(key,value)
- 747 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 01:55:22 ]
- 駄目だ。struts2のタグは応用効かなさすぎ。
俺はstruts2をやめるぞジョジョォォォオオオオオ
- 748 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 01:59:03 ]
- >>747 そ、、、、そうかー???
使う側の応用力の問題ジェネーーーーーーーーノーーーーオオオ
- 749 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 02:00:39 ]
- てかOGNLって何でも出来すぎてあとでメンテで困るんじゃねーー
って感じなんだけど。
- 750 名前:747 mailto:sage [2008/05/28(水) 02:51:58 ]
- ValueStackはうまくいってるときは便利で強力だけど、
「望みの値が出ない」ときにどこが間違ってるのか検証するのが面倒。 struts2のComponentTagSupport系のタグだと処理が追えない。
- 751 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 20:36:17 ]
- ajaxとstrutsの相性ってどうなんですかね。
styleId属性使うんだろうけど。
- 752 名前:デフォルトの名無しさん [2008/05/28(水) 22:24:38 ]
- 名前忘れたけど、選択リストが複数出てくるGUI部品は内部でAJAX使ってたよ
|

|