[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/18 15:43 / Filesize : 258 KB / Number-of Response : 938
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

△△もっとStrutsの良さを教えてくださいSession5



1 名前:デフォルトの名無しさん [2006/12/30(土) 18:05:08 ]
Apache Strutsフレームワークについて語るスレ

前スレ
△△まだまだStrutsの良さを教えてくださいSession4
pc8.2ch.net/test/read.cgi/tech/1109465052/

411 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 23:17:01 ]
>>410
うーん、JSFとかの方が1から作るなら生産性は高いんだろうけど
慣れたStrutsと慣れないJSFでどっちをとるか?というと今のところStrutsを選んでしまう

Springは…正直、Strutsで何十も画面を作ってからでないと、
Strutsの何が駄目なのか?なぜDIが登場したのか?DIだと何がうれしいのか?
があまり理解できないと思う。
そういう意味での流行は終わったのかもしれないが、使われてないことはないぜ

412 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 23:42:17 ]
>>411が一番SpringもStrutsもわかってないなw

なぜStrutsとSpringが同じレイヤーで語られるんだよwww


413 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 07:45:44 ]
一瞬最近の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一覧を取得する方法はありますか?
可能なら教えてください。


415 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:15:11 ]
xsltでも使えば?

416 名前:デフォルトの名無しさん [2007/11/03(土) 13:17:48 ]
標準の方法でお願いします。
標準外のライブラリの追加は認められないので・・・

417 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 14:00:21 ]
javax.xml.transform.*を標準外と申したか

418 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 17:10:34 ]
稼働中のシステムでpathを取得する必要があるのか?
ツールの類にまで「標準外は駄目」とかあるのか?
jakartaのライブラリ類なんかも使えないのか?
そもそもstrutsが「標準外」じゃないか?

419 名前:デフォルトの名無しさん [2007/11/03(土) 17:43:13 ]
>>417
ごめんよく知らないからxsltをぐぐったら何か追加しなきゃだめだと解釈した

jdk1.5とstruts1.3.8に入っているもの意外原則駄目。
唯一の例外はojdbc14.jar


フィルタからactionのプロパティ取得は普通のやり方じゃ無理ってこと?



420 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 17:54:50 ]
>jdk1.5とstruts1.3.8に入っているもの意外原則駄目。
>唯一の例外はojdbc14.jar

アフォじゃねーか、と思う環境だな。

421 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 18:45:37 ]
>>420

なぜアフォなんだ?
ある程度縛りも必要と思うが。

422 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 19:03:12 ]
>>421
どこが「ある程度」なの?

423 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 19:11:17 ]
>>419
それ酷すぎないか?w
DBアクセス周りとかトランザクション管理とか全部自作?

424 名前:デフォルトの名無しさん [2007/11/03(土) 19:45:05 ]
ojdbc14.jarは使うんだって
トランザクションはsqlで吐いてする予定。
DBアクセスの自作ライブラリ作るのはそんな苦にはならないし
※リクエストをまたがってのトランザクション制御が出来るかはまだ未検証(出来ますか?)

>>420
業務のシステム開発にはいろいろしがらみがあるんだよ
趣味みたいに好き勝手自分だけの裁量では出来ない。
新しいライブラリを使うためには、
その根拠などの諸々を上や客に説明し説得する必要がある。
正直めんどくさいから、標準で出来ることだけで済ましたいんだよ。


425 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 19:51:04 ]
携帯からなので書くのがめんどくさいから「できる」とだけ答えておく。


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
待ってますので方法教えて下さい。
お願いします。

月曜に会社いくまでテスト環境はないので
月曜に試したいと思います

428 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 21:01:07 ]
>その根拠などの諸々を上や客に説明し説得する必要がある。
>正直めんどくさいから、標準で出来ることだけで済ましたいんだよ。

その程度の事を説明できない無能だから、アフォ扱いされてんだと思うが。
漏れもアフォだと思う。

429 名前:デフォルトの名無しさん [2007/11/03(土) 21:31:23 ]
元々アフォ扱いされてるのは環境じゃね?
俺をどう思おうが勝手だけど、その行が本気で理解できないのなら
もう少し世の中を知った方がいいと思う
皆が上や客に恵まれていたら、この業界ブラックとか言われないよ
道理の通じない奴は間違いなく存在するんだから

まあ、俺も昔はそんな風に思っていたから言えるんだけどね



430 名前:デフォルトの名無しさん [2007/11/03(土) 21:35:42 ]
>>425以外でも、分かる人いたら教えて下さい。
方法一つとは限らないし。

知ってる人なら簡単な類のコードなのかと思っていたけど
案外難しい事なのかな??

431 名前:デフォルトの名無しさん [2007/11/03(土) 21:35:59 ]
いるよなー。
自分の実力&実績不足を環境や客の性にするヤツ。

50代の保守何十年のCOBOLerが同じ事言ってるの何回か聞いたことある。

432 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 21:40:43 ]
>>427
Digesterを使えば?Struts自身がstruts-config.xmlを読み込むために
使用しているので、標準外ということはないはず。

気持ちわからんでもないが、Stuts以外のJakartaも駄目つうのはなんとか
すべきじゃないの。上から下までアフォばかりという印象...。

433 名前:デフォルトの名無しさん [2007/11/03(土) 22:02:17 ]
>>431
まあ、初javaで知識も実績もないから仕方ない。

普段お金の意識してないと分かんないかも知れないけど、
知らない技術をプレゼンする為には調査検証が必要だが、
そこにあんまりお金はかけさせてもらえないんだ。
客から取る金は決まってるからね、無限じゃない。

>>432
Digesterぐぐってみます。
Stuts以外のJakartaを説明するだけの知識が付いたら何とかしたいですが
まだ、それだけの知識ないんで・・・精進します



434 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 22:12:39 ]
>>433
んな出来ない言い訳で実装コスト増やしてどうすんだよ・・・
実装のほうが金かかるんだよ。
Struts通ってるんだからStrutsで使ってますのでとか適当に言っておけばいいのにw

435 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 22:14:43 ]
Not Invented Here症候群は、洋の東西を問わずSIerの宿痾だ。彼だけを責めることはできないな。

436 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 22:20:52 ]
.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>
あとこういうのも

438 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 22:33:21 ]
けど、XML解釈は素のDOMかSAXなんで、もっと便利なものが欲しいとNDigesterが欲しくなったり、
ログ出力自作するのがメンドイと、Log4netに手を伸ばしたくなったり、
テスト駆動したいからとNUnitが手放せなかったりと、
そういうことはある。

439 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 22:41:14 ]
>>437
なんでもござれ。受け側のクラスの作りにも寄るけど、SetPropertiesRuleが使えるかな。
Digesterは、頑張ればCallMethodRuleで何でもできるよ。
そろそろスレ違いのような気がするけど、Commonsスレはdat落ちしたから他にいいスレもないね。



440 名前:デフォルトの名無しさん [2007/11/03(土) 23:00:15 ]
OK ちょっと月曜日いっぱいくらいそっち方面の検証してみます。
ありがとうございました。

ただ>>425の情報は引き続きお待ちしておりますw

441 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:40:40 ]
xpathでとれるだろ。javax.xml.xpathだ。

でも、その環境なら、JDK1.4.2ってオチがありそうだな。

442 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:41:50 ]
まぁ >>424 の言う気持ちもわかる。
おれが今まで経験してきた案件でも、追加の jar を入れさせてくれないこともあったり、
入れさせてもらうために資料を作ったり、その検証のためにプログラムを大急ぎで作ったりしたもんだ。
ただ客は馬鹿だから、 >>434 のように適当に言っておいたり、
「OSSで世界中でテストされたプログラムと、これから一から作るプログラムと、どちらが信頼性があると思いますか?」
と言ったりすると納得してくれたりすることもある。
OSS = 品質が高いは、多少の相関はあってもイコールではないけどね。

ただむかつくのは、>>440 のように、待ちの姿勢であることだ。
いま土日だろ?
> 月曜に会社いくまでテスト環境はないので
チームが2日も止まってくれているんだから家でテストコード書いて試せばいいじゃん。
struts と commons 落としてきてごそごそやればいいだけじゃないか。
おまえそんなんだと今後成長しないぞ(伸び代ないぞ)



443 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 23:57:27 ]
>>438
.netならXML周りは読みXPath, 書きDataSetで十分
Log4net, NUnitは同意
StrutsConfigエディタもほんと楽に作れるしなw

スレチすまん

444 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 00:14:06 ]
ActionPathの一覧なんてActionConfigだっけか?そんなクラスから取れただろ。

つまり440はアフォでヘタレでカス

445 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 01:35:32 ]
org.apache.struts.util.ModuleUtilsあたりなら、Filterからでも取れるんじゃなかったっけ?
っていうか、昔似たようなことやった覚えがあるけど、Struts本に普通に書いてあったと思うけどな

446 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 01:54:04 ]
ActionConfig見た限りだと、pathはいけるけど、set-propertyの値取れる
ように見えないんだが。方法あるのかな?

447 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 08:41:32 ]
set-propertyってActionMappingの継承クラスにプロパティセットする為のものだっけ
キャストして取ればいいんじゃね?
それかBeanUtils使うとか

448 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 10:00:26 ]
doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
上のオブジェクトから
ActionConfig
ModuleUtils
これらって取れた?

449 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 13:13:37 ]
>>440
の状況は遭遇したことあるわ。ぶっちゃけ客や会社による。

俺?Strutsすら使わせてもらえない、いかれた設計思想の自社フレームワークつかって開発ですよ。
Strutsは実績が十分すぎるほどあるが、
俺の会社ではこのフレームワークがStrutsの実績よりも重視される。

それでもいつか、使うときのためにネットにつなぐたびこのスレをチェックしてるんだ。
いつか自分も悩むかもしれない問題の解決策があったなぁと思い出せるために。
ROMてるだけの俺だが、アフォだのCOBOLerを引きあいにだした書き込みはちょっと萎える。
仲良くStrutsの良さを教えてあげればいいジャマイカ



450 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 16:08:20 ]
つか、そんなに信頼性やら実績重視で使うライブラリに制限があるなら、
最初からIBMからWebSphereでも買ってその上でStrutsとかJSFで実装すればいいだろ。
IBMのパッケージならロガーやらUnitとか最初から全て入っているし
困ったらサポートに泣きつける。

それこそ趣味じゃなくて仕事だったら金出してサポート受けろよ、って希ガス。

451 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 17:02:24 ]
>>448
StrutsのJavaDoc嫁

452 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 17:23:42 ]
>>449
> 俺?Strutsすら使わせてもらえない、いかれた設計思想の自社フレームワークつかって開発ですよ。

どっかの電力会社でそんなのあったなぁ。

453 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 17:28:53 ]
>>449
>業務のシステム開発にはいろいろしがらみがあるんだよ
>趣味みたいに好き勝手自分だけの裁量では出来ない。

>もう少し世の中を知った方がいいと思う

>月曜に会社いくまでテスト環境はないので

こんな事言う質問者なんて2ch以外でも相手されないぞ?
2chと思えない位このスレの住人は優しすぎる

しかし、なんで>>414はこんなに上から目線なんだ?技術力も交渉力も質問力も無いのに・・・

454 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 17:50:23 ]
釣れますか?

455 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:40:19 ]
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ドキュメント眺めてればこんなのすぐにわかりそうなものだけどな・・・。


456 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 01:45:32 ]
すまん。ActionCoofigはActionConfigsと読み替えてくれ。

457 名前:デフォルトの名無しさん [2007/11/05(月) 18:23:41 ]
>>455
ありがとうございました。
おかげ様で希望の動作をさせることが出来ました。


458 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 22:16:04 ]
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の使い道をまちがえているのでしょうか?

459 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 23:15:48 ]
unspe何とかってメソッドが呼ばれるんじゃなかったか?



460 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:27:48 ]
たしかに最終的に DispatchAction#unspecified() に処理が移り、
DispatchAction#unspecified() のなかで throw new ServletException(); されてますね。

そうか、これをサブクラスでオーバーライドすればいいのか!! ピコーン(AA略
たしかにこのメソッドの javadoc コメントにも
「DispatchAction のサブクラスは、リクエストパラメータが見つからない場合の挙動を変えたければ
 このメソッドをオーバーライドしなさい」
といったことが書いてありました。

ソースを追いかけていたけど、javadoc コメントは英語だったのでスルーしてました。
ちゃんと javadoc 読まないとダメですね。

>>459 さん、ヒントを与えてくださってどうもありがとうございました!!
これですっきりして眠れます。

461 名前:デフォルトの名無しさん [2007/11/06(火) 17:00:43 ]
struts2でアップロードしたファイルで拡張子ごとのコンテンツタイプの
早見表などが載っているサイトなどがありませんでしょうか?

462 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 00:07:07 ]
JSF使えば1画面複数ボタンがチョーーーーーーーーー楽なのにね

463 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 00:11:55 ]
>>461
apacheのmime.types?

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以前のアーカイブの入手方法がわかる方、ご教授いただけないでしょうか。

466 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:31:39 ]
HTMLで、「あなたの年齢を入力してください」みたいな <html:text> のフィールドがあったとします。
数字での入力を期待しています。
ActionForm では、setAge(Integer age) みたいに Integer 型の属性としました。

ただしテキストボックスにはアルファベットも入力できるわけですが、数字以外を入力した場合、
NumberFormatException とか出ずに、ActionForm の age には 0 が代入されています。
未入力の場合も null ではなく、0 が代入されています。

しかしテキストボックスに未入力の場合と、0が明示的に入力された場合を区別したいです。

いろいろググって見ると、そういう場合は属性を String にするしかない(基本的にStringしか使えない)とありますが、
 例: blog.goo.ne.jp/glass-_-onion/e/cfc190c41d931bf3020719e7d724cf79
そういうものなのでしょうか?

>>465
Struts 2.0 はまだ出たばかり。1.x と 2.x は別物。
1.2 以前がほしければ、
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の解説を読みながらやってたんですがバージョンの違いでつまずいてしまって・・・
かなりの初心者なんで、ちょっとした違いでも対応するのに時間がかかってしまう為、
古いバージョンで解説どおり動くかどうか確認したかった次第です。

469 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:55:57 ]
>>466
scriptで処理する以外はStringしかないかねぇ・・・



470 名前:466 mailto:sage [2007/11/09(金) 01:09:56 ]
レス下さった方、どうもありがとうございます。
5年前に 1.0.1b だったかな? を使っていたのですが、そのときの記憶がよみがえってきました。
String にするかどうか考えて見ます。

>>468
私も本を1冊買ってしまいました。(1行につなげてください)
www.amazon.co.jp/Apache-Struts%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF
-%E6%94%B9%E8%A8%82%E7%89%88-Technical-Handbook/dp/4797335491

私みたいに中途半端に昔の知識があって、新しいバージョンだと書式が変わってたり jar が変わっていると
ハマるけど、この本だと 1.2 と 1.3 のバージョンの違いも載っていてわかりやすい。
struts の初学者の場合、ほかに入門の本があったほうがいいと思うが・・・





471 名前:465 mailto:sage [2007/11/09(金) 01:17:02 ]
>>470
重ねてご教示いただき、ありがとうございます。
やはり本は一冊買うべきですね。
明日にでも本屋行って見てみます。

472 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 01:24:56 ]
ActionFormにはStringかbooleanかそれらの配列ぐらいしか定義しないと思うんだが。

473 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 02:13:35 ]
formbeanをPOJOにして、プロパティエディタ自作するってのじゃうまくいかない?

474 名前:466 mailto:sage [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 さんが言っているのは、ここら辺の話ですよね。
hidek.jugem.cc/?eid=110

475 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 08:40:58 ]
俺はFormは全部Stringにして、validatorメソッドでチェックしてる
Javascriptのチェックだけじゃ意味無いし

476 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 09:23:32 ]
strutsの重大な欠陥の一つ。
普通に考えりゃ、conversionよりvalidationが先だし、
実際に殆どのフレームワークがそうなってる。

477 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 10:53:42 ]
ほとんどってどれ?
JSFはそうじゃないよ。


入力値に対する変換とドメインオブジェクトに対する変換とじゃ意味が違うのを理解してね

478 名前:466 mailto:sage [2007/11/09(金) 10:58:34 ]
なるほど、どうもありがとうございます。
昨今 Struts に否定的な意見をよく聞きますが、
自分は5年前にStrutsを触っていたものの、それ以降は一次請けが作った独自フレームワークばかりだったので
あまりぴんとこなかったが、たしかにそういう意見もわかってきた。
Struts はいまいちアジャイルじゃないし、アプリ(業務要件)の本質じゃないところでハマる気がします。
(私のスキルがないだけだと思いますが)


479 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 11:47:30 ]
そうそう。本来は本質の部分に手間をかけたいところなんだが、
Strutsだとちょっと完成度が低くて本質以外の部分に手間をとられすぎてしまう。




480 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 22:55:52 ]
>>466
それどこのPerl?

481 名前:デフォルトの名無しさん [2007/11/11(日) 18:08:52 ]
struts2でアップロードした画像や動画を圧縮しつつ保存するといった事は
可能ですか?

482 名前:デフォルトの名無しさん [2007/11/11(日) 19:35:09 ]
失礼、この質問は忘れて

483 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:30:30 ]
そもそもインフラストラクチャだから、本質(ビジネスロジック)寄りに作ってないんじゃないの。
そうじゃなきゃここまで浸透しなかっただろうね。

大手ベンダーのフレームワークは、Strutsがベースで使われてて、
その上に○○標準とか、業務的な部分をラップしてあるのを見るね。

484 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:45:33 ]
混じりけなしの一般解'(フレームワーク)を求めれば求めるほど、
特殊解(アプリケーション)に落とし込むための手数がかかるようになるのは当たり前
完成度とはまた別の話だと思うが

485 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:37:45 ]
フレームワークのためのフレームワークというのは、
Avalon とか Turbin じゃないかな?(よく知らないけど)

Struts はどちらかというと理論より実践を目指したものだと思うが、
今日 POHP 指向のフレームワークなどが出てきて、
Struts はめんどくさいというか便利ではないという感覚は否めない。

ただ doGet() と doPost() しかなかった時代に Struts が出てきた意義は大きいと思うし、
今でもたまに使うし、自分では Struts なんか作れないので、否定するつもりはない。

486 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 03:21:15 ]
別に、めんどくささを解消するためのものじゃないし
Strutsは、独立して存在するモデルだとかビューの部品をつなぎ合わせるためだけの存在
つまり、めんどくさいかどうかは単に既存のコンポーネントがいくつ利用できるか、だけに依存する

更に、そこを起点として
・Strutsが、その上に乗っかるコンポーネントに対して十分に侵略的でないと言えるのか?
・そもそもフレームワークを差し替えるニーズなんてないのだから、コンポーネントに対して
侵略的であってもよいからもっと便利に使える方がいいのではないか?
などのアンチテーゼが発生し、Struts以降のフレームワーク登場に至る

487 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 02:21:50 ]
ひとつ、サーバOSのバージョンアップに強い
ふたつ、1.x系を使い続ける限り、根幹部分の変化が少ないので、ノウハウが溜まる
   (慣れた頃には別のアーキテクチャを覚えなきゃ・・・、がない)

慣れに勝る便利さなし

488 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 23:09:56 ]
慣れだけじゃなく、自前のカスタムタグなんかも
溜まってるし。
でも、Struts飽きた。

489 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 23:27:58 ]
で、struts作ったクレッグは今なにやってんだ?



490 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:01:19 ]
blogs.sun.com/craigmcc/

jMaki on Railsやってるのかな?

491 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 10:36:24 ]
strutsを上司に説明することになって、
実際にstruts使ってるwebアプリケーションの事例を
紹介しないといけないんだけど、どこかご存知ないでしょうか?

492 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 11:39:18 ]
JALとか、イートレード証券のモバイルサイトとか

493 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 11:54:25 ]
テレビ王国とか

494 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:05:28 ]
>>492
ありがとうございます。
他のスレも見てたら少しあったので追加。
JAL、ANA、三井住友のオンラインバンキング、イートレード証券のモバイルサイト

クラス名がまんま分かってしまうURLが多いですね・・・
もう少しだけ、事例ありましたら教えていただきたいです。

495 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:14:52 ]
>>493
ありがとうございます。リロードしてませんでした・・・
テレビ王国はStruts2なんですね。勉強になります。。

496 名前:デフォルトの名無しさん [2007/11/19(月) 02:01:37 ]
struts2つかって、<s:textfield ... />とか書くと、
生成されたHTMLが<tr></tr>で囲まれるんだけど、
囲んでほしくないときは、
どうすればいいの??

497 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 11:18:19 ]
<bean:write>で文字列を出力しているのですが、改行コードを除去して
表示することは可能でしょうか?

498 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 11:43:17 ]
496ですが、自己解決しました。
コンフィグファイルでsimpleを設定したら、でなくなりました。

499 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 09:10:05 ]
>>497
jakartaのString taglib使うといいぜ



500 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 20:36:43 ]
Strutsマンドクセ

501 名前:デフォルトの名無しさん [2007/11/23(金) 00:12:42 ]
>>500
つStruts2

502 名前:デフォルトの名無しさん [2007/11/23(金) 00:43:35 ]
SEマンドクセ

503 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 00:55:32 ]
SE=SexEngineerだったら・・・

504 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 02:49:25 ]
Sexマンドクセ

505 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 04:42:35 ]
>>504
見栄張るな

506 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 05:31:15 ]
Struts2てマンドクセじゃないの?

507 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 10:28:01 ]
どんなもの使っても、変なタグ呪縛から逃れることはできない。
逆に考えると、
変なタグ使うくらいなら、
ぱっと見、何してるか分かりやすいコードをJSPに書いた方がいい。
デザイナーの事なんて、シラネ。

508 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 12:14:28 ]
WicketやMayaaなら、タグ呪縛はないよ

509 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 12:34:37 ]
Teedaも忘れないでください



510 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 22:12:10 ]
<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>

みたいなかんじで。


511 名前:デフォルトの名無しさん mailto:sage [2007/11/29(木) 23:54:33 ]
A+B=!A*!B






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef