△△もっとStrutsの良さを教えてくださいSession5at TECH
△△もっとStrutsの良さを教えてくださいSession5 - 暇つぶし2ch424:デフォルトの名無しさん
07/11/03 19:45:05
ojdbc14.jarは使うんだって
トランザクションはsqlで吐いてする予定。
DBアクセスの自作ライブラリ作るのはそんな苦にはならないし
※リクエストをまたがってのトランザクション制御が出来るかはまだ未検証(出来ますか?)

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


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


426:デフォルトの名無しさん
07/11/03 19:52:09
てか、こっちの事情はいいので
質問の解(手法)を教えてくれませんか・・・

①自作Filterクラスのdofilterメソッドでchain.doFilterの前に、struts-config.xmlの該当actionのset-propertyタグの値を取得する方法

②struts-config.xmlのaction要素のpathの値の一覧を取得する方法


427:デフォルトの名無しさん
07/11/03 19:54:54
>>425
待ってますので方法教えて下さい。
お願いします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

436:デフォルトの名無しさん
07/11/03 22:20:52
.netならすべてそろってるのに

437:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/03 22:33:21
けど、XML解釈は素のDOMかSAXなんで、もっと便利なものが欲しいとNDigesterが欲しくなったり、
ログ出力自作するのがメンドイと、Log4netに手を伸ばしたくなったり、
テスト駆動したいからとNUnitが手放せなかったりと、
そういうことはある。

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

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

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

441:デフォルトの名無しさん
07/11/03 23:40:40
xpathでとれるだろ。javax.xml.xpathだ。

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

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

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



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

スレチすまん

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

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

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

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

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

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

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

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

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

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

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

451:デフォルトの名無しさん
07/11/04 17:02:24
>>448
StrutsのJavaDoc嫁

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

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

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

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

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

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

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

454:デフォルトの名無しさん
07/11/04 17:50:23
釣れますか?

455:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/05 01:45:32
すまん。ActionCoofigはActionConfigsと読み替えてくれ。

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


458:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/05 23:15:48
unspe何とかってメソッドが呼ばれるんじゃなかったか?

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

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

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

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

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

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

463:デフォルトの名無しさん
07/11/08 00:11:55
>>461
apacheのmime.types?

464:461
07/11/08 20:29:35
ありました!ありがとう。

465:デフォルトの名無しさん
07/11/08 23:50:20
教えてください。

最近strutsを勉強しだしたんですが、現在ダウンロードできるstrutsのバージョンは1.3.x~2.0のようです。
ところが各サイトで解説しているバージョンは1.1ばかり。売られている書籍は1.2まで。

以上が私の貧弱な検索で調べた結果なんですが、もし1.3以降の解説をしているサイト
もしくは1.2以前のアーカイブの入手方法がわかる方、ご教授いただけないでしょうか。

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

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

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

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

>>465
Struts 2.0 はまだ出たばかり。1.x と 2.x は別物。
1.2 以前がほしければ、
URLリンク(struts.apache.org) → Older Releases (Archive Site) → binaries/ とたどれば出てくるよ。
プロジェクト等でバージョンの指定がなければ、いまは 1.3 でよいのでは。

467:デフォルトの名無しさん
07/11/09 00:46:41
>>466

この場合はStringにするしかないですね。多分

468:465
07/11/09 00:49:56
>>466さん
ありがとうございます!助かりました。
1.3を落として、1.1の解説を読みながらやってたんですがバージョンの違いでつまずいてしまって・・・
かなりの初心者なんで、ちょっとした違いでも対応するのに時間がかかってしまう為、
古いバージョンで解説どおり動くかどうか確認したかった次第です。

469:デフォルトの名無しさん
07/11/09 00:55:57
>>466
scriptで処理する以外はStringしかないかねぇ・・・

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

>>468
私も本を1冊買ってしまいました。(1行につなげてください)
URLリンク(www.amazon.co.jp)
-%E6%94%B9%E8%A8%82%E7%89%88-Technical-Handbook/dp/4797335491

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





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

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

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

474:466
07/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 さんが言っているのは、ここら辺の話ですよね。
URLリンク(hidek.jugem.cc)

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

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

477:デフォルトの名無しさん
07/11/09 10:53:42
ほとんどってどれ?
JSFはそうじゃないよ。


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

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


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


480:デフォルトの名無しさん
07/11/09 22:55:52
>>466
それどこのPerl?

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

482:デフォルトの名無しさん
07/11/11 19:35:09
失礼、この質問は忘れて

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

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

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

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

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

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

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

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

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

慣れに勝る便利さなし

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

489:デフォルトの名無しさん
07/11/13 23:27:58
で、struts作ったクレッグは今なにやってんだ?

490:デフォルトの名無しさん
07/11/14 00:01:19
URLリンク(blogs.sun.com)

jMaki on Railsやってるのかな?

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

492:デフォルトの名無しさん
07/11/15 11:39:18
JALとか、イートレード証券のモバイルサイトとか

493:デフォルトの名無しさん
07/11/15 11:54:25
テレビ王国とか

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

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

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

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

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

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

499:デフォルトの名無しさん
07/11/20 09:10:05
>>497
jakartaのString taglib使うといいぜ

500:デフォルトの名無しさん
07/11/22 20:36:43
Strutsマンドクセ

501:デフォルトの名無しさん
07/11/23 00:12:42
>>500
つStruts2

502:デフォルトの名無しさん
07/11/23 00:43:35
SEマンドクセ

503:デフォルトの名無しさん
07/11/23 00:55:32
SE=SexEngineerだったら・・・

504:デフォルトの名無しさん
07/11/23 02:49:25
Sexマンドクセ

505:デフォルトの名無しさん
07/11/23 04:42:35
>>504
見栄張るな

506:デフォルトの名無しさん
07/11/23 05:31:15
Struts2てマンドクセじゃないの?

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

508:デフォルトの名無しさん
07/11/23 12:14:28
WicketやMayaaなら、タグ呪縛はないよ

509:デフォルトの名無しさん
07/11/23 12:34:37
Teedaも忘れないでください

510:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/29 23:54:33
A+B=!A*!B

512:デフォルトの名無しさん
07/11/30 09:21:28
>>511
ちょwww

513:デフォルトの名無しさん
07/11/30 10:55:23
普通はフラグの値を見てタグのほうで判断するんじゃなくて、
判断した値(true,false)を返してやるよな。

514:510
07/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 から認識されたっけ?

515:デフォルトの名無しさん
07/12/02 11:51:48
JSTLのc:ifならできんじゃないの?
JSPに書くことかなって気がするけど

516:デフォルトの名無しさん
07/12/02 19:36:26
>>514
普通に認識されるので無問題。

>>515
たぶん使えると思うが使ったことがない。
<c:if test="${myBean.flag == 1 || myBean.flag == 3}">
って感じ?

そういえば、StrutsのTaglibで変数同士の比較ってできたっけ?


517:510
07/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 です。

518:デフォルトの名無しさん
07/12/08 06:08:53
>>517
たとえば、<bean:write>とかだとどうでしょ?


519:困っています
07/12/08 18:25:39
こんにちは。
現在STRUTSでWEBアプリを作っています。
たとえば1.5や2.2などの少数点がつくものを
bigDecimalがたの」formに格納すると15や22に
なってしまいます。
STRINGにしたらいいにたいですが、それだとまた後から
型変換しなくてはいけません。

何かいい方法ヲご存知野方がいらっしゃいましたら
教えてください、、お願いします。

520:デフォルトの名無しさん
07/12/08 18:59:35
Stringにして後から型変換する

521:デフォルトの名無しさん
07/12/09 01:09:42
String<->BigDecimalで変換や検査を行うクラスを作って、
それをFormのフィールドで持つと良いよ。

522:デフォルトの名無しさん
07/12/09 22:21:45
3点程教えて下さい。

1)ひとつのプロジェクト(war)内にStruts(ActionServlet)と
 普通のサーブレットを混在させることは設計上あまり
 宜しくないことでしょうか?

2)その場合、Strutsのアクションクラスから呼び出される
 ビジネスロジッククラスをサーブレットから呼び出すことは
 設計上あまり宜しくないことでしょうか?

3)ビューの無いアクション(ファイルのダウンロード等)は
 設計上有りでしょうか?(サーブレットにすべき?)

523:デフォルトの名無しさん
07/12/09 22:46:08
1) 特に問題ないと思う。
ファイルダウンロードとか、ビューをJSP以外で実現する場合とか。

2) 特に問題ないと思う。
同じビジネスロジックを、StrutsのアクションとWebサービスの両方から呼び出すとか。

3) 特に問題ないと思う。
でも、ダウンロード用のサーブレットにフォワードするほうが見通しが良くなる気はする。

524:デフォルトの名無しさん
07/12/10 06:06:28
>>523
ありがとうございます。
参考にさせていただきます。

525:デフォルトの名無しさん
07/12/25 12:09:05
Struts2本だれか書けよ、読んでやるから。

526:デフォルトの名無しさん
07/12/25 23:10:08
情報少なすぎだよな>struts2

527:デフォルトの名無しさん
07/12/26 12:11:47
StrutsとJSFて、開発者同じ人?

528:デフォルトの名無しさん
08/01/03 17:23:14
ところで、Shaleって普及すると思う?

529:デフォルトの名無しさん
08/01/03 19:50:00
しないと思う。

530:デフォルトの名無しさん
08/01/04 11:55:27
ShaleとStruts2とXWorksって違うの?

531:デフォルトの名無しさん
08/01/06 00:42:19
struts2でJFreeChartで生成した画像を表示する方法が、
下のURLに書いてあるんだけど、
URLリンク(www.cnblogs.com)

これって画像一枚が表示されて終わりなんだけど、
JSPの中のIMGタグのようなものに表示する方法はどうやったらいいか教えてください。


532:デフォルトの名無しさん
08/01/06 00:43:02
次期Strutsの呼び声が高く注目を浴びていた Shale
しかし、Struts2 として採用されたのは WebWork2
その WebWork2で内部的に使用されているコマンドパターンフレームワークが XWork

でおk?

533:デフォルトの名無しさん
08/01/06 00:44:52
imgのsrcにそのURLを書けばいいべさ

534:デフォルトの名無しさん
08/01/06 00:48:18
>533
ありがとうございます。そんな簡単でいいんですね。
やってみます。

535:デフォルトの名無しさん
08/01/06 12:01:50
Struts2の情報が少ないて、あったけど
~大全に、ちょっとStruts2のセクションがあったよ。
買ってないから、どんだけ詳しく解説されてるか、知らないけど。


536:デフォルトの名無しさん
08/01/07 19:02:02
>>535
デジカメで撮って uぷ するか、全部コピペしてくれ

537:デフォルトの名無しさん
08/01/11 23:49:25
Struts2の情報くれくれ

538:デフォルトの名無しさん
08/01/12 01:51:17
Struts以外のフレームワークを知らない人がStruts2をさわってみた感想。

すべてのリクエストにフィルターをかまして、ActionをPojoで生成。
インターセプターでActionに値をinjectionするって考えがすごいと思った。
これがコマンドパターンっていうの?
他のフレームワークでもこんなことしてるのあるの?

struts2のタグでAjax(dojo)をサポートしてるけど、
なんでjsファイルを配置してないのにできるの?って不思議だったが
フィルターでjarファイル内の静的リソース(js、画像)を返してた!
これならjarファイルだけでいろいろできる!

すべてのリクエストがフィルターを通る分、ややもっさりしてるけど
そのへんはハードのがんばりで問題ない気がする。。

539:デフォルトの名無しさん
08/01/12 17:46:54
>>538 でStruts1と比べて、Struts2はどうなの?

540:デフォルトの名無しさん
08/01/13 07:41:16
結局のとこ、
使える奴が、ほとんどいない。
て事なんじゃないの?

541:デフォルトの名無しさん
08/01/17 01:22:40
オンラインの日本語struts2書籍ってあるじゃん、あれってどう?

542:デフォルトの名無しさん
08/01/17 23:01:46
struts2でstruts.xmlにアクションを記述するけど、
そこにHttpヘッダーを定義する方法教えてください。
Pragma:: no-cache
とかをやりたい。

今のところアクションクラスでresponseにsetHeaderしてます。
struts.xmlに簡単に記述する方法あるのですか?

543:デフォルトの名無しさん
08/01/17 23:31:26
>>542 Interceptor書けばいいと思うよ
探したけど標準ではそういうのは無いみたいだね。

544:デフォルトの名無しさん
08/01/18 01:30:25
>>543
ありがとう。初心者なのでInterceptorってどうやればいいかわかりませんでした。
struts.propertiesのstruts.serve.static.browserCacheってのをみつけたけど、
これを設定をしたら解決するのでしょうか?

545:デフォルトの名無しさん
08/01/18 22:18:58
>>544 それが効くのは静的コンテンツのキャッシュだけみたいね

546:匿名希望
08/01/22 11:38:33
Struts1.3.8を使っています。

FormFileのgetFileSize()でアップロードされたファイルのサイズを取得
しているのですが3メガくらい以上のファイルだと
0が返ってきます。
小さいファイルだと問題なくサイズが取得できます。
どういったところを調べてみればよいでしょうか?

547:デフォルトの名無しさん
08/01/22 12:14:15
httpd.conf

548:546
08/01/22 13:11:05
すみません。
getFileSize()の前にdestroy()してました。


549:デフォルトの名無しさん
08/01/22 13:34:13
ちょw

550:デフォルトの名無しさん
08/01/22 14:44:19
スレ盛り上げようと、気使いすぎ。

551:デフォルトの名無しさん
08/01/23 13:13:15
フレームの中からバリデートを実行してhtml:errosで表示する方法を教えて下さい


552:デフォルトの名無しさん
08/01/27 21:15:37
struts2+spring2.5+hibernateを使って開発した
生産性が高いから少数精鋭でやってける
高いスキルと英語力が必須条件だけどね
javaの開発者は、これからは淘汰されてくんじゃねーの?
インド人がより有利になってく気がする

553:デフォルトの名無しさん
08/01/27 21:33:48
struts+spring+hibernateの組み合わせは数年前からあるが
現在淘汰されたのだろうか。

554:デフォルトの名無しさん
08/01/27 23:40:48
>>553
struts2とstruts1.xは別物

555:デフォルトの名無しさん
08/01/28 05:58:41
>>553
spring、hibernateが必要なシステムも少ないでしょ。
逆にコストがかさむだけ。

>>554
だから「淘汰されたのだろうか」じゃねーの?

556:デフォルトの名無しさん
08/01/28 06:27:25
>>555
どうコストがかさむん?

557:デフォルトの名無しさん
08/01/28 07:07:41
>>556
提供機能が多いほど設定記述が多く発生する。

558:デフォルトの名無しさん
08/01/28 07:14:52
どんな設定記述が?
で、設定でできなければ、コード書かないといけないんじゃないの?

559:552
08/01/28 22:53:41
struts2の設定はstruts.xmlだけ
springの設定はApplicationContext.xmlだけ
hibernateはモデルクラスのanotation
そんなに面倒では無いよ
この組合せの良い所はあらゆるエンタープライズ向けアプリケーションに対応できること
バッチ処理もどきやsoaにも対応可能、その内spring batchが出るそうだけどね
DBアクセスはジェネリックを使ったクラスを作ったら半分位はそれで用足りた。
勿論、単純なテーブルアクセスしかできないけどね
spring securityも良い感じ、使いこなせばかなり楽できる
struts2はcoolで楽チン、もうstruts1.xは過去の遺物(ガラクタ)だよ

560:デフォルトの名無しさん
08/01/29 01:06:55
>559
ほかのFWはなにを使ったことありますか?
なぜその組み合わせが良いのか説明してもらえんかな?
S2は設定ファイル無しですが?

561:デフォルトの名無しさん
08/01/29 01:54:47
> DBアクセスはジェネリックを使ったクラスを作ったら半分位はそれで用足りた。

こういう物言いをする人に何言っても無駄。


562:552
08/01/29 02:08:07
>>560
springの替りにs2でも良いと思うよ
hibernateの替りにiBatisでも良いと思う
組み合わせ方は人それぞれ

自分の場合は海外サイトから情報を得てるので、どうしても洋物になりがちなのかも
URLリンク(www.theserverside.com)
URLリンク(www.javaworld.com)

563:デフォルトの名無しさん
08/01/29 02:08:27
ジェネリック医薬品でばっちりキメてるんじゃね?

564:デフォルトの名無しさん
08/01/29 02:09:23
>>560-561
もう少しやさしくするかスルーしないか?
大人気ないぞw

565:552
08/01/29 02:11:21
>>561
実は、開発スピード重視の苦渋の選択でした
ホントはiBatisとかでノンビリ作り込みたかった

566:552
08/01/29 02:19:45
盛り上がってきましたw
まあ、ただ単にstruts2は良いよ、ってことが言いたいだけだよ
ただstruts2単体で使うってケースは考え難く
複数のフレームワークは組み合わせて使うのがベターかなって

567:デフォルトの名無しさん
08/01/29 11:27:30
Strut2の書籍を探してて、こんなのをみつけました。
URLリンク(dream.mods.jp)

購入を検討しているのですが、既に使っている方いらっしゃいましたら
感想を教えてください。

568:デフォルトの名無しさん
08/01/29 12:42:18
>552が一人で盛り上がってるだけじゃん


Struts2の何がいいか具体的に言ってくれ。
ぜんぜん伝わらない。
他のFWのことあんまり知らなさそう。


569:デフォルトの名無しさん
08/01/29 14:05:05
Struts 1.x はもううんざりだが、Struts2 は、web の記事しか読んでないけど(自分で試してないけど)
気になっている。別に >>560 みたいに煽るつもりは全然ない。

だから >>552 には思ったことをもっと書いてほしい。正しいかどうかは関係ない。
どれが Best Practice かどうかは興味があるが、プロジェクトによって状況が違うから一概には言えないし、むしろ
・どういう理由で Best Practice と思ったか
・どういう理由でクソだと思ったか
という意見が重要。

ただ >>568 のように、「何がいいか」(どういう理由か)を書いてくれないと、こちらには伝わらない。

湾岸ミッドナイトでも言ってるだろ。
結果を求めるな。
結果だけを知ろうとするな。
なぜその結果が正しいかなのではなく、どういうプロセスでその結果にたどり着いたのか。

# 自分で試す前に人の意見を聞きたがるオレも、あまりえらそうなこと言えないけどw

570:552
08/01/29 23:45:09
struts2 + spring2.5 + hibernate or iBatis のフレームワークの組合せは、
企業向けシステムのあらゆるパターンに対応可能
単なるWeb applicationだけじゃ無くて、メインフレーム・マイグレーションさえ可能だと思う
とは云え、そんな重量級システムだけじゃ無く、手軽な短期開発にも対応可能なのが良いとこさ
間違いなくデファクトになるよ

struts1.xとstruts2の違いは、自転車とオートバイくらい違う
じっくり時間をかけながら汗をかきたい人はstruts1.x
さっーっと楽したい人はstruts2を使うと良いでしょう
ネチネチ時間をかけながらSQLにビジネスロジックを実装させたい人はiBatis
多少パフォーマンスが悪くてもサクサク開発したい人はhibernateって感じでしょ
ケースに応じて選べば良いんじゃな~い

571:デフォルトの名無しさん
08/01/30 00:11:30
空気読めないかなぁ・・・

572:デフォルトの名無しさん
08/01/30 00:57:20
自転車とオートバイ

573:デフォルトの名無しさん
08/01/30 01:03:17
Teeda + seasar2 + S2JDBC or S2Dao のフレームワークの組合せは、
企業向けシステムのあらゆるパターンに対応可能
単なるWeb applicationだけじゃ無くて、メインフレーム・マイグレーションさえ可能だと思う
とは云え、そんな重量級システムだけじゃ無く、手軽な短期開発にも対応可能なのが良いとこさ
間違いなくデファクトになるよ

struts1.xとTeedaの違いは、自転車とオートバイくらい違う
じっくり時間をかけながら汗をかきたい人はstruts1.x
さっーっと楽したい人はTeedaを使うと良いでしょう
ネチネチ時間をかけながらSQLにビジネスロジックを実装させたい人はS2Dao
多少パフォーマンスが悪くてもサクサク開発したい人はS2JDBCって感じでしょ
ケースに応じて選べば良いんじゃな~い



正直なんも違和感を感じない。
結局なんでもいいじゃん。ってことに。
ま、Seasarは良いけど。明らかにSSHよりは開発速度は速いよね。552は世間知らず。

574:デフォルトの名無しさん
08/01/30 01:14:51
せんせーSturts2のどこが良いんですか?
ほかに比較したFWはなにがありますか?
どう違いますか?
Seasar教の自分から見たらStruts+Spring+Hibernateなんて超めんどくさいんですが~

575:デフォルトの名無しさん
08/01/30 01:35:12
結局Struts2の何が良いのかわからないままか・・・

>>573
TeedaとS2JDBCは相性悪いって本人が言ってるよね。

576:デフォルトの名無しさん
08/01/30 07:51:08
Seasarって、沖縄人の使ってるローカル・ツールでしょ?

577:デフォルトの名無しさん
08/01/30 09:02:41
>575
ソースは?

578:デフォルトの名無しさん
08/01/30 22:52:20
>>577
URLリンク(ml.seasar.org)

579:デフォルトの名無しさん
08/01/31 00:42:24
激しくすれ違いなので申し訳ない。
>575
S2Dxoを使わなければそうかもしれんが、使えば差は無いと思うが。


580:デフォルトの名無しさん
08/01/31 07:48:47
Seasar派はspringに勝ってると勘違いしてんだろーな...


581:デフォルトの名無しさん
08/01/31 19:57:44
釣られてみるか・・・
SSH対Teeda+S2JDBC or S2DaoなのにSeaser対Springにしちゃうあたり理解して使ってないんじゃない?

582:デフォルトの名無しさん
08/01/31 20:28:57
ダイナバリデータフォームのリセットメソッドの呼び出し方を教えて下さい

583:デフォルトの名無しさん
08/01/31 20:31:43
ダイナバリデータのリセットメソッドの呼び出し方を教えて下さい

584:デフォルトの名無しさん
08/01/31 23:51:00
>>581
たぶんspring派が勝手に勝ったと勘違いしてるんだよ。
勝ち負けつけようなんてことが馬鹿馬鹿しい。

585:デフォルトの名無しさん
08/02/01 23:22:28
どれも.netにはかなわない

586:デフォルトの名無しさん
08/02/01 23:48:24
おー 新説登場 kwsk

587:デフォルトの名無しさん
08/02/02 01:17:04
>>585
低レベルの開発要員しか集められない場合は、最高の選択肢かもな


588:デフォルトの名無しさん
08/02/02 01:54:21
>>587
strutsすれでよく言えるなw

589:デフォルトの名無しさん
08/02/02 17:24:37
.Net(C#)って、扱うのはそれなりに難しいと思うぞ。

C#の言語仕様も、Java よりも優れているという意見もいっぱいある(詳細はム板の言語関係のスレで。ここでは省く)

VB を「低レベル開発要員」と位置づけるなら、Struts もその位置にだんだん当てはまってきていると思うけど。

あと、Spring.NET、Hibernate.NET、iBatis.NET なんてのもあるし。
豆○の中の人とこの前はなしていたが、いまは .NET での案件が Java と同じくらいあるんだって。

590:デフォルトの名無しさん
08/02/02 19:07:09
中規模以下案件は.NETでも充分でしょ

591:デフォルトの名無しさん
08/02/02 19:12:30
どれくらいから大規模?

592:デフォルトの名無しさん
08/02/02 19:14:19
>C#の言語仕様も、Java よりも優れているという意見

そりゃ、後発で先駆者のいいトコ取りしてるんだから当たり前って言えば当たり前なのだが、
どーも仕事でWin鯖の不安定っぷりを見せ付けられると微妙なんだよな。

593:デフォルトの名無しさん
08/02/02 19:41:06
どのへんが不安定?

594:デフォルトの名無しさん
08/02/02 20:11:18
不安定はWin鯖のせいなの?

595:592
08/02/03 00:08:38
安定度の比較対象として同部署で管理しているiSeriesと言う鯖があるが、
これに比べればネットワークは不安定だわ、負荷が高い時のレスポンスやらな・・・。

購入時の価格がちがうので比較は無意味なんだろうけど、
障害発生時の対応・対策を見ていると「安物買いの銭失い」と言う印象が強いので。

596:デフォルトの名無しさん
08/02/03 00:14:27
iSeriesと比べちゃうの?w

597:デフォルトの名無しさん
08/02/03 00:16:26
ちょw

598:592@一応はiSeriesメインのエンジニア
08/02/03 00:28:36
いや、この間Win鯖の障害に繰り出されサ。
なんつーか、エラーハンドリングというかモニター機能の貧弱さになけてきたり、
自己診断機能のいい加減サに辟易したり、対応策に「とりあえずリブート汁」とかサ・・・。
タスクマネージャーを目視して「ここが○○になったらこのウインドウのココをメモして」とか
ずいぶんと前時代な対応させられたりしてサ。
で後日の対策会議とかでエロい人が5・6人あつまってあーだこーだと。
なんじゃコリャと思いましたです。

おそらくはWin鯖でも本当は自動化とか柔軟な運用・保守・管理が出来る様な気がするし、
扱う人間のレベルによって安定度も変わってくるんだろうけど、
今はITドカタな時代で優秀なエンジニア少ないんだから、せめて機械はiSeriesみたいな
「ヴァカが扱ってもなかなか壊れない鯖」とか買ってくれとおもうのよ。w

599:デフォルトの名無しさん
08/02/03 00:41:49
まあ、俺が作ったアプリケーションならWin鯖でも
超安定だぜ。5年くらい余裕でノンストップだ。

600:デフォルトの名無しさん
08/02/03 02:03:14
Windowsが不安定と言われるのは、無駄にサーバに接触できる環境が多いからじゃないかな
以前リモート・デスクトップで繋いだら、始めてブルースクリーンに遭遇したよ・・・

601:デフォルトの名無しさん
08/02/03 04:35:00
>>598
それはなんちゃって一応はiSeriesメインのエンジニアのお前がWMI知らないだけで馬鹿


602:デフォルトの名無しさん
08/02/03 04:37:26
>>598
iSeriesは特定のモデルでコンデンサあぽん続出ですよ
不安定なのはOSのせいじゃなくてハードのせいだから


603:デフォルトの名無しさん
08/02/03 07:18:34
Win鯖は不特定モデルでまんべんなく不安定だろ。w

ただ、引き合いにiSeries出すのは卑怯だ罠。
今は絶滅したジャンル(?)で唯一のオフコン機だし。

しかしiSeriesとタメはれる安定性のWin鯖のハードってあんの?
あるなら会社の基幹業務からiSeriesは消えてなくなっているはずだが。

604:デフォルトの名無しさん
08/02/03 09:16:46
ES7000とかはどう?
地元の地銀では使っているよ。

605:デフォルトの名無しさん
08/02/03 11:48:34
うちにもiSeriesが4台あるんだけど(同じモデルじゃなくてピンキリで色々)
NIC不良とかCPU不良とか4台ともハード的に不具合出てるぞw


606:デフォルトの名無しさん
08/02/03 13:12:27
おいおまえら激しくすれ違い

607:デフォルトの名無しさん
08/02/10 23:29:42
保守age

608:デフォルトの名無しさん
08/02/13 09:48:25
struts2でおすすめの書籍ありますか?

609:デフォルトの名無しさん
08/02/13 10:09:28
オヌヌメサイトも

610:デフォルトの名無しさん
08/02/13 12:20:48
>>608
『Starting Struts 2』Ian Roughley,Lulu.Com,2007/6/30
(入門書だが。)

>>609
URLリンク(struts.apache.org)
のDocumentationあたり

どっちもたいして難しい英文では書かれていない。

611:デフォルトの名無しさん
08/02/13 21:47:04
struts2でstruts.xmlを使わずにアノテーションだけでInterceptorって実現できるもんですかね?
会員サイトでログインチェックをすべてのメソッドに書くのは格好悪いし、
かといってstruts.xmlには何も書かない方針だし、どうしたらいいんでしょうか。

612:デフォルトの名無しさん
08/02/14 09:17:42
Filter

613:デフォルトの名無しさん
08/02/14 09:54:06
>>612
thx!
でも具体的にどういう実装するのがいいのかわからんorz

614:デフォルトの名無しさん
08/02/14 21:40:10
javax.servlet.Filterの具体クラスをweb.xmlに登録すればいい。
doFilterのServletRequestをHttpServletRequestを取得、
request.getSession(false)でHttpSessionを取得、後はお好きにどうぞ。


ログインといえば、JAAS使ってる人ってどのくらいいるんだろう。
次の案件で長いお付き合いになるパッケージ製品作るから採用するけど。

615:デフォルトの名無しさん
08/02/14 22:19:27
>>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:デフォルトの名無しさん
08/02/14 22:33:58
>>614
Acegi security 使えばどうよ
今はspring security だけどさ

617:デフォルトの名無しさん
08/02/14 22:39:10
>>615
大体そんな感じでいいと思うけど、セッション乗っ取り攻撃には気をつけなされ。

>>616
貴重な情報 thx、調べてみるよん。

618:デフォルトの名無しさん
08/02/15 13:04:25
>>609
オヌヌメかどうかわからんけど、まだ触り始めたばかりなら、以下を読むといいかも
(DLする前に読むものか)
URLリンク(journal.mycom.co.jp)

619:デフォルトの名無しさん
08/02/19 00:05:30
>>615
さすがにlogin.actionだけを文字列チェックして回避ってのはダサくね?
ビジター画面増えたら困るし。まあそこは設定ファイルに外だしするとしてもだ。

今思いついただけなんだけど、jspへの遷移をアノテーション等で実現する場合、
struts.xmlにはビジターとメンバーのpackageだけ記述しておいて、各Actionクラスでは
@ParentPackageで所属するパッケージを指定する。
メンバーパッケージではセッションチェックのインターセプターを定義する。
っていうのがstruts2流なんじゃないかな。

うちがやった時はそこまで頭まわらなかったので、こんな感じにしてたけど
BaseAction ..... getRequest()とか実装しとく
 |
 +-------------+
LoginAction  BaseMeberAction ... セッションチェック
           |
           +----+-----+
          MenuAction ... ...

620:デフォルトの名無しさん
08/02/19 00:10:29
でもってインターセプターの定義は呼び出される順序とか大事だから、
struts.xmlにはインターセプターの定義がずらずらと並んで
Zero-configからはどんどん離れていくと。

ヤレヤレだぜ

621:デフォルトの名無しさん
08/02/19 00:22:18
>>619
>ビジター画面増えたら困るし。まあそこは設定ファイルに外だしするとしてもだ。
具体的にどうやって実現するのがベターかね?

>>620
extendすれば多少は抑えられるかと。
完全なゼロコンフィグはむりぽいけど。

622:デフォルトの名無しさん
08/02/19 01:47:24
>>621
俺はweb.xmlにごちゃごちゃ書くのが嫌いなので
別途設定ファイルを用意して
<root>
 <action>
  <visitor>login.action</visitor>
  <visitor>login!input.action</visitor>
 </action>
</root>
こうなってるのを読み込む方がソースに直書きよりははるかにいいと思う。
xml読み込むライブラリとかは普段使ってる奴があるでしょ。
web.xmlに書くなら長くなっちゃうから、カンマ区切りで並べて書いちゃうかも。
で拾ってきてsplit(",")する。

packageそのものはextendできるけど、インターセプターの一部だけ拡張って
どうやるの?インターセプターは順序が大事だから、パッケージで一個でも
独自にするなら定義全部書かないといけないと思ってた。

623:デフォルトの名無しさん
08/02/19 07:06:01
struts.xml書かないでアノテーション使う奴理解できねえ
画面遷移定義が偏在化して管理が大変そう

624:デフォルトの名無しさん
08/02/19 08:19:26
>>623 俺もそう思う、画面遷移を定義ファイルに集中化して見通しをよくしたはずじゃなかったのかよ?
又ソースに埋め込んでどうするつもりだ?

ゼロコンフィグ 魅力なし

625:デフォルトの名無しさん
08/02/19 09:29:45
で、次は一つのファイルが肥大化するとか、
プロジェクトメンバー全員で一つのファイルをメンテウザスとか
Struts1.xの頃の不満を繰り返す・・・

おまいら学習能力まるで無しだなw

626:デフォルトの名無しさん
08/02/19 09:49:10
画面遷移の定義ってあまりころころ変わるものじゃないから
集中管理してもメリット少ないよね。

627:デフォルトの名無しさん
08/02/19 10:03:10
>>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>

628:デフォルトの名無しさん
08/02/19 11:54:45
>>625
それなら分割すれば済む話だろ。いったいいつの話をしているんだ?

629:デフォルトの名無しさん
08/02/19 12:15:29
>>628
そういう意味じゃなくてXMLに集中させるメリット少ないなって意味。
一度XMLに書いてそれっきり変えないようなものはソースに書いてもいいんじゃねーのと。
開発中や運用中に頻繁に変えるならXMLでもいいと思うけど。
画面遷移ってそんなに頻繁に変更するか?

630:デフォルトの名無しさん
08/02/19 21:08:40
変更の度合いよりも、
どうせプログラムも変更しなきゃ動かなくなるんだから
XMLあるだけジャマじゃね
ってことじゃないのか。

631:デフォルトの名無しさん
08/02/19 22:04:12
>>629
何を言ってるんだ??
この画面のシステムをメンテしているときに、別の画面に切り替えておくとか、
運用の切り替えはファイルの方が圧倒的に有利だろ
運用状態を切り替えるのに、いちいちコンパイルするのかよ

632:デフォルトの名無しさん
08/02/19 22:17:36
strutsってホットデプロイできるの?

633:デフォルトの名無しさん
08/02/19 23:43:49
レス読んで日本語が難しいって事がわかったw
まぁうちは今のレベルの人員(運用も含め)じゃ集中管理の方がメリット高いな

634:デフォルトの名無しさん
08/02/19 23:45:21
>>627
interceptor-refにはインターセプター単体でもスタックでも指定できるのね。
なるほど。デフォルトのparamとvalidatorの間に入れたい、みたいな場合も
全部書かないでいけるの?

635:デフォルトの名無しさん
08/02/19 23:56:28
>>629
一度きりで変更しないならxmlでもアノテーションでもどっちでもいいと思うけど。
むしろ変更があるからこそ、作業対象が分散しないようにアノテーションがいい。

>>631
運用状態を切り替えるのにstruts.xml修正して再起動するの?
tomcat自体は立ち上げておく必要があるのなら
管理画面から動的に切り替えられるようにしとかないと怖くない?
webサーバーの台数増えたらめんどいし。

636:デフォルトの名無しさん
08/02/20 01:26:26
再起動する必要ないよ
tomcatは知らないけど、WebLogicはアプリケーションごとにデプロイできる
まぁこれとは別にHTTPサーバがあったりすると、切り替え中はそっちで抑止かけるなりすればいいし

637:デフォルトの名無しさん
08/02/20 01:33:11
>>636
tomcatもホットデプロイはできるけど
static領域とか初期化し直しになるじゃん。
初期化するからstruts.xmlも再読込されるんだけど。
classに変更があるとセッションも保持されないし。
アプリの再起動って意味で書いたんだけど。

ユーザーからのアクセスがほとんど無い時間帯がある
システムならそれでもいいけど


638:デフォルトの名無しさん
08/02/20 01:52:08
WARでデプロイしてるなら
コンパイルし直すのもWAR作り直すのも手間は変わらないんじゃないか?

639:デフォルトの名無しさん
08/02/20 02:21:44
>>636
新人君よ。アプリケーションサーバを複数台用意して1台づつ止めてデプロイしなおすということもあるんだよ。


tomcatもweblogicもホットデプロイというより、自動デプロイという表現の方がええと思うぞ

640:デフォルトの名無しさん
08/02/20 03:47:38
ダイナミックなモジュールのロード・アンロードでSpring OSGi に期待してるんだけど、SpringDMってそういうもんだよね?

641:デフォルトの名無しさん
08/02/20 20:46:18
>>639
複数台あっても、抑止かけるんだから結局同じことなんじゃ?

642:デフォルトの名無しさん
08/02/21 00:01:10
>641
かけません。
最低1台稼動させたまま入れ替えます。

643:デフォルトの名無しさん
08/02/21 00:39:15
>>642
うん、それそれ
例えば10台あって、2台ごとにグルーピングされているとして、
Aグループを停止している間、グループB・C・D・Eが起動していて、Aグループへのアクセスは抑止しておく
うちは、これをアプリケーション(業務処理)単位でやってるリリースパターンがあるんだけど、
はて、実際どうやってんだろ
この2台の組がなんちゃってデュアル構成なんだけど、これをうまくどうにかして、どうにかしちゃってるんだろうか

644:デフォルトの名無しさん
08/02/21 00:46:24
定義ファイルだろうがアノテーションだろうが関係無い話だな。

645:デフォルトの名無しさん
08/02/21 01:06:58
アノテーションだとコンパイルしなきゃいけないじゃない
リリース中はこの画面に遷移するように、って一時的な変更をコンパイルでやってたら、永遠に終わらなくない?
Aグループに属するαサーバとβサーバを、それぞれ交代でアップデートするときに、
βへのアクセスを抑止させて、定義ファイルを更新して、
次にαを抑止させて、βを解放して、その間αをアップデートさせて、αを通常運転に戻して、βをアップデートして、
βも通常運転に戻す・・・だったかな?よく覚えてないけど、そんな感じ

ってのを、コンパイルでやろうとすると
βへのアクセスを抑止させて、コンパイルして、デプロイして、・・・あ、出来なくもないね

ただ、ソースをいちいちいじらないといけないから、混乱しそうだわな
リリース用に、遷移ロジックのあるソースをいじる、うーん、ないな
やっぱリリース運用はファイル中心だなぁ

646:デフォルトの名無しさん
08/02/21 01:35:54
warでデプロイするならeclipse上で設定ファイル書き換えてwar固めてデプロイでも
アノテーション書き換えてwar固めてデプロイでも変わらない。
あと通常モードと停止モードの二つのモジュールを事前に用意しておくのが
当然だと思う。別にβへのアクセスを止めてからコンパイルする必要なんてない。

つーかコンテナの話はもういいからstrutsの話しようぜ


647:デフォルトの名無しさん
08/02/21 16:41:15
こういうコンテナの話ってどこですればいいんだろう?
昔は
「JAVA+JSP+Strugs+Tomcat」スレなんてものがあったが、
JavaServlet全般とか Servletコンテナ全般のスレがほしい。


648:デフォルトの名無しさん
08/02/22 01:02:49
>>647
スレタイを変えた後継スレがあります。
コンテナの話はこのスレならスレ違いにならないと思います。

Java+Webフレームワーク
スレリンク(tech板)

649:647
08/02/22 03:43:27
>>648
どうもありがとう、巡回先に入れました。
でもあまりにぎわってないな・・・・・
話題提供するようにします

650:デフォルトの名無しさん
08/03/02 17:52:38
ActionFormにArrayListがありその中にArrayListがあるような
構造のデータを受け取るようにするにはどうしたらいいでしょうか?

651:デフォルトの名無しさん
08/03/02 18:34:24
ArrayListをListDataModelにsetRowIndexすればdataTableタグで受け取れる

652:☆Visual C++ Runtime Libraryってエラーが出てネットゲーム強制終了
08/03/02 20:03:10
ネットゲームを2時間くらいやるとやってる途中にURLリンク(imepita.jp)のようなエラーがでて、
強制終了されます。どうしたらよいのでしょう。
厨房なので、ぐぐっても全くわかりません。
どなたかご存知の方教えてください

653:デフォルトの名無しさん
08/03/02 20:46:19
スレ違い

654:デフォルトの名無しさん
08/03/06 01:59:32
教えてほしいのですが、
WebLogic Workshopを使わずに、EclipseでWeblogicとStrutsの連携をどうすれば良いですか?
Weblogicは9.2です。


655:デフォルトの名無しさん
08/03/08 19:57:23
WebLogic® Server Toolsを使え
URLリンク(dev2devclub.bea.com)

656:デフォルトの名無しさん
08/03/11 03:40:54
質問なのですがstruts-config.xmlのactionのforwardエレメントに
プレースホルダーとかって使えないんですかね?
<forward name="success" path="/${0}/test.html"/>
こんな事がしたいんですが知っていたらご教授お願いします。

環境はstruts1.3です

657:デフォルトの名無しさん
08/03/11 19:48:37
知らないけど、ForwardingActionForward使っておけば?

658:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/03/23 02:29:49
同じクラスのフォームビーン使うようにすればいいんじゃない?

660:デフォルトの名無しさん
08/03/23 11:48:40
bがrequestにもsessionにもいないんでしょ。

661:デフォルトの名無しさん
08/03/24 13:14:43
JavaAppletとStruts2のアクション間で非同期通信したいんだけど、
フレームワーク内部でInputStreamが読まれており、アクションで取得できません。
なんかいい方法ない?

662:デフォルトの名無しさん
08/03/24 20:52:21
これまた理解力を発揮しがいのある質問文ですねage

663:デフォルトの名無しさん
08/03/24 22:58:48
文字列化してリクエストパラメータの一つに
してしまえば良いんじゃね?

664:デフォルトの名無しさん
08/03/25 04:41:48
Appletはyesterdayの技術だけど、セキュリティ絡みでAppletに逃げる奴多いな

665:デフォルトの名無しさん
08/03/25 09:24:48
FlexとかSilverlightには逃げないのですか?

666:デフォルトの名無しさん
08/03/25 12:04:28
既存スキルを生かせるのは強いよな。
あとシリアライズしてオブジェクトの受け渡しができるってのも強みか。

667:デフォルトの名無しさん
08/03/29 05:12:06
Java Web Startでええやん

668:デフォルトの名無しさん
08/04/07 01:16:15
>>666
日本語でおk

669:デフォルトの名無しさん
08/04/07 06:30:34
シュワシュワワワシュワワシュワ?

670:デフォルトの名無しさん
08/04/14 20:31:00
Struts2で、struts.xmlの一部をこんな感じ可変にできますか?
<result name="success">/○○.jsp(login.jsp等)</result>
可能であれば、どうやって値をセットすれば良いかご教授ください。

671:デフォルトの名無しさん
08/04/14 22:31:19
<result name="success">${ '/' + page + '.jsp' }</result>

getPageって言うメソッドをアクションに作ってそこで適当な "login" とか返してあげればOKだよ

まあ、login とかを処理したいのならアプローチが間違ってるけどね

672:デフォルトの名無しさん
08/04/14 23:28:16
>>671
ありがとうございます!
確かにloginは処理しないです;
本当に助かりました。明日早速試してみます。

673:671
08/04/14 23:37:09
いえいえ。

差し支えない範囲でどんな使い方をするのか教えて!

674:デフォルトの名無しさん
08/04/14 23:50:48
>>671,673
うーん、きっとまたアプローチが違うって突っ込まれそうですが・・・
帳票をPDF形式で出力させます。
PDF名が固定だと、複数ユーザが同時に出力しようとした場合に
不具合が起きるんじゃないかな?と考えて、PDF名+時間とかをくっつけて
出力しようとしていました。

675:デフォルトの名無しさん
08/04/14 23:56:07
そんなことできるの?

676:671
08/04/15 00:02:23
むむむ。resultのDispatch先の名前はURLに出てこないから関係ないのでは?
たしかに突っ込みたいです ^ ^

まあガンバッテ。 ${ } の中に書いてあるのはJSPに書くのと同じOGNLでValueStackも同じだから色々できるよ

677:674
08/04/15 00:02:34
PDF作成とresult部分は固定でなら実現してます
(PDF作成にはbirtを使用)
なので、多分出来ると思います。

ただ、このままだとPDFがサーバにわんさか作成されちゃうんですよね。。
タイミングを計って、PDFを削除しなくてはならなくなっちゃいますね。。
ダウンロードではなく、ブラウザにPDF表示させなくちゃいけないので
こんな面倒なことやってます。

678:674
08/04/15 00:05:44
追記で・・・
PDFは、画面の選択条件から動的に作成しています。

突っ込み大歓迎です!もっとスマートなやり方があれば
是非乗り換えたいです!

679:671
08/04/15 00:17:36
application/pdf のコンテンツタイプのhttpヘッダーでpdf内容そのまま出力すればいいんでないの?

一時ファイルはいらないと思うんだけど。birtも知らないし勘違いだったら失礼。

680:674
08/04/15 00:27:53
薄々感じてはいましたが、やはり一時ファイルは必要無いのですね・・・
servletを扱うこと自体が初めてで、他に聞ける人もおらず・・・
勉強不足を痛感しています。。本当にありがとうございます!

681:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/16 19:35:05
よろしくお願いします。

Struts2のインターセプターで、RequestAware、ApplicationAwareというのは
どんな時に使えば便利なのでしょうか?

683:682
08/04/16 19:40:01
すいません、スコープというものを分かっていませんでした。
というか、スコープの説明を見てもピンときません。。

684:デフォルトの名無しさん
08/04/16 21:05:25
>>683 なるべく使わないようにするのが良いStruts2アプリの一歩

685:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/24 18:25:42
Struts2のプロパティファイルをpropertiesではなく、
XML形式で記述できますか?

やり方がわからなかったんですが、できそうな気がするので。。
今は自分でjava.util.PropertiesのloadFromXML使って
XMLを読んでますが、もっと簡単にできないものかなと。。

687:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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
08/05/13 11:04:20
自己解決しました。お騒がせしました。

690:デフォルトの名無しさん
08/05/13 22:40:26
>>689
情報量がゼロの書き込みはしなくていいよ。
首くくって死ね。

691:デフォルトの名無しさん
08/05/13 22:40:51
今日の恥ずかしい体験を心に刻め
その気持ちが貴方を育ててくれるハズ...

692:デフォルトの名無しさん
08/05/14 03:27:41
>>690
ところで、おまえのその書き込みは情報量がゼロじゃないのか?
首くくって死ね

693:デフォルトの名無しさん
08/05/14 19:32:31
>>689
自己解決した場合でもどこが間違っていたのか書いておけば
後々人の役に立つかもよ。

キャンセル時のreturn 1をreturn falseにしたら直ったとか?

694:デフォルトの名無しさん
08/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

よろしくお願いします。
URLリンク(ml.seasar.org)

695:デフォルトの名無しさん
08/05/17 13:12:48
>694
スレ違い

696:デフォルトの名無しさん
08/05/17 13:46:12
strutsをベースに業務フレームワークを作る仕事を担当する
かもしれません。オススメな書籍って何かありますか?



697:デフォルトの名無しさん
08/05/17 14:20:54
今頃そんなことする会社は辞める

698:デフォルトの名無しさん
08/05/17 14:38:55
>>685
試してないですけど、actionAの中で、formAをセッションコンテクストに登録し、actionBで、セッションコンテキストからformAを取り出せば使えるのでは?
別案として、もしstruts-config.xmlを変更できるならば、actionAのformAのscopeをセッションにしておけば、actionA内でformAをセッションに登録する処理は不要になると思われ。
ちなみに激しく亀レスと、自分で言っておく。

699:デフォルトの名無しさん
08/05/17 15:42:59
Struts2のJSPをサブディレクトリにまとめたいと思っています。
例えば機能AのJSPは、/jsp/a/に、機能Bは/jsp/b/に置きたいのです。

なるべくZeroConfigurationに近づけたいので、
できるだけ記述(XMLやアノテーション)が少ない方法がいいのですが
何かまとめて設定する設定方法は無いのでしょうか?

700:デフォルトの名無しさん
08/05/20 01:09:13
struts2で<s:textfield...に属性を追加しようとしています。
struts2のTextFieldを派生したクラスを作って、
独自のTextFieldTagから呼び出してaddParameter()を呼び出してるのですが、
生成されたhtmlにこの属性が反映されていません。

デバッガで追って、Component#addParameter()で拡張属性が
parameterにputされてるのは確認したんですが、なにがいけないんですかねえ。
ちなみに追加しようとしているのはistlyle等です。

今更ながらstruts2を使ったことを後悔

701:デフォルトの名無しさん
08/05/20 01:21:19
ftlのテンプレートに書かれていないんじゃないの?

てか componentタグでスクラッチから出力した方が面倒なくね?

702:デフォルトの名無しさん
08/05/20 01:34:25
一応TextFieldの派生はやめてUIBeanの派生でやってみたんだけど
同じ結果だった。Componentからスクラッチだと属性多すぎない?

今ftlをググリ中

703:デフォルトの名無しさん
08/05/20 01:40:43
全部の属性インプリする必要あるの?

ftlは出力テンプレートの拡張子ね
多分 templates/simple/text.ftl


704:デフォルトの名無しさん
08/05/20 01:46:20
それは見つけたんだけど、
自分で属性を追加したい場合に参考になるURLとかある?
とりあえずクラスパスにおいてみたんだけどどうにもならん。

そりゃあ全部の属性は必要ないんだけど、後でcssStyleとか
必要になってから困るのも嫌だし。textfieldかUIBeanの派生にしたい。
というか、s2タグやめたい

705:デフォルトの名無しさん
08/05/20 01:49:47
よくみんなこんな設定ファイルやアノテーションの海を泳いでいられるな
なんかまだスパゲッティコードの方が順番に処理が負えるだけマシな気がしてきた

706:デフォルトの名無しさん
08/05/20 01:52:07
判っちまえば、こんなパラダイスねーけどな

707:デフォルトの名無しさん
08/05/20 02:00:38
俺には無理っぽいからComponentから自作することにする。
自作するときはページレンダリングなんて一種類しか使わないし、
ComponentTagSupportとComponentに分かれてるより、
JSTLのdoStartTag()でゴリゴリ書く方が楽じゃね?

708:701
08/05/20 02:11:40
Componentを拡張して。。って話じゃないよ
それなら textfield拡張したほうがいいでしょ

俺のは s:component タグの話ね、念のため

709:デフォルトの名無しさん
08/05/20 02:17:53
どっちもorg.apache.struts2.components.Componentじゃないの?
とりあえずそこから最低限の機能で作って行ってるんだけどmaxlengthとか
labelとかやっぱりいろいろ要りそうだなあ。

onXXX系を除いて、ftlを使わない方法で実装し直してる感じ。
すごおおおおおく無駄な気がする。

710:デフォルトの名無しさん
08/05/20 02:44:52
>>706
パラダイスっていうならftlの追加方法教えてくれよ(泣

>>708
そのtextfieldの拡張の仕方がわからんのでつまづいとるんだわ

711:デフォルトの名無しさん
08/05/21 13:08:19
そうそう、画面遷移の変更はそんなにないだろうし、
Actionのアノテーションに遷移書くようにすれば
ソース変更もそのActionだけにすることが可能で、わざわざ設定ファイルをいじらんでも。。ということだよね。

しかし未だにアノテーションで記述できずに、struts.xmlに書かないと動かないのもある。

そういえば、この前小規模案件のキット作り頼まれて、
「Strutsって設定ファイルの競合とか大変なんですよー」と泣きつかれたのを受けて、
可能な限り設定ファイルを分割+SubVersion管理にして競合起こさないようにしたら
今度は「ファイル多すぎですよー」とかくらいしか文句出なかった。
小規模でも分割大事だね。

712:デフォルトの名無しさん
08/05/21 23:12:02
iFitって使ってる人居る?

713:デフォルトの名無しさん
08/05/22 00:51:45
何だっけ?
東京方面で使わされるヤツだっけ?

714:デフォルトの名無しさん
08/05/22 01:01:13
struts2で<a href="...にactionのURLを入れたい時ってどうするの?
<a href="<s:url action="input" />">aaa</a>
こんな風にHTML属性の値の中にsタグ入れるのはかっこわるすぎるよね。
<s:a>タグをみててもわからないんだけど

715:デフォルトの名無しさん
08/05/22 09:01:31
URLリンク(struts.apache.org)

<s:url id="url1" …>で遷移先つくって
<s:a href="%{url1}">

JSP2.1使ってたら無理。


716:デフォルトの名無しさん
08/05/22 09:41:53
>>700
ちょっと時間があったのでやってみたんだけど

ftlを変更、tld追加したら、今度は追加した属性のsetterが見つかりません、、と嫌になるねぇ。



717:デフォルトの名無しさん
08/05/22 14:04:37
さんくす

英語のドキュメントも最後まで読まないといかんな

718:デフォルトの名無しさん
08/05/22 14:06:34
>>716
そこまで来たらTextFieldの派生クラスにその属性のsetter/getter
用意するだけじゃないの?

ftlを変更ってstruts2のjarの中のファイル?
自プロジェクトで新規にftlファイルを作って、
それを読み込ませる方法がわからないんだけど


719:デフォルトの名無しさん
08/05/22 16:07:28
struts2を使っています。
画像表示とかのアクションで、使用してるライブラリの関係上
responceに対して直接書き込んじゃうのでjspに
遷移したくないんだけど、こういう時はどうするのがstrutsらしいの?
とりあえずアノテーションで
@Result(name = "success", value = "")
としておいて、
return SUCCESS;
してみようかと思うんだけど。

アクションにしないで直接サーブレットにすべきなのかな。

720:デフォルトの名無しさん
08/05/23 06:19:37
return NONE;
にしたらできた。
Actionインターフェースみたらわかった

721:716
08/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
08/05/24 12:21:49

ftl
textareaタグの中であればどこでもいいので、
<#if parameters.{属性名}?exists>
{属性名}="${parameters.{属性名}?html}"<#rt/>
</#if>
を追加

tld:
既存Struts2TLDを一部拝借(textareaのtag要素から引用+istyle属性分の定義を追加。)

JSP&web.xml
追加したStrutsタグを宣言

順番にないものを潰していくだけなので難しくはないんだが…
激しくめんどくさいな~。
書いてて思ったんだが、拡張のサンプルソースキット提供の方が判りやすいね。

723:デフォルトの名無しさん
08/05/24 18:14:30
>>721
サンクス。ググったけど自分で拡張する方法が見つからなかったんだよね。
ftlで定義した"extend"をどこで使うのかと思ったけど
UIコンポートネントクラス#getTemplateDir()かgetDefaultTemplate()で
return "extend"しないと駄目だよね?

しかしこの面倒くささは、将来違う人が保守することを考えると導入をためらうね。
普通のstrutsタグですらJSTLにすべきか悩んでたのに



724:デフォルトの名無しさん
08/05/24 19:10:37
Frameworkの高機能化が進むと、拡張作業は複雑化せざるを得ないのかもね

725:デフォルトの名無しさん
08/05/24 19:45:41
>>699
@Resultも書きたくないってこと?
それなら@Namespaceかなあ
@Namespaceをpackageで一括指定することは可能だけど
各Actionで@ParentPackageは必要。
でもこれはまっとうなアプリ作ってれば定義してるよね。

@Namesapceを"/a"にすると
actionへのアクセスも/a/XXX.actionになる。
jspは/a/XXX.jsp

さらにjspのトップディレクトリを指定する方法はなんかあるのかなあ




726:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/24 20:25:05
>>724
というかまだ過渡期だから、進化の方向がちょっと間違ってると思うよ。
暗黙の了解が多すぎるのはグローバル変数多用と同じ害がある。
あれだって、どんなグローバル変数があるか、値を変更するときの
ルールはなにかっていうのが明確になってれば問題は無いわけだけど、
変数が多くなってくるとそうもいかない。

struts2ではWorkflowInterceptorでexclude宣言したメソッドなら
validate()が呼ばれないからinput()では呼ばれないけどexecute()では
呼ばれる。ほぼすべてのActionでの共通機能だから一カ所に
定義できて確かに便利。でもValidateInterceptorとの関連はどうで、
doExecuteValidate()を実装したらexecute()専用のvalidate処理が定義できて、
execute()直前のアノテーションでも定義できて、各フィールドでも定義できて・・・
っていうルールをすべてのアクションの開発者が知っていないと
ソースの解読すら大変、っていうのはちょっとね。

Java経験豊富でもstruts2経験の無い人に、このアクション修正してって
頼む前に教えないといけないことが多すぎる。

728:デフォルトの名無しさん
08/05/24 20:52:35
>>726
俺はWTP捨ててノーマルEclipseとMaven2でやってるよ。
普通にデバッグもできるしな。
WTPって長い歴史の割には未だになんかいまいちだし。

729:デフォルトの名無しさん
08/05/25 04:11:26
>>715
auのケータイがCacheコントロールを無視するので、毎回アクセスするURLが
変わるように<s:url>を拡張してdoEndTag()で毎回ユニークなURLに
なるようにパラメータつけてたんだわ。これなら戻るボタンの時に
通信発生しないで快適だし。

でもその独自パラメータもidに含めるためには、textareaみたいに
テンプレートから拡張しないといけないのかなあ

730:716
08/05/25 10:18:52
>>728
こういう手もある。

Maven2でWebキット作成→さらにmaven2でWTP用プロジェクトを生成する。
デバッグ作業や稼働確認が簡単にできるのでウチではWTPは重宝してる。

>>729
一回作ってしまえば、後は悩まず作れる…調べるのが面倒なんだよね。
修正箇所が多いのがめんどいだけ。

しかしsタグ(sxタグ)拡張して便利になるのを作ろうとすると大変だねー
慣れなのかな、やはり。

ちなみに、ウチでは、JSTLとStruts1タグ、JSP2.0をごっちゃにしちゃってる人がかなり多い。
その上、Struts2タグ+OGNLなんか出てくると、
「今度は一体どれで書くのが正しいんだ!」ってなってる人多いよ…

731:デフォルトの名無しさん
08/05/25 16:13:09
今、プロジェクトでstruts2+springを提案されてて、
試しに作ってみたんだが、どうみてもseam(JSF+Ejb)の方が使いやすいんだが
seamと比べてstruts2のメリットってなんだ?


732:デフォルトの名無しさん
08/05/25 16:23:31
Strutsという名前

733:デフォルトの名無しさん
08/05/25 16:25:12
まあ、名前だろうだろうな。
seamの方が使いやすいとは漏れも思うよ。

734:デフォルトの名無しさん
08/05/25 16:42:03
>>732 >>733

名前だけかORZ...

735:デフォルトの名無しさん
08/05/25 21:07:39
新規開発案件でもまだStruts?
ポストStrutsの決め手がない現状では仕方ないのかな・・・

736:デフォルトの名無しさん
08/05/26 11:05:06
>>730
OGNLやValueStackで任意の変数にアクセスして、
<s:property id="">で埋め込んだりするくらいなら
スクリプトレットでよくね?JSTLで基本的な整形をして、
拡張が必要なときだけスクリプトレットで値をいじってから
JSTLに渡す、みたいな。

taglibに限定するメリットって
1.ソースが見やすくなる
2.ビジネスロジックが紛れ込むのを排除できる
っていう2点だと思うんだけど、教育コストに見合わないよ。
へぼいPGの場合は2に限らずコードレビューしてプロジェクトの
ルールに則ってない場合は手直しさせるから、jspだけそういう
制限があったところで大差無いし。



737:デフォルトの名無しさん
08/05/26 11:06:47
>>731
「どうみても」なのはseamに慣れてるからじゃないの?
WebサーバーとAPサーバーが分かれてるプロジェクトで
seam導入しようとしたとき、アノテーション地獄でなかなか
理解できなかったよ。便利そうとは思ったけど。

738:デフォルトの名無しさん
08/05/26 11:36:10
JSP&Servletが最強です。

739:デフォルトの名無しさん
08/05/27 03:13:47
struts2のタグで、値をDoubleで持っていてjspで
DecimalFormatでフォーマットして出力するのはどうするの?
<s:property id="">で代入して表示?
みんなはActionで文字整形までやってるわけ?

740:デフォルトの名無しさん
08/05/27 13:06:10
jstlで

741:デフォルトの名無しさん
08/05/27 19:31:29
こんなのを見つけた
URLリンク(www.toshiki.net)

後々のメンテを考えたらJSTLの方がいいと思った

742:デフォルトの名無しさん
08/05/27 23:00:37
>>737
確かにseamには慣れてるけど、比較対処が簡単なlogin画面で明らかにコーディング量が違っていたよ。DBアクセスの為のBean作成やログイン後の情報を保持する部分とか。
struts2に慣れればもっと良い書き方が出来るのかもしれないが
アノテーションはXML地獄よりは確実にましだと思うんだけどな
確かにおっちゃん連中はついて来るのが大変そうだった


743:デフォルトの名無しさん
08/05/27 23:08:47
DBアクセスはstruts2/springの範囲外だからそこで比べても。
アノテーションとxmlは一長一短だけど、そこそこの複雑さの場合は
アノテーションの方が記述が分散する分学習が面倒だと思う。
xmlでいろんなライブラリ導入してxmlファイルがあちらこちらに
あってそれぞれの役割がよくわからないのが一番ひどいけどね。
アノテーションなら定義クラスにすぐアクセスできるけど
(Eclipseとか使って無くてもimportとアノテーション名を見ればわかる)、
xmlだとそもそも誰が読んでるのかすらわからないし


744:デフォルトの名無しさん
08/05/27 23:53:30
>>742
ログイン認証処理なんて、spring security使えば楽チンだよ

745:デフォルトの名無しさん
08/05/28 01:44:58
Strutsと直には関係ないだろうけど、オマイらメールのテンプレート処理とかなに使ってやってんの?

746:デフォルトの名無しさん
08/05/28 01:54:25
>>745
自前でstr.replaceAll(key,value)

747:デフォルトの名無しさん
08/05/28 01:55:22
駄目だ。struts2のタグは応用効かなさすぎ。
俺はstruts2をやめるぞジョジョォォォオオオオオ

748:デフォルトの名無しさん
08/05/28 01:59:03
>>747 そ、、、、そうかー???

使う側の応用力の問題ジェネーーーーーーーーノーーーーオオオ

749:デフォルトの名無しさん
08/05/28 02:00:39
てかOGNLって何でも出来すぎてあとでメンテで困るんじゃねーー
って感じなんだけど。

750:747
08/05/28 02:51:58
ValueStackはうまくいってるときは便利で強力だけど、
「望みの値が出ない」ときにどこが間違ってるのか検証するのが面倒。
struts2のComponentTagSupport系のタグだと処理が追えない。

751:デフォルトの名無しさん
08/05/28 20:36:17
ajaxとstrutsの相性ってどうなんですかね。
styleId属性使うんだろうけど。

752:デフォルトの名無しさん
08/05/28 22:24:38
名前忘れたけど、選択リストが複数出てくるGUI部品は内部でAJAX使ってたよ

753:デフォルトの名無しさん
08/05/29 22:08:43
EventDispatchActionってボタンによってjavascriptのvalidation切り替えたりできない?

754:デフォルトの名無しさん
08/05/29 23:35:55
>>745
Velocity

>>749
その通り。
もし使用に耐えられるのであれば、JSONプラグインを使ってAJAXタグと組み合わせるのも良いかもしれない。

>>751
2.0系はdojo0.4が同梱。
しかしdojoの現リリースと大きく離れていて、かつ欲しいのがあったりして困る。

>>752を補足すると、AJAXタグはそこそこある。
タブパネル、オートコンプリータ、ツリーパネルなども。

ちなみに、Struts2.0系で何か作ってる連中はとりあえず2.0.11.1にしておきましょう。
s:aタグがトンデモない状態だった。

755:デフォルトの名無しさん
08/05/30 03:04:08
>>753
EventDispatchActionは知らんけど、
Struts1.1でやったよ。


756:デフォルトの名無しさん
08/05/30 05:14:42
ELでMap#get()を呼び出したいときはどうしたらいいでしょうか。
${map.get(key)}だと
「デフォルトの名前空間が指定されていない時には、関数 get はプリフィクス付きで使用しなければいけません」と出ます。

OGNLなら%{map.get(key)}で取り出せるんだけど。
s2のタグにformatNumberがあればEL式と併用しないでいいのになあ

757:デフォルトの名無しさん
08/05/30 06:46:53
${map['key']}
keyが変数なら ${map[key]}
ちなみに、「key」が実際のkey名でプロパティ名として使える場合は
${map.key}でもOK
JavaScriptの連想配列アクセスに似ている

758:デフォルトの名無しさん
08/05/30 10:10:56
>>753
form分けろ

759:デフォルトの名無しさん
08/05/30 10:31:52
>>756 S2タグとELの混在利用なんてとんでもない間違い

760:デフォルトの名無しさん
08/05/30 14:38:00
>>759
じゃあ数値フォーマットはどうやんのさ?
いちいち>>741みたいにフォーマット外だしにして
メッセージフォーマット使うの?

761:デフォルトの名無しさん
08/05/30 14:46:08
>>757
ありがっとさん。
ママ、僕にも出来たよ

762:デフォルトの名無しさん
08/05/30 15:20:34
struts2のタグが生成するxhtmlをhtmlにする方法ありますか?
<constant name="struts.ui.theme" value="simple" />
としてもxhtmlみたいなのですが。

古い携帯にも対応したいのでhtmlにしたいんです。


763:デフォルトの名無しさん
08/05/30 16:47:48
s:iteratorで見てるカレントオブジェクトとその上のactionとか
requestで同じ変数名を使ってるときに、上の方を参照するには
どうするんだっけ?

どこかのwebサイトで見かけたんだけどなあ。どこだったっけなあ

764:デフォルトの名無しさん
08/05/31 19:27:17
>>760
数値フォーマットはJSTLでいいんじゃない?
S2タグにあっても良さそうなんだけど、fmtないんだよね~

765:デフォルトの名無しさん
08/05/31 23:10:37
>>764 JSPファイルはきっとぐちゃぐちゃだなww

766:デフォルトの名無しさん
08/06/01 03:18:28
>>761
ボク、りっぱになったわね
大き過ぎて口に入らないわ

767:デフォルトの名無しさん
08/06/01 09:48:32
>>765
どうやったらそこまでぐちゃぐちゃになるんだ…?

768:デフォルトの名無しさん
08/06/03 00:04:36
>>728
お前は俺か。Maven最高。pomがちょいアレだけど。
WTPマジうんこ。

769:デフォルトの名無しさん
08/06/03 00:22:06
MavenもWTPも両方使うだろJK

770:デフォルトの名無しさん
08/06/03 08:18:22
struts2で
■■■■■
上記の様に複数の画像をサブミットボタンとして並べると画像間に隙間が空いてしまいます。
調べてみたのですが回避する方法見当たりませんでした。
隙間を開けずに画像を並べる方法ありましたら教えて下さい。



771:デフォルトの名無しさん
08/06/03 14:18:34
>>769
WTPは別に無くてもいいだろう。
デバッグもこの方法ならWTPじゃなくても問題ないよ
URLリンク(goodjob.boy.jp)

772:デフォルトの名無しさん
08/06/03 15:29:17
>>768
maven スレは過疎っているので、暇なときに遊びに来てください。
自分は maven はそれほど万せーでもないけど(微妙にめんどう)

773:デフォルトの名無しさん
08/06/03 15:32:18
>>771
jetty って jsp 動かせるの?



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch