5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

《Struts》

1 :デフォルトの名無しさん:02/05/31 23:11
オープンソースStrutsがいい感じです。

Struts
 http://jakarta.apache.org/struts/
Ja-Jakarta
 http://www.ingrid.org/jajakarta/struts/


2 :デフォルトの名無しさん:02/05/31 23:12
同感なんだが……

3 :デフォルトの名無しさん:02/05/31 23:14
2ゲットずさーじゃないの?

4 :デフォルトの名無しさん:02/05/31 23:14
じゃあ、4 ゲットずさー

5 :デフォルトの名無しさん:02/05/31 23:17
こんなスレありますけど。

《The Jakarta Project》
http://pc.2ch.net/test/read.cgi/tech/1019996589/


6 :デフォルトの名無しさん:02/05/31 23:19
なら、こんなスレもある。

Servlet/JSP のフレームワークを語るスレ
http://pc.2ch.net/test/read.cgi/tech/1001950590/l50

7 :デフォルトの名無しさん:02/05/31 23:20
strutsの話題は絡みにくいからいいんじゃない。

8 :デフォルトの名無しさん:02/05/31 23:21
とりあえず、読み方を教えれ。

9 :デフォルトの名無しさん:02/05/31 23:22
いまさらだな。

10 :デフォルトの名無しさん:02/05/31 23:25
すとらっつ

11 :デフォルトの名無しさん:02/05/31 23:31
このフレームワークを仕事で使ってる人っている?


12 :デフォルトの名無しさん:02/05/31 23:33
>>6 が全て

13 :デフォルトの名無しさん:02/05/31 23:35
>>6 を読め


14 :デフォルトの名無しさん:02/05/31 23:37
>>6はまどろっこしい

15 :デフォルトの名無しさん:02/05/31 23:38

ただのサーブレットラッパー。
何が MVC やねん。そんなん MVC とは言わんわ、ボケ。

16 :デフォルトの名無しさん:02/05/31 23:41
XMLで定義するのがメンドクサイ。

17 :デフォルトの名無しさん:02/06/01 00:06
JAVAのフレームワークは全部覚えるのが大変すぎ。
便利なんだろうけど、よくできた説明書がないから、
自分で作った方が(精神的に)楽だったりする。

18 :デフォルトの名無しさん:02/06/01 00:31
>15(だけを対象としているわけではありません)

>>ただのサーブレットラッパー。

Strutsが提示しているこのモデルよりも素晴らしい、
皆様が作成・利用されている
Webアプリケーションフレームワークアーキテクチャについて、
このスレにおわす皆様の賢察を拝見したく存じます。

差し支えない範囲でかまいませんので、よろしくお願いします。


19 :デフォルトの名無しさん:02/06/01 00:34
スツルツ

20 :デフォルトの名無しさん:02/06/01 00:34
>>11
使ってるよ。カスタムタグ作るの面倒で、ちょうど手ごろだったから。
理由はそれくらいだよ。中身はかなりクソだと思ってる。

特にBeanUtilsあたりのstaticメソッド呼びまくりは最悪だと思う。
まぁ、全体的に設計のレベルがそんな程度だしね。

既にあるものを最大限使うって考えれば悪くはないかな?

21 :デフォルトの名無しさん:02/06/01 00:42
>>18
そういう話題なら >>6 を 100 回読み直せ。

22 :デフォルトの名無しさん:02/06/01 00:55
すとらとす

23 :18:02/06/01 02:06
>>6のスレは以前から読んでますが、
Webアプリケーションソフトウェアフレームワークに関する
アーキテクチャのオルタナティブって提示されているようには
読みきれなかったんですが……。
100回読んでないからダメなのか。

私自身は>>20と同じような、「ちょうど手ごろ」という観点で
Strutsは使わせてもらってます。

「全体的に設計のレベル」が上がると、
どのようなアーキテクチャが考えられるのか、
(Servlet + JSP といった、BluePrintsに言うところのWeb層までのレイヤ)
自分としてはStruts以上のものを考えられていません。

なので、クソじゃないWebアプリケーションフレームワークの
有りようについて、興味があって書き込んでました。



24 :デフォルトの名無しさん:02/06/01 04:13
厨房ネタですまん。Strutsとかのフレームワークと
WebSphereやJBossみたいなアプリケーションサーバ
とは一緒に使えるものなの?
 どうもフレームワークというやつはアプリケーション
サーバで提供されている機能みたいな気がするんだけど。

(月末締めの納品物件やっと作り終わったので寝れる。)


25 :デフォルトの名無しさん:02/06/01 12:24
>> 16
GUIで設定するツールがあったはず。詳細は知らん。

>> 20
カスタムタグってStrutsではビュー関連しか同梱されてなかったけど、
Apatchの別プロジェクトでビジネスロジック周りのタグリブもあったよね。
みなさん。タグリブどの程度使ってますかー?


26 :デフォルトの名無しさん:02/06/01 12:38
>>24
アプリケーションサーバには依存しないで使えるよ。
なにはともあれ、深夜までお疲れ様でした。

27 :20:02/06/01 13:12
>>23
Strutsの概念的な設計はそんなに悪くないと思うよ。
というか、昔から長い間使われてきた手法だし。

設計がクソってのは実装に関する設計って意味ね。

今は結局StrutsをカスタムタグとURLのマッピングだけに利用して、
それ以降のビジネスロジックに対するイベント通知を制御するような
フレームワークを自作して使ってます。

オマケ機能としてEJBに似たトランザクション管理、入力値のチェック、
ログ管理、メッセージをDBで管理、SQLをXMLに記述してソースから
追い出すといった機能も付けたけど(笑

28 :デフォルトの名無しさん:02/06/01 13:26
>>27
SQL を XML でって、俺も昔やろうと思ったんだが...
シングルクォートのエスケープがウザすぎて使い物にならないと思うが。

29 :18:02/06/01 15:17
>>27

Strutsのアーキテクチャ(所謂MVCmodel2)がそれほど悪くない、という点ではagreeです。
また、「実装に関する設計」がクソ、という点についてもagreeです。

プレゼンテーションや画面遷移、入力フォームの
コントロールWeb層までのベース(まさにフレームワーク)としては
大いに利用させてもらってます。

28にもありますが、SQLをXMLでハンドルするって、
難しいなあ、と感じているのですが、解決のコツとか、気をつけるところってあります?

トランザクション管理は、いまはJDBCのwrapperみたいな感じで対応しているのですが、
EJBライクな方法のほうが良いんでしょうか。
EJBは勉強不足なので、ちょっと調べてみようと思います。


30 :デフォルトの名無しさん:02/06/01 15:24
本当にあれ使ってる人達がいるんだな
最初見たときは JDBC 以下のクソインターフェースだと思ったが。

31 :デフォルトの名無しさん:02/06/01 15:35
>>30
お前の使ってる素晴らしいインターフェースを教えれ


32 :20:02/06/01 15:57
>>28-29
SQLのサポートはいろいろ考えたんだけど、かなりシンプルな姿に落ち着きました。
JDBCでめんどくさいのってSQLを文字列リテラルで扱わなきゃいけないのと、
結果セットからいちいち列を取得してビーンに反映させる部分なんで、
その部分を簡単に扱えるようにしただけです。

最初はエンティティとリレーションを定義して・・・って感じで考えてたんだけど、
DB毎に構文違ったりするし、条件なんかは逆にわかりにくくなりそうだったんで。

<query name="emp.select" type="test.Employee">
 <column name="ename" property="emoloyeeName" />
 <column name="hiredate" property="hireDate" />
 SELECT ename, hiredate FROM emp WHERE empno = :empno $condition
</query>

実行時にパラメータを渡すことで、:empnoは?に、$conditionはSQL文に
展開して動的に条件を追加したりできるって感じです。で、SQL投げると
指定したクラスのインスタンスをコレクションに入れて返してくれる、と。

トランザクション管理は、ビジネスロジック部分の呼び出しを完全に包める
構造になってるので、フリーのJTS実装を使ってEJBもどきをしてます。

33 :デフォルトの名無しさん:02/06/01 21:57
>>32
やっぱ WHERE 句って↓みたいに書くわけ?

〜 WHERE FLAG = '0' AND AMOUNT > 100 AND HISTORY < 10

34 :33:02/06/01 22:13
う、エンティティが利いてしまった

〜 WHERE FLAG = &apos;0&apos; AND AMOUNT &gt; 100 AND HISTORY &lt; 10

35 :24:02/06/01 22:36
>>26
まじめに答えてくれてありがと。来週からちょいと暇になるので
このあたりも調べてみるわ。

36 :デフォルトの名無しさん:02/06/02 03:06
>>32
実行の度にXMLを呼ぶようなつくりですか?
重くないかなと考えますが。

37 :デフォルトの名無しさん:02/06/02 03:54
>>36
一回だけXML読み込んで対応するクラスに突っ込み、そのクラスを使いまわすとか、
Singletonで構成して読み込むのを一回だけにするとか、
そこらへんは何とでもできるのでは?




38 :デフォルトの名無しさん:02/06/02 11:55
|
|⌒彡
|冫、)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|` / < Struts?
| /   \_________________
|/
|


|
|  サッ
|)彡
|
|
|


39 :デフォルトの名無しさん:02/06/02 14:09
>20
Joinとかも扱えるの? Viewを定義して逃げるとか?

自前でXMLを書くのがめんどくさかったので、DBのスキーマ読み込んで、
Beanと基本的なSQL発行するクラスを自動生成する仕組みを作ってみた。
まだ実用はしてないけど。

ところでJTSのフリー実装ってどこにあるのでしょう。くれくれで申し訳ないですが。

40 :20:02/06/02 23:12
>>33
シングルクォートはエスケープする必要ないのでは?

〜 WHERE FLAG = '0' AND AMOUNT > :amount AND HISTORY < :history
といった感じになります。比較演算子はどうしようもないので。

>>36-37
定義ファイルのリソース名をキーにしたSingletonでXMLの解析とSQL文の分解まで済まして、
使うときはパラメータやJDBC接続を格納するオブジェクトにアタッチして使うようにしてるので、
パフォーマンスの問題はほとんどないと考えてます。・・・実測はしてませんが(^^;

>>39
SQLで書ければ何でも使えると思います。大した処理はしてないので(笑
VIEWで定義するのも手でしょうね。以前のプロジェクトではそうしました。

JTSのフリーの実装はTyrexっていうトランザクションサーバを使ってます。
Tomcat 4.0以降にも組み込まれてるんですが、接続プールすら使えないので
自力で設定しないと意味ないです。商用ではWebObjectsが使ってるらしいです。

必要なかったので検証してないですが、分散トランザクションも出来るみたいです。
ただし、0.9.7は使わない方がいいです。マルチスレッドの時にコミットがコケます。

41 :39:02/06/03 00:27
>40
情報ありがとうございます。今度触ってみよう>Tyrex
from句をXML上にべたで書いてたんですね。見逃してた・・・^^;


42 :デフォルトの名無しさん:02/06/04 01:16
>>40
こういうのあったんですね。>Tyrex
今度いじってみます。

ObjectWebのプロダクトとかぶってる部分も多いけど、
あっちと比べて性能的にはどうだろう・・?

43 :デフォルトの名無しさん:02/06/04 14:05
ちょっと質問です。
Strutsで、ActionClass以外の場所からDataSourceにアクセスするには
どのようにしたらいいんでしょうか?
Strutsのドキュメントに「ActionClassにBizLogicを書くな」といわれ
ActionClassからDB接続部を切り離したいのですが、切り離すと空の
DataSourceがかえってきてしまいます。。

識者の方々、どうかご助力を・・・

44 :デフォルトの名無しさん:02/06/04 22:38
やっぱりStrutsってマイナーなのね

45 :デフォルトの名無しさん:02/06/05 21:32
>>43
そんなにClassForNameがイヤなのか?

46 :デフォルトの名無しさん:02/06/06 00:01
>>43

DataSourceへの参照を持つ、ビジネスオブジェクトに対するwrappe
のようなrコンテキストオブジェクトを、Actionからの呼び出し先に渡す、
みたいなやり方はどうでしょう?


47 :デフォルトの名無しさん:02/06/09 07:41
age

48 :デフォルトの名無しさん:02/06/11 23:20
>>42
Strutsの次のバージョンからDBCPとかいうのに変わるらしいYO

49 :デフォルトの名無しさん:02/06/12 21:43
BeanUtilsつかってる人いますかー。

50 :デフォルトの名無しさん:02/06/12 23:57
strutsというよりもjakartaのcommonじゃない?


51 :デフォルトの名無しさん:02/06/13 00:07


52 :48:02/06/13 14:49
>>50
いや、TyrexがDBCPに変わるという話をしたんだが・・・

53 :デフォルトの名無しさん:02/06/14 00:44
>>49
使ってるよ。インデックス付きプロパティとか扱うのめんどいから。
でも、ConvertUtilsが最悪だから、自作のと使い分けてる(笑

>>52
それってStrutsがTyrexをサポートするって事?

54 :デフォルトの名無しさん:02/06/14 01:28
Web Services Developer Pack check out !!



55 :デフォルトの名無しさん:02/06/14 22:54
>>54

What's this?

56 :デフォルトの名無しさん:02/06/15 09:31
>>55
↓のことでしょう。
ttp://java.sun.com/webservices/downloads/webservicespack.html

57 :デフォルトの名無しさん:02/06/16 15:59
定期age

58 :デフォルトの名無しさん:02/06/16 19:25
スレちがいな気もするけど、永続化ってみんなEntityBean使ってる?
EJB2.0仕様でツールサポートがあればそこそこ使えるような気がしてるんですが
それともJDO待ちですか?

59 :デフォルトの名無しさん:02/06/16 23:57
>>58
ツールサポートって、JBuilderのEJBデザイナじゃだめなの?
簡単にEntityBeanとか、EJBを作れるんだけど...

60 :58:02/06/17 23:16
>>60
Enterprise版なんて高くて買う気しません(涙) IDEはeclipse使ってるし・・・
ところでJBuilder、2.0仕様対応したんですか?
昔試用版を使ったときは、1.0仕様に独自仕様追加して無理やり関連サポートしてて、
もの凄く嫌だった記憶があるです。

61 :デフォルトの名無しさん:02/06/22 10:29
age

62 :デフォルトの名無しさん:02/06/25 13:19
>>60
Eclipseってどうですか?

63 :58:02/06/26 00:27
>>62
JavaのIDEとしては軽くて機能も十分です。詳細はeclipseスレ見てね
Struts用のアドインあるらしいですね。と無理矢理Strutsネタに戻してみる

JavaWorld見ながらStruts弄ってみたけど、リフレクション多用してるからかデバッグ時が面倒。
Formのパラメータ名とか間違ってたりすると、どこが悪いのかわかんなくなっちゃう。俺が慣れてないだけ?

64 :デフォルトの名無しさん:02/06/28 23:47
いまいち盛り上がらないね。
個人的には業務開発で使用した話とか興味あるんだけど。


>>62
struts-consoleのプラグイン対応版が早く出てほしいね。




65 :デフォルトの名無しさん:02/06/28 23:57
62>63

66 :デフォルトの名無しさん:02/07/02 13:19
>>60
JBuilder6とJBuilder7では、EJB2.0に対応しているそうです。

「独自仕様」の部分は、言っている意味がわかりません。
2.0仕様が確定するまで1.xベースで補うべき部分は「各社」製品独自の
仕様になっていたと思います。


67 :デフォルトの名無しさん:02/07/02 13:20
「Struts」トレーニングを見つけました!!
https://psc.borland.co.jp/training/servlet/MainServlet/Introduction?TRAINING_KIND_CODE=23

68 :デフォルトの名無しさん:02/07/02 22:13
すんまへん、誰か教えてケロ…。

サーバーサイドJava初心者っす。業務で無理矢理やらされてまん。

Strutsタグでiterateってあるでしょ?
アレにindexed=trueって属性を加えると
画面上で変更した値を自動的にBeanに反映してくれるらしいんだけど
checkboxの場合、非チェック→チェック は上手く行くんだけど
チェック→非チェックは上手く行かないんです…。

誰か同様の現象が発生した人います?

69 :デフォルトの名無しさん:02/07/03 00:23
>>68

外した情報自体はサーバにおくられへんから,状態が上書きされずに
残るってこと?
reset() で初期値設定するって対応をすればよいってはなし?

70 :デフォルトの名無しさん:02/07/03 01:17
>>69

ちょっと調べてみたら、チェックボックスの非チェックってサーバに送られないんすね。
reset()がどのタイミングで呼ばれるもんなのか、または自分でAction::perform()で呼び出すのか
ちょっと分からないんですが。
そもそも存在すら、このレス見るまで知らなかったし・・・。

初期状態でチェック状態のチェックボックスを非チェックにしてもBeanに反映されないんですよね?
てことはどれを非選択にしたかってどうやって特定するんですか?

71 :69:02/07/03 21:32
>>70

むー。
reset()がどのタイミングで呼ばれるかだけど、
ActionServlet#processPopulateメソッドの中。
リクエストパラメータをActionFormにコピーする前に
呼びにいってる。つまり,絶対処理されるし、開発者が自分で
呼び出すもんでもない。(呼んでもいいけど結果は…わかるでしょ)
つか,Strutsなんて単純な構造なんだから,
自分で調べたほうが早いよ。

後半の疑問だけど…
サーバに送られるのはそのリクエストごとのデータであって,
それは単にどれがチェックされているか,のデータでしかない。
つまり「前の状態がどうであったか」などというのは,そもそもそのまま
では知りようがない。
つまり,ユーザーロジックで状態をHttpSessionなりに保管しておいて,
それを比較するしかないっつーことなのれす。
# あーもちろんクライアントでのJavaScriptとhiddenフィールドを
# 組み合わせてハンドリングするってやりかたもあるでしょうけどね。
# まそのへんはお好みでやりなされ

72 :68:02/07/05 02:44
>>71

レス遅れてごめんちゃい。

ようやく言ってる意味が分かりました。アホですね、俺。
reset() → set〜() てな順番でメソッドが呼び出されるわけですね。
だからreset()で初期値を設定せよ、と。

色々すみませんでした。


73 :デフォルトの名無しさん:02/07/08 01:53
すみません。誰か教えて下され。

strutsの<html:select>タグ、又は<html:options>タグで
submit時に対応するFormBeanに選択値をセットしてくれるような属性ってあります?

あと、<html:select>タグのproperty属性って初期選択値の指定っていう意味でいいんですかね?

すんませんが誰か教えてケロ・・・・。


74 :sa:02/07/09 12:48
<html:radio>タグの属性valueに
どっかのClassで定義した定数とかを使いたいのですが、
どうすればいいのでしょうか?

例えば、
<html:radio name="test_radio"
property="test_id" value=<mytag:getConst key ="hoge">/>
こんな形のタグの中にタグって書けないんですか?

75 :デフォルトの名無しさん:02/07/11 00:12
>>73
FormBeanのプロパティ名と<html:select>のpropertyを一致させればいい。

>>74
リファレンスで [RT Expr] が付いてる属性は、
value="<%=Integer.MAX_VALUE%>"みたいな使い方ができる。

76 :デフォルトの名無しさん:02/07/12 01:41
>>75

レスありがとーございます。
マジで誰かの助言を待ちわびてました。

便乗してもう一つ質問させて頂きます。
上の質問の通りに、FormBeanのプロパティ名と<html:select>のpropertyを一致させる際、
option値が日本語文字列だと上手く行かなかったりします?

試してみた感じだと、option値が日本語の場合は挙動がオカシイっす。
プルダウンリストの項目を選択して、Submitしても再表示後には選択値が元に戻っちゃいます。
おっかしーなと思ってFormBeanのset〜()内でSubmitされる際に渡ってくる値を
トレースしてみたのだけれど文字が化け化け・・・。
画面上のプルダウンリストには正しく表示されてるのに変ですね。

ただoption値をアルファベットにしたら上手く動作しました。
原因知ってる人いたらおながいします。

77 :75:02/07/12 13:30
>>76

<option>の値で日本語の文字列渡してること自体が気持ち悪い。

他の<input>系のタグからは文字化けせずに値は取れてるの?

Servlet API 2.2系の実装だとエンコーディングの変換してくれないから、
(WebSphereだと勝手に変換されるみたいだが)ActionServlet.populate()
あたりをオーバーライドして自前で変換かけなきゃいけない。

78 :デフォルトの名無しさん:02/07/14 14:25
Struts+servlet+jspという組みあわせは今使っているのですが
i-modeとかいろんな端未に対応しなければならなくなりました。
どうやらXMLとxsltでやるのがよさそうですが、Strutsとそのへんって組み合わすことはできるのでしょうか?

79 :デフォルトの名無しさん:02/07/15 00:56
>>78
最新のJavaWorldにXML(XSLT)によるStrutsの拡張ってのが載ってる。
叩き台としてはよいのでは?

原文記事およびサンプルソースは下から。

ttp://www.javaworld.com/javaworld/jw-02-2002/jw-0201-strutsxslt.html

80 :76:02/07/15 01:36
>>77

ありがとーございます!あなたは神です。
Formクラスのset〜()内でエンコーディング変換処理をかませたら上手く行きました。

またよろしくおながいします。

81 :デフォルトの名無しさん:02/07/16 01:19
〉〉79
貴重な情報ありがとうございます。
JavaWorld入手して調べてみます。


82 :デフォルトの名無しさん:02/07/16 16:03
表現方法がわからなくて困っているのですが、
data1,data2,data…と名付けられたデータ(任意の長さ)を保持/取得する
FormBeanのメソッドはどのように書くのでしょうか?


23 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)