フレームワークStrutsをいじくり倒す人の為のスレ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/04/28 08:14ID:Ub0n1fGRhttp://www.ingrid.org/jajakarta/struts/
http://jakarta.apache.org/struts/
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 を熱く語っているね。
0340nobodyさん
04/03/13 20:05ID:OCTfOcMT0341nobodyさん
04/03/13 20:57ID:1bZkOokWフォーム名は分かるから、JavaScriptでonclickでイベントを拾えばどうにかなるかも。
やるべきではないと思うけどね。
0342nobodyさん
04/03/13 21:23ID:OCTfOcMT<html:link action="/add" onclick='document.forms["turnover"].submit();'>[ADD]</html:link>
0343nobodyさん
04/03/13 22:15ID:???<html:checkbox name="..." property="..." disabled="${変数}" />
みたいな。
resinでは使えたけどweblogicでは使えなかった。
0344nobodyさん
04/03/13 22:33ID:???0345nobodyさん
04/03/13 23:15ID:OCTfOcMT0346nobodyさん
04/03/19 03:27ID:???<html:link>つかう必要ないだろ
<A>で良いだろ
0347nobodyさん
04/03/19 21:20ID:???0348nobodyさん
04/03/20 05:19ID:???0349nobodyさん
04/03/20 11:15ID:???0350nobodyさん
04/03/20 14:14ID:???0352nobodyさん
04/03/20 14:41ID:???0353nobodyさん
04/05/15 13:04ID:iT9NId+Gセッションオブジェクト使用不可な条件なんですが、これって自縄自縛っぽい状態なのか?
0354nobodyさん
04/05/15 13:29ID:???その制御を楽にするためのStrutsじゃないの?
あとそれとセッションオブジェクト使用不可な条件と何が関係あるの?
0355nobodyさん
04/05/15 22:18ID:???Strutsは確か、セッションを使用しないとダメじゃなかったか?
0356tommy
04/05/17 10:43ID:UlYZTV/Rあったら教えてもらえませんか?
0357nobodyさん
04/05/17 20:46ID:???http://sourceforge.net/project/showfiles.php?group_id=49385&package_id=80917
0358nobodyさん
04/05/29 04:18ID:???それも2バイト文字を参照して内部動作を分岐させているよう
なのだが・・・。
Strutsではそれが普通なのか?まったく解せないでつよ(困惑
0359nobodyさん
04/05/29 11:42ID:???0361nobodyさん
04/05/29 21:45ID:???>>358 Struts作ったやつらははじめ2バイト文字のことなんか
考えてなかったのだが後になってあわてて2バイト対応したためと思われ。
0364nobodyさん
04/05/31 23:10ID:???strutsでそんな機能があったはずだが。
0365nobodyさん
04/05/31 23:18ID:???Struts の org.apache.struts.actions.LookupDispatchAction の話じゃないのか?
0366nobodyさん
04/06/11 14:14ID:pbSttBHhStruts1.1でValidatorを使ってるんですが、
JSPで1つのacitonの中に更新ボタン、クリアボタン、戻るボタンがあります。
更新ボタンが押されたときはValidatorで入力チェックを行い、
他のボタンが押された場合はValidatorが効かないようにしたいのです。
今後携帯にも展開する予定なのでJavaScriptは極力避ける方針なのですが、
どのようにすればよろしいでしょうか?
actionを分ける事も考えたのですが、改行されていまうため、悩んでいます。
0369366
04/06/11 15:52ID:???propertyに値を指定するとValidatorを回避できないようですが、
1つのaction内にhtml:cancelを複数設置して、actionクラス側で判定する事は可能ですか?
0370366
04/06/11 15:54ID:pbSttBHh0372366
04/06/11 17:57ID:pbSttBHhありがとうございます。
試してみますm(_ _)m
0375nobodyさん
04/06/13 00:03ID:???0376nobodyさん
04/06/16 23:51ID:zsyyEODZそこで、例えば検索結果が100件あったとして、そこから30件ごとに分け、googleのように次の〜件
とするには、どうすればいいでしょうか?
iterateでlengthの値を30にしても、30件しか、もちろん表示されません。
いったい、どうすればいいのかわからないです。
難しいですが、分かる方は、ぜひ教えて欲しいです・・・・・・。
0377nobodyさん
04/06/17 00:11ID:???>iterateでlengthの値を30にしても、30件しか、もちろん表示されません。
30件ごとに分けたいんだろう。なのに
>30件しか、もちろん表示されません。
というのはおかしい。
言いたいことはわからないでもないが、人にものを伝えるときはもっと気を遣え。ばか。
offsetつかってスタート地点を決めればいいだろが馬鹿莫迦バヵ
0378376
04/06/17 00:28ID:jy0PTqdkマジツッコミ、サンクスです。
offsetでスタート決めるのはわかりますが、offsetの値を動的に変えるにはどうしたらいいでしょうか?
あと、submitで「次の30件を表示」などを用意して、遷移先を、検索結果が表示されてる、今いるこの画面に
次の30件を表示する方法がわからないです・・・。
説明下手でスマソなのですが、宜しくお願いします〜・・。
0379nobodyさん
04/06/17 12:37ID:???logic:iterateタグの説明をよく読みましょう。
ttp://jakarta.apache.org/struts/userGuide/struts-logic.html#iterate
ポイントはoffsetに指定するのはInteger型のJSP Beanということ。
ちなみに、ドトネトにはDataGridコントロールがあるので、
この辺はすごく楽だねえ・・・。
ところで、普通の画面は作れるの?まずはそこから始めた方が・・・。
0380nobodyさん
04/06/17 20:07ID:???http://jsptags.com/tags/navigation/pager/index.jsp
0381nobodyさん
04/06/17 22:49ID:???ドトネトでなくても、ADOなんかだとページ単位で切り分けるの簡単だよな。
こーいうの標準で用意してくれりゃいいのにね。
>>380
面白いね
0383376
04/06/19 01:47ID:2EKqNUkjJSPBeanがわかんない・・、javaBeanとは違うの?
Beanの値をoffsetにいれても,、次の30件表示のリンクを押してoffの値を、変化させる方法がわかんないです・・。
Servletでもいいので、いいサンプル載ってる所ありませんかね?
ぶっちゃけ、Servretでも、できない・・・。
0384nobodyさん
04/06/19 18:32ID:pMTsomP7ぶっちゃけなんでもいいんだよ。数字(で構成された文字列)が返ればね。
offset="<%=anyBean.getOffset().toString()%>"
でも
offset="<%=anyIntegerInstance%>"
でも
offset="<%=anyIntegerInstance.toString()%>"
0385nobodyさん
04/06/19 18:35ID:pMTsomP7offset="<%= anyBean.getOffset().toString() %>"
でも
offset="<%= anyIntegerInstance %>"
でも
offset="<%= anyIntegerInstance.toString() %>"
でも
0387nobodyさん
04/06/20 09:32ID:pwr2yWDM素直にあきらめた方が賢明かも、、、。まあ、ヒントだけあげるよ。
「次の30件表示のリンクを押してoffの値を、変化させる」には、
どうしたらいいかを考えよう。
まず、「次の30件表示のリンクを押し」たことをサーバ側に伝える必要がある。
まあ、これは「次の30件表示」を行うアクションがあれば
それを呼び出すだけだからできるよね。
ここでつまづいているなら、Hello.worldからやり直し。
で、「次の30件表示」を行うには、まず今どこにいるかを
知ってないといけないよね。現在位置を知っていて、
はじめて「現在位置 + 30」という処理ができる。
で、現在位置を何で管理しようかという話になる。
独自のBeanを定義した方が何かと便利だけど、
まずはIntegerでもいいよ。先頭から始まるから、初期値は0だよね。
何で管理するかは決まったけど、このオブジェクトを
セッションに結びつけないと、毎回新しいオブジェクトを作成してしまって、
ちっともページが進まないということなってしまうよ。
おそらくつまづいてるのはここだよね。
ここがわからないなら、Tomcatについてる簡単なサンプルで
セッションの使い方を勉強するのがいいよ。
基本的なやり方は最初のページが表示されたタイミングで、
新しいオブジェクトをセッションに結びつける。
「次の30件表示」が押されたら、結びつけてあるオブジェクトを+30する。
この数値を利用して、一覧を再表示する。こんなところかな。
0388nobodyさん
04/06/20 11:19ID:???だけど、>>383みたいなのがいるから、全体的なプログラマーのレベルが
低くなるんだよな。
がんばっているというのは良いことだけど、まず本を買え、と言いたい。
0389nobodyさん
04/06/20 11:38ID:???0390383
04/06/20 14:30ID:anBuFkfy今一度、セッションから、勉強し直すことにします。
>>384
>>387
お二人とも、ありがとうございました!!
参考になりましたです。
0391単純形
04/06/20 21:24ID:???public class ProductInputAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
HttpSession session=request.getSession(true);
session.setAttribute("offset",new Integer(0));
return mapping.findForward("showList");
}
}
NextPage.java:
public class ProductInputAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
HttpSession session=request.getSession(true);
Integer offset=(Integer)session.getAttribute("offset");
if(offset==null)session.setAttribute("offset",new Integer(0));
else session.setAttribute("offset",new Integer(offset.intVale+30));
return mapping.findForward("showList");
}
}
List.jsp
...
<bean:define id="offset" name="offset" scope="session" />
<logic:iterate id="item" name="lists" offset="<%= offset %>"....
...
0392nobodyさん
04/06/20 21:41ID:???普通はこんな単純にはしないけどね
・全体件数を越えてページ繰りするのを防ぐ
・表示件数を変更できるようにする
・巻き戻しやページ指定ジャンプに対応する
....
というような理由から独自クラスを定義してそれを呼び出すのが普通。
0393nobodyさん
04/06/20 21:51ID:???…は?
どうやるかなんか人それぞれだろ?
0395nobodyさん
04/06/20 23:37ID:???規模にもよるが、全件Listに持ってる時点で疑問に感じるけどね
数万件ヒットしたらどーすんのよ。
基本的に現在位置と表示件数さえ持ってれば済む話だろ。
0396nobodyさん
04/06/21 00:48ID:???独自クラス=全件リストしか思い浮かばないのか?
独自クラスがあれば、インターフェースを整理できるんだよ
bean.init()
bean.prevPage()
bean.nextPage()
bean.jumpPage(int page)
bean.changeLineCount(int count)
bean.getPageCount()
....
0397nobodyさん
04/06/21 01:08ID:???見当違いな問答してんなよ。
0398nobodyさん
04/06/29 22:57ID:???0400nobodyさん
04/07/01 00:35ID:???エクリプス+Struts開発
http://pc5.2ch.net/test/read.cgi/tech/1086356759/
0402nobodyさん
04/07/03 09:06ID:lwtie6Ml1.Opera7.23をクライアントに使うとセッションIDをURL Rewriting
する状態にならないとセッションの特定ができなくなってしまう
らしく、強制的にセッションIDをGETにする方法教えてください。
2.Action経由でBeanで初期値を設定した<html:text>などの入力
フォームを<html:submit>で送信するときに、この画面を表示したま
ま放置してセッションが破棄された後で送信すると、java.lang.
NullpointerExceptionが出るのが、Global Exception の設定で
キャッチするように設定しても捕まえられないので、捕まえる設
定などありましたら教えてください。
==今の設定==
<global-exceptions>
<exception handler="com.hoge.test.exception.SystemExceptionHandler"
key="errors.deadline" path="/WEB-INF/pages/syserror.jsp" type="java.lang.NullPointerException"/>
</global-exceptions>
0404nobodyさん
04/07/04 00:52ID:B3Fr8XMmテンプレートはどこにある?
0405nobodyさん
04/07/04 01:02ID:B3Fr8XMmApache Strutsフレームワークについて語るスレ
△△もまいら漏れにStrutsの良さを教えてください
http://pc5.2ch.net/test/read.cgi/tech/1048030962/
△△つづいて漏れにStrutsの良さを教えてくだっさい
http://pc5.2ch.net/test/read.cgi/tech/1068207164/
■ このスレッドは過去ログ倉庫に格納されています