フレームワークStrutsをいじくり倒す人の為のスレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/04/28 08:14ID:Ub0n1fGRhttp://www.ingrid.org/jajakarta/struts/
http://jakarta.apache.org/struts/
0240239
04/01/04 05:12ID:mf+7Ni9Jwebappsディレクトリ配下にあるwarファイルを
CATALINA_HOME\webapps配下に設置しました。
特に他にやることはないはずなのですが…
0241nobodyさん
04/01/04 05:16ID:???エラーメッセージに「Permission denied」とあるとおり。
パーミッションの問題。
TomcatのworkディレクトリにTomcat実行ユーザの書き込み権限がないため。
なぜindex.jspがあるディレクトリと違うディレクトリでエラーになるのかは
Struts以前にJSPの勉強が必要。ヒントは、
ファイル名が「index_jsp.java」になっていること。
0242239
04/01/04 06:16ID:mf+7Ni9Jパーミッション変えたら出来ました!ありがとうございます。
最近Linuxをいじり始めたばかりで…ご迷惑かけました。
ヒントの部分なんですが、「index_jsp.java」というのは
javaファイルに変換されて、work上でコンパイルされているということで、
このとき書き込みできないとコンパイルしようがないってことですかね?
0243nobodyさん
04/01/04 22:45ID:???鞍替えしますた。
0244nobodyさん
04/01/07 02:45ID:???おっそろしく楽だな。
0245nobodyさん
04/01/10 15:18ID:qk2y/XVpA(条件画面)→B(詳細画面)に画面遷移するとき、
Bの画面に必要な情報を取得するロジックやらSQLは、
AとBのアクションクラスのどっちに書けばいいの?
今やってるプロジェクトでは、
1)A画面のリンクを押すと【A.doにForward】
2)Aのアクションクラス
1) SQLのキー情報をbeanにセット
2) 【B.do にForward】
3)Bのアクションクラス
1) beanからキー情報取得
2) SQL発行〜BのFormBeanにセット
3) getInputメソッドでB.jspを取得してそこにforward
なんだけど、これって1動作に「.do」を2回通ってるから、
アクションの連鎖というやつなのかな?
アクションの連鎖は「struts in action」という最近出た本によると、推奨されてない
ようだけど…どうなんだろ。
皆さんのフレームワークではどうやってますか?
0246nobodyさん
04/01/10 22:05ID:???0247nobodyさん
04/01/11 11:39ID:urpDrM8h>A画面からB.doへ跳ばさないのはなぜだ?
やっぱり変なんですかね?
うちの社内のフレームワークはこれが標準になってるみたいです。
ちなみにかなりの大規模プロジェクトです。
メリットとしては、
・1画面(jsp)につき1アクションクラス、という解り易い構図ができあがる。
例えばB.jspの画面作成ロジックはB_Action.javaにある、みたいな。
※通常のやり方だと、B.jspの画面作成ロジックをA_Action.java
に書くのでわかりにくい。
逆にデメリットとしては、
・遷移先のjsp名を次の画面のgetInputで取得している、
つまりstruts-configの <forward> ではなくて <Action input=> で
取得しているので、strutsの標準的な使い方ではなくなっている(?)
ことかな?
0248nobodyさん
04/01/11 11:53ID:urpDrM8h1画面につき1アクションクラス、というのは具体的にはこうです。
・<global-forwards>はこんな感じ
<forward name="A" path="/A.do">
<forward name="B" path="/B.do">
・<action-mappings>はこんな感じ
<action path="/A" type="A_Action" input="/A.jsp" name="A"/>
<action path="/B" type="B_Action" input="/B.jsp" name="B"/>
A画面のボタンを押したら、
(1) A.do にサブミット
(2) A_Action実行 → findForward("B")
(3) B.do にフォワード
(4) B_Action実行 → getInputで "B.jsp" をゲット
(5) B.jsp 表示
てな動きです。
こういう使い方は邪道なのでしょうか?
0249nobodyさん
04/01/11 12:21ID:???0250nobodyさん
04/01/11 15:01ID:???1画面につき1アクションクラス、というのは
「jspにたどり着くためには*.doを経由させる」ということで
kuso.do→kuso.jsp
unko.do→unko.jsp の時の遷移は
kuso.doにリクエスト→kuso.jsp表示→
kuso.jspからunko.doにリクエスト→unko.jsp表示 なのであって
「*.jspの送信先がそのjspに対応するアクションクラス」というのは
つまりあれだ、
氏ね
0251nobodyさん
04/01/11 15:05ID:???つーか確かに最初はよくワカランが、
2、3日〜長くても一週間もあればぼんやりと全体像は見えてくるだろ?
少なくとも画面遷移の仕方とかさ。
カスタムタグの種類や使い方がおぼつかない、というのならまだしも。
0252nobodyさん
04/01/11 18:16ID:???>>244でも使えば?
GUIで設計できる上に遷移図の印刷も出来るから
自分らがどんだけクソな作業してるか実感できると思うよ。
0253248
04/01/11 22:13ID:p9BR0Sf1でも、この設計でだいぶ開発が進んでいるので、
再設計しての後戻りはできそうにないんです。
動きに問題がないのであれば、このまま行くしかない…(;_;)
0255nobodyさん
04/01/12 15:03ID:qVNFm6x60256nobodyさん
04/01/15 00:31ID:viAU4C2Jイクリプスで、すべて再ビルドを選択すると
ApplicationResourcesが文字化けしてしまいます。
原因はソースフォルダ直下にApplicationResourcesを置いているからなのですが、
良い管理方法が見つかりません。
指定したファイルを削除しないで「すべて再ビルド」、又は
指定したファイルにだけnative2asciiを当ててくれる
みたいな方法ってありますか?
EasyStrutsやらのプラグインを入れれば解決したりするんでしょうか。
そもそもソースフォルダにApplicationResourcesを置いているのが間違いでしょうか・・・
良い管理方法をご教示ください。
Tomcat,winXP,eclipse2.1,struts1.1
0258nobodyさん
04/01/15 13:02ID:???0259nobodyさん
04/01/17 03:37ID:???しかし、一体何をやっているか、わけがわからんかった。
現在、Eclipse+Struts Studio。もう効率はいいし
Struts StudioのおかげでStrutsの全体像もつかめて
何をやっているか意味がわかるようになった。
>>245なんかを見てると、去年の自分を見ているようで歯がゆい。
0260nobodyさん
04/01/17 12:02ID:???ひょっとしてそれ使わんとできへんこと多い?
0261nobodyさん
04/01/17 12:44ID:???0262nobodyさん
04/01/18 20:53ID:???別に全く使わなくても問題なし。
0263nobodyさん
04/01/19 20:13ID:???なんだ。Strutsを「いじくり倒す」といいながらそれだけの技術力もなく、
現行のStrutsに「粘着する人」の為のスレでしたか。
いじくり倒してんなら分かるだろ?
0265260
04/01/19 21:54ID:???0268singles
04/01/20 14:42ID:vmpc82Q3「かんたんStruts 」にはやられた。
本当に改訂版?
CD付きなのに、全ソースじゃないし。
実行時エラーは出るし。バグだらけだよ。
やすがにコンパイルエラーはなかったけど。
損した!!
0269nobodyさん
04/01/22 20:16ID:???c:forEach でコレクションをくるくるってのがStrutsでできません。
自動生成されたjavaのソースを見ると、itemsに設定したものが
コレクションとしてでなく文字列として渡されてしまいます。
0270nobodyさん
04/01/22 20:23ID:???あともしStrutsのタグライブラリを併用しようとしてるなら出力時はelを使わねぇと出ねぇぞ。
<bean-el:write 〜/> など。
しかもサーブレット2.3からじゃないと動かない。
0271nobodyさん
04/01/22 21:55ID:???それともStrutsの次期バージョンには興味がないのか。
0272nobodyさん
04/01/22 22:52ID:???JSTLがうまく使えないっつうのなら、スレ違いだろ。
0273nobodyさん
04/01/23 09:41ID:???0274nobodyさん
04/01/23 20:45ID:???0275nobodyさん
04/01/24 23:56ID:NRU8Gq4U変な掲示板
0276nobodyさん
04/01/25 00:18ID:56Ciihh9なんか糞
0277nobodyさん
04/01/27 09:45ID:DNV4wH9rstruts初心者です。
BBS作ってるんですけど、どうやら自動で
ResponseUtils.filterを通されてるらしくて
改行を<br>に置き換えたりとかしたいんですけど
すべて
& → &
みたいな感じで変換されちゃってそのまま表示
されてしまいます。
なんとかこいつを黙らす方法ないでしょうか?
0278nobodyさん
04/01/27 12:40ID:???<bean:write ... filter='false'/> でどうよ?
http://www.janit.com/TechnoInf/Java/Struts1.1b3/userGuide/struts-bean.html
0279nobodyさん
04/01/27 22:45ID:XpbhJdiOすみません。
<bean:write name="onemsg" property="msg" filter='false'/>
でやってみたんですけど、駄目でした。
<pre><bean:write name="onedata" property="msg" filter='false'/></pre>
はできはするけど力技っぽくてプログラム的に美しくないとか思うのは思い上がりですかね?
0280nobodyさん
04/01/27 23:14ID:???ちょっと待て。
<pre>で囲ったって、&amp; をそのまま表示はできないぞ。
まさかと思って IE6 と Mozilla 1.6 で表示してみたが、
やっぱり &amp; は &として表示される。
とりあえずここ読んどけ。あと、実体参照という言葉を覚えろ。
http://mind.f.fiw-web.net/program/perl/tips0506.html
http://east.portland.ne.jp/~sigekazu/html/entities.htm
0281nobodyさん
04/01/27 23:14ID:XpbhJdiOすみませんでしたm(_ _)m
大ボケかましとりました。
<bean:write ... filter='false'/>
でいけました。
どうもありがとうございました。
0282nobodyさん
04/01/28 22:12ID:15MYH/xw言われ始めているけどどうなんだろう。
下の記事、議論を巻き起こしています。英語だよ。
ttp://today.java.net/pub/a/today/2003/12/11/mvc.html
0283nobodyさん
04/01/29 09:20ID:???0284nobodyさん
04/02/04 19:53ID:???ってどっかにないですかに
0285nobodyさん
04/02/04 19:54ID:LrI+0eVy0286nobodyさん
04/02/04 19:55ID:???0287nobodyさん
04/02/05 05:33ID:g7RFhJQThttp://www.ingrid.org/jajakarta/struts/struts1.0/ja/target/documentation/struts-logic.html#iterate
0288nobodyさん
04/02/05 14:24ID:???それとも使わないほうがいい?
いろいろな面から意見を聞きたいです。
0289nobodyさん
04/02/05 16:42ID:???実はスクリプトレットで書いちゃった方が楽だけど、無理してる。
0290nobodyさん
04/02/22 05:30ID:???もうサーバー移転して半年にもなるので、こっちにしようよ。
ttp://www.jajakarta.org/struts/struts1.0/ja/target/documentation/struts-logic.html
ただ、>>284が求めているサンプルはそこにはない模様。
<logic:iterate id="hage" name="hoge">
<logic:iterate id="mage" name="hage" property="mages">
<bean:write name="mage" property="moge" />
</logic:iterate>
</logic:iterate>
みたいなことをしたい?
0291nobodyさん
04/03/01 04:14ID:Durte6J60292nobodyさん
04/03/01 16:14ID:???0293nobodyさん
04/03/01 19:47ID:Durte6J6じゃあ、せっせとソースを直すか。
DataSource ds = getDataSource(request);
↓
DataSource ds = (DataSource)(new InitialContext()).lookup("名前");
しかし deploy 後に server.xml いじるの面倒だ・・・。
0294nobodyさん
04/03/01 21:31ID:???0295nobodyさん
04/03/01 21:53ID:GYV1jZxP0296291
04/03/02 01:17ID:???[HttpProcessor[8888][4]] FATAL - [javax.naming.NamingException: Cannot create resource instance
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:167)
って言われるよ・・・
0297nobodyさん
04/03/02 01:34ID:???0298nobodyさん
04/03/02 03:18ID:???0299291
04/03/02 03:34ID:AJ5+7psc0300291
04/03/02 03:36ID:AJ5+7psc0301nobodyさん
04/03/02 08:46ID:???そうか?
0302nobodyさん
04/03/02 08:54ID:nO+c0QMf0303291
04/03/02 10:33ID:???>>302 HIBERNATEが最強に分かりません。ORマッピングって何?
http://wiki.bmedianode.com/Hibernate/
http://www.hibernate.org/
0304nobodyさん
04/03/02 11:14ID:???Java⇔RDBのMapping-Frameworkを語るスレ
http://pc2.2ch.net/test/read.cgi/tech/1049030272/
0306291
04/03/02 11:36ID:AJ5+7psc0309291
04/03/02 17:40ID:AJ5+7pscHIBERNATEって、SQL ラッパーみたいに捕らえていいの?
詳しい人の説明をお願いします。
0310nobodyさん
04/03/02 17:50ID:AJ5+7psc0312nobodyさん
04/03/02 19:32ID:???DBアクセスレイヤーをもうけることで、役割が明確になり、
DB依存性を排除できる。理想は。
Hibernate だったらトランザクションやキャッシュ機構、
XML から Bean 生成、DB スキーマから Bean 生成、
スキーマ& Bean からXML 生成などがある。
0313nobodyさん
04/03/02 20:37ID:???さらに細かいことやりたいなら、HQLっつーSQLライクな記述でゴリゴリできる。
柔軟でいいよね。
たいがいのO/Rマッパーは、スキーマからJavaクラス作るときに、XML書いたり
XDoclet用のタグ書いたりとめんどくさいのに、jFaceDbc使えば、
既存のスキーマをリバースして、Javaのソースまで作ってくれるのが、(・∀・)イイ!
0314291
04/03/02 21:09ID:???しかし、食わず嫌いは良くないので、近い将来試してみる(予定)
0316291
04/03/02 23:03ID:AJ5+7pscDbUtils ですね。調べてみます。
>しかし数千バイトの SQL って本当に必要か疑問。
正規化されたテーブルから、レポートを一発で出そうとするとクエリーが複雑になりますね。
そして、複雑なストアドを書いたりすると、もっと多くなる予感。
0317nobodyさん
04/03/02 23:16ID:???0318291
04/03/02 23:24ID:AJ5+7psc0319Gon_Yuri
04/03/03 14:58ID:???Struts環境下でSessionをオブジェクトに格納した場合、
TokenIDなるStruts固有のIDなるものがattachされるのですか?
(もし存在するのであれば)またそれってなんのためにあるんでしょうか?
すみませんがご教示お願いいただけないでしょうか、みなさまがた。。
0320nobodyさん
04/03/03 15:03ID:mGkaH2Ir「トークン」は、二重押し防止機能。
0321Gon
04/03/04 15:35ID:???ですが、セッションに格納するのに二度押し防止というのは
状況が良く分からないのですが、たとえばどのようなケースでの話しなのですか?
0322nobodyさん
04/03/04 15:40ID:???これってブラウザで何らかの処理をしたあとに戻ってしまったときに、
もう一度その処理をしてしまわない(たとえば入金など)ようにするための
するという話でしょうか?
0323nobodyさん
04/03/04 16:33ID:MDOKWyiLhttp://muimi.com/j/jakarta/struts/struts5.html#SyncToken
0324nobodyさん
04/03/04 18:33ID:+Av049LBそゆこと。
書き込みボタンをダブルクリックしたら、2重投稿になる掲示板とかもあるよね。
ああいうの防止にも使えるし。
複数画面にわたった処理がある場合に
途中の画面でブックマークされて後日そのブックマーク使ってアクセスされた場合にも
システム側でトークンの有無を見てたら、どこかの画面に飛ばしたりもできる。
色々便利ですよ。
0325nobodyさん
04/03/06 06:16ID:Ag2/McPyhttp://www.atmarkit.co.jp/fjava/rensai3/struts03/struts03_1.html
しかし、StrutsのFAQには、以下のように明示されています。
http://jakarta.apache.org/struts/faqs/database.html
"The DataSource manager is being retained in Struts 1.x for backward compatibility but may not be retained in Struts 2.x or later."
山田祥寛氏と@ITは、どういう意図で紹介しているのでしょうかね・・・
0326nobodyさん
04/03/06 12:35ID:???0327nobodyさん
04/03/06 14:16ID:???Actionクラスから画面にメッセージを出力する場合の最適な方法って何?
Beanに詰めてJSPで出力が妥当かな?
0328nobodyさん
04/03/06 17:51ID:???・Action#saveErrorsを使う
・struts-config.xmlにexception要素を定義して、Actionからは例外を投げる。
・MyActionBase extends Action とかして俺様メッセージ表示機構を作る。
・自前のRequestProcessor用意して何かできるかも。
・その他
何が最適かなんて一概には言えないでしょ。
0329nobodyさん
04/03/06 19:23ID:???0330nobodyさん
04/03/07 01:53ID:???メッセージが必要なだけならBeanに詰めてJSPで出力(<bean:write/>)
0331nobodyさん
04/03/07 02:47ID:???@ITはM$好きであることと、山田某が.NET、Javaかまわず何でも書いてる奴
であることを考えると、@ITはJavaを潰そうとしているのではないか?w
しかし、山田某、見境無いなあ・・・。金ないのか?
0332nobodyさん
04/03/07 03:08ID:???0333nobodyさん
04/03/10 00:18ID:Y4AzoxeC0334nobodyさん
04/03/10 23:41ID:???EJB 自体があまり使われてない。EJB が目的ではない?
http://pc2.2ch.net/test/read.cgi/tech/1036481443/
もちろんまったく使われてないわけではないので
技術者として習得する価値はある。
0335nobodyさん
04/03/11 20:58ID:???でもServletだけでは限界を感じるしなあ。
0336nobodyさん
04/03/11 23:27ID:???レイヤが違うもので限界を感じるっていわれても意味が分からん。
ORマッパーをどれかひとつと言われたら Hibernate。 間違いない。
0337nobodyさん
04/03/12 03:25ID:5qVN4VSs>>336 Hibernate を熱く語っているね。
■ このスレッドは過去ログ倉庫に格納されています