[表示 : 全て 最新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/

577 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 09:02:41 ]
>575
ソースは?

578 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 22:52:20 ]
>>577
ttp://ml.seasar.org/archives/seasar-user/2008-January/012442.html

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


580 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 07:48:47 ]
Seasar派はspringに勝ってると勘違いしてんだろーな...


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

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

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

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

585 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 23:22:28 ]
どれも.netにはかなわない



586 名前:デフォルトの名無しさん [2008/02/01(金) 23:48:24 ]
おー 新説登場 kwsk

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


588 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 01:54:21 ]
>>587
strutsすれでよく言えるなw

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

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

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

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

590 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:07:09 ]
中規模以下案件は.NETでも充分でしょ

591 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:12:30 ]
どれくらいから大規模?

592 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:14:19 ]
>C#の言語仕様も、Java よりも優れているという意見

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

593 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 19:41:06 ]
どのへんが不安定?

594 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 20:11:18 ]
不安定はWin鯖のせいなの?

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

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



596 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:14:27 ]
iSeriesと比べちゃうの?w

597 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 00:16:26 ]
ちょw

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

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

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

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

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


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


603 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 07:18:34 ]
Win鯖は不特定モデルでまんべんなく不安定だろ。w

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

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

604 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 09:16:46 ]
ES7000とかはどう?
地元の地銀では使っているよ。

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




606 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 13:12:27 ]
おいおまえら激しくすれ違い

607 名前:デフォルトの名無しさん [2008/02/10(日) 23:29:42 ]
保守age

608 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:48:25 ]
struts2でおすすめの書籍ありますか?

609 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:09:28 ]
オヌヌメサイトも

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

>>609
ttp://struts.apache.org/2.0.6/
のDocumentationあたり

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

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

612 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 09:17:42 ]
Filter

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

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


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

615 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/02/14(木) 22:33:58 ]
>>614
Acegi security 使えばどうよ
今はspring security だけどさ

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

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

618 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:04:25 ]
>>609
オヌヌメかどうかわからんけど、まだ触り始めたばかりなら、以下を読むといいかも
(DLする前に読むものか)
journal.mycom.co.jp/special/2007/struts2/index.html

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

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

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

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

ヤレヤレだぜ

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

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

622 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/02/19(火) 07:06:01 ]
struts.xml書かないでアノテーション使う奴理解できねえ
画面遷移定義が偏在化して管理が大変そう

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

ゼロコンフィグ 魅力なし

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

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



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

627 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 11:54:45 ]
>>625
それなら分割すれば済む話だろ。いったいいつの話をしているんだ?

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

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

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

632 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:17:36 ]
strutsってホットデプロイできるの?

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

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

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

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



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

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

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


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

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


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

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

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

642 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:01:10 ]
>641
かけません。
最低1台稼動させたまま入れ替えます。

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

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

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

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

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



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

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


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


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

Java+Webフレームワーク
pc11.2ch.net/test/read.cgi/tech/1181063688/

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

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

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

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

653 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 20:46:19 ]
スレ違い

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


655 名前:デフォルトの名無しさん [2008/03/08(土) 19:57:23 ]
WebLogic® Server Toolsを使え
https://dev2devclub.bea.com/updates/wls-tools/



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

環境はstruts1.3です

657 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 19:48:37 ]
知らないけど、ForwardingActionForward使っておけば?

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

660 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:48:40 ]
bがrequestにもsessionにもいないんでしょ。

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

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

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

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

665 名前:デフォルトの名無しさん mailto:sage [2008/03/25(火) 09:24:48 ]
FlexとかSilverlightには逃げないのですか?



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

667 名前:デフォルトの名無しさん mailto:sage [2008/03/29(土) 05:12:06 ]
Java Web Startでええやん

668 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:16:15 ]
>>666
日本語でおk

669 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 06:30:34 ]
シュワシュワワワシュワワシュワ?

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

671 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 22:31:19 ]
<result name="success">${ '/' + page + '.jsp' }</result>

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

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

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

673 名前:671 mailto:sage [2008/04/14(月) 23:37:09 ]
いえいえ。

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

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

675 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:56:07 ]
そんなことできるの?



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

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

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

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

678 名前:674 mailto:sage [2008/04/15(火) 00:05:44 ]
追記で・・・
PDFは、画面の選択条件から動的に作成しています。

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

679 名前:671 mailto:sage [2008/04/15(火) 00:17:36 ]
application/pdf のコンテンツタイプのhttpヘッダーでpdf内容そのまま出力すればいいんでないの?

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

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

681 名前:デフォルトの名無しさん [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 19:35:05 ]
よろしくお願いします。

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

683 名前:682 mailto:sage [2008/04/16(水) 19:40:01 ]
すいません、スコープというものを分かっていませんでした。
というか、スコープの説明を見てもピンときません。。

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

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

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

687 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん [2008/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 mailto:sage [2008/05/13(火) 11:04:20 ]
自己解決しました。お騒がせしました。

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

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

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

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

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

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

よろしくお願いします。
ml.seasar.org/archives/operation/2008-March/003758.html

695 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:12:48 ]
>694
スレ違い



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



697 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 14:20:54 ]
今頃そんなことする会社は辞める

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

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

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

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

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

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

701 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:21:19 ]
ftlのテンプレートに書かれていないんじゃないの?

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

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

今ftlをググリ中

703 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:40:43 ]
全部の属性インプリする必要あるの?

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


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

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

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



706 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:52:07 ]
判っちまえば、こんなパラダイスねーけどな

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

708 名前:701 mailto:sage [2008/05/20(火) 02:11:40 ]
Componentを拡張して。。って話じゃないよ
それなら textfield拡張したほうがいいでしょ

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

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

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

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

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

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

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

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

712 名前:デフォルトの名無しさん [2008/05/21(水) 23:12:02 ]
iFitって使ってる人居る?

713 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:51:45 ]
何だっけ?
東京方面で使わされるヤツだっけ?

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

715 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:01:31 ]
struts.apache.org/2.x/docs/a.html

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

JSP2.1使ってたら無理。




716 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 09:41:53 ]
>>700
ちょっと時間があったのでやってみたんだけど

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



717 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 14:04:37 ]
さんくす

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

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

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


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

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

720 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 06:19:37 ]
return NONE;
にしたらできた。
Actionインターフェースみたらわかった

721 名前:716 mailto:sage [2008/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 mailto:sage [2008/05/24(土) 12:21:49 ]

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

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

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

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

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

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



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

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

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

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






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

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

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

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

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

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

730 名前:716 mailto:sage [2008/05/25(日) 10:18:52 ]
>>728
こういう手もある。

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

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

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

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

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


732 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:23:31 ]
Strutsという名前

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

734 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:42:03 ]
>>732 >>733

名前だけかORZ...

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



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

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



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

738 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 11:36:10 ]
JSP&Servletが最強です。

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

740 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 13:06:10 ]
jstlで

741 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:31:29 ]
こんなのを見つけた
ttp://www.toshiki.net/x/modules/wordpress/index.php?p=81

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

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


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


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

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



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

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

748 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 01:59:03 ]
>>747 そ、、、、そうかー???

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

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

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

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

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

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

754 名前:デフォルトの名無しさん mailto:sage [2008/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 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 03:04:08 ]
>>753
EventDispatchActionは知らんけど、
Struts1.1でやったよ。




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

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

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

758 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:10:56 ]
>>753
form分けろ

759 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:31:52 ]
>>756 S2タグとELの混在利用なんてとんでもない間違い

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

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

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

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


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

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

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

765 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:10:37 ]
>>764 JSPファイルはきっとぐちゃぐちゃだなww



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

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

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

769 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:22:06 ]
MavenもWTPも両方使うだろJK

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



771 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 14:18:34 ]
>>769
WTPは別に無くてもいいだろう。
デバッグもこの方法ならWTPじゃなくても問題ないよ
goodjob.boy.jp/chirashinoura/id/179.html

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

773 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 15:32:18 ]
>>771
jetty って jsp 動かせるの?


774 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:13:43 ]
>>771
Maven Eclipse PluginでWTPプロジェクト作成した方が楽だと思うw

775 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:22:32 ]
今ならQ4Eだろ



776 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:47:46 ]
NetBeans使えばいいだけじゃねぇの?

777 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:17:11 ]
それはない

778 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:42:18 ]
WTPとは比べ物にならないよ。

779 名前:デフォルトの名無しさん [2008/06/04(水) 22:39:24 ]
>>770
無理。

780 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 11:44:42 ]
あれ、JSTLのfmtタグってリクエストヘッダみて挙動変えるのか。
DoCoMoだとformatNumberがきかない。つかえね。auは大丈夫なのに。
fmt:setLocaleしても駄目だなあ。なにが足りないんだろ。結局カスタムタグか。

リクエストヘッダからfmt:messageでとってくるプロパティファイルは
setLocaleで変えられるんだよね?

781 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:09:53 ]
>>780
それはDocomoだとロケール情報をHTTPヘッダに持ってないってことなのか?

実際に取得したロケールの値と、プロパティファイルの接尾名が合致してないというオチは結構ある。
例えば、言語コードと国コード両方だと思ったら、片方しかないとか。

782 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 18:51:17 ]
>>781
うん、GETだとhostとuser-agentしか入ってない。機種はSO902i。
他の人のDoCoMoでも駄目だった

783 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:41:40 ]
>>782
だったらもう、Action側でロケール上書きで付けるしかないのかな。

784 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:48:46 ]
web.xmlのcontext-paramにjavax.servlet.jsp.jstl.fmt.fallbackLocaleとかはセットしてる?

785 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 03:27:02 ]
してない。
<fmt:setLocale value="ja_JP"/>を入れて駄目だった時点で
これ以上時間を浪費したくないからカスタムタグ書いた。




786 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 08:41:47 ]
もし簡単に試せる環境があるのなら、

<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
<param-value>ja_JP</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
<param-value>ja_JP</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>{リソースバンドル名}</param-value>
</context-param>

これセットしてどうか試してみてくれない?
setLocaleやbundleを個別に書く必要はない

787 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:32:58 ]
えー
それを開発環境に入れるのは楽だけど
カスタムタグに変えたところを戻して
外からアクセスできるところにデプロイしなおすのは面倒

と思ったけど手元にエミュレータがあったのでやってみた。
ちゃんとフォーマットされたよ。ちなみにauは"ja-jp"で送る
みたいだね

788 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:12:05 ]
ありがとう
携帯用画面の開発では結構ありそうなパターンだったから確認しておきたかったんだ
参考になったよ

789 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 09:29:18 ]
カスタムタグにすればOGNLに統一できるし悩ましいところだな

790 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:21:32 ]
しかしこれはいい事例だね。俺も作ってみるか…

791 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 22:06:57 ]
struts2で、session.invalidate()を読んだ後ちゃんとrequest.getSession(true)で新しいセッションを作らせてから、
ActionChainResultで別画面に遷移させると「セッションが無効」の
エラーがでます。おそらくInterceptorでセッションインスタンスを
キャッシュしてるせいだと思うのですが、追い切れていません。
logout時のinvalidate()は普通に成功しています。

login時にはsessionIdを発行し直して、かつリロードで
再度ログイン処理が走らないようにリダイレクトさせたいと
思っているのですが、なにか回避策はあるでしょうか。

sessionIdの発行し直しはセキュリティ会社に指摘されたことが
あって、ログイン前の無防備な状態でid盗聴されたらログイン後に
乗っ取られる可能性があると。今回の案件では始めから
httpsなのでやらなくてもいいかなとは思っているのですが、
できたらやっておきたいなあと。

792 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:39:32 ]
>>791
答えではないけれど、
Struts2ではsession.invalidate()は避けてほしいらしい。
struts.apache.org/2.x/docs/how-do-we-get-invalidate-the-session.html

ちなみに、Struts1+Tiles利用時にsession.invalidate()→レスポンス吐く前に
sessionを新規作成しようとしても、うまく動かない現象は起こる。

理由は、セッションを破棄すると、そのロケール情報もなくなってしまって
ロケールによる自動振り分けが失敗する。

ロケールなしの時の設定をしていても動かず、
セッション破棄→新セッション作成後にロケールを追加すると動いたので
そういうのが原因だろうかね。

793 名前:デフォルトの名無しさん [2008/06/15(日) 00:58:09 ]
sessionをプレゼンテーション層的観点で皮相的にとらえると上手くいかない。
自分もstruts2とacegisecurity(spring security)を組み合わせたカスタマイズで苦労した。


794 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 07:53:02 ]
HTTP Status 503 - サーブレット action は現在利用できません

--------------------------------------------------------------------------------

type Status report

message サーブレット action は現在利用できません

description The requested service (サーブレット action は現在利用できません) is not currently available.


--------------------------------------------------------------------------------

Apache Tomcat/4.1.24


というエラーが出るのですが、原因としてはどのようなことが考えられるでしょうか?
tomcat 4.1.24
jre 1.50
struts 1.22

です。ご教授いただければありがたいです。

795 名前:デフォルトの名無しさん [2008/06/22(日) 14:16:47 ]
あげときます



796 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 15:30:42 ]
よろしくお願いします。

Struts2で、iteratorタグを使用しています。

<s:form>
<s:iterator value="hogelist">
  <s:property value="no">
<s:textfield name="hogelist.get(%{no}).hoge" value="%{hoge}" />
</s:iterator>

<s:submit action="hogeaction" value="送信" />
</s:form>

上記のようにに作っていて、初期表示でデータを表示させることはできています。
送信ボタンを押してActionを呼び出したら、
hogelistの中にテキストフィールドで入力した値が入っていることを望んでいるのですが、
データを取得することができません。

nameの書き方が悪いのでしょうか?それともこういった使い方はできないのでしょうか?
どうかご教授ください。



797 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 15:37:40 ]
えー、マジTomcat4?今時許されない

798 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 15:49:56 ]
なんかの保守じゃねえの?

799 名前:796 mailto:sage [2008/06/22(日) 17:30:06 ]
>>796

name="hogelist.hoge"でいいんだぜ

800 名前:796 mailto:sage [2008/06/22(日) 17:47:08 ]
>>796
ごめん、嘘ついた。
データは取得できるけど、名前が重複して変になる。

801 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 16:42:05 ]
>>794
エラー画面だされても意味がわからんので、リクエストしてるURLとエラーが出てるログファイルから判断しろ。
話はそれからだ。

>>796
<s:iterator value="hogelist" status="idx">
と、イテレーションのループ変数を宣言、

<s:textfield name="hogelist[idx]" />
でいいんじゃないのかね。

ただ、そのままだとValidatorを使ったときに困ると思う。

802 名前:796 mailto:sage [2008/06/24(火) 09:45:20 ]
>>801
ありがとうございます。泣く泣く固定の変数使ってやってました。
statusを使用するんですね。

<s:form>
 <s:iterator value="hogelist" status="idx">
 <s:textfield name="hogelist[%{#idx.index}].hoge" value="%{hoge}" />
</s:iterator>

 <s:submit action="hogeaction" value="送信" />
</s:form>

これでhogelistにデータを入れることができました。
Validatorは今のところ使用していないので、スルーの方向で。

スッキリ解決しました。お世話になりました!

803 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 16:27:56 ]
>>801
有難う御座います。また出直します。

804 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 18:34:46 ]
strutsにも飽きてきた。

strutsに代わるフレームワークってないの?
個人的にはwicket辺りに注目してるんだけどあんまり流行ってない?


805 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 19:03:04 ]
>>804
作っちゃおうぜ



806 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 20:20:56 ]
飽きたらカスタマイズか新作なんかね、wicketは日本で人気っぽいけど。
または自動生成ツールを作るとか、RIA側に手を出すか。

ちなみに、Struts2.2と2.5出るのって本気なのかね。

807 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 20:32:23 ]
>>804
dolteng入れてTeeda使うと笑えるよ

808 名前:デフォルトの名無しさん [2008/06/27(金) 01:50:54 ]
>>806
2.2と2.5でどうなるの?

809 名前:デフォルトの名無しさん mailto:sage [2008/06/27(金) 21:08:28 ]
journal.mycom.co.jp/news/2008/06/05/020/index.html
らしい。つか、Guice入ってるような気がするんだが。。

810 名前:デフォルトの名無しさん [2008/06/28(土) 02:12:13 ]
>>809
springと離婚するのか?

811 名前:デフォルトの名無しさん [2008/06/28(土) 02:15:57 ]
AJAX対応とスピードアップってことだな、2.2は

812 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 10:57:13 ]
2.0だとdojoプラグイン(でも0.4)が既にバンドルされている。
dojo1.0に対応するのか、それとも他も使えるといいんだが…

2.2以降が出るのを待つかなぁ。

813 名前:794 mailto:sage [2008/06/28(土) 14:17:11 ]
リクエストしているURLは
localhost:8080/example/chap02/login.do?id=&password=
です。
www1.axfc.net/uploader/Img/so/14922.jpg
にアップロードした画面からリクエストされます。

ログファイルはC:\tomcat\logsにありますが、どれを挙げれば
よろしいでしょうか?

独学で聞ける人もいないので、このスレが頼りです。ご返信
いただければ幸いです。

814 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 15:13:00 ]
特にヘンな設定していなければ、
ログファイルは、catalina.yyyy-mm-dd.out

Struts系の設定ファイルはきちんと書かれているか
- web.xmlにstrutsの定義があるか
- struts-config.xml
<form-beans>と<action-mapping>がきちんと設定されているか

基本的すぎる内容なので自分で調べまくる方がいいとは思うが。

815 名前:デフォルトの名無しさん [2008/06/28(土) 15:13:27 ]
ageときます



816 名前:デフォルトの名無しさん [2008/06/28(土) 15:24:28 ]
よろしくお願いします。

struts2を勉強しています。

propertiesファイルにUnicodeエスケープ形式で
メッセージを書くのが面倒なのです。
ツールやプラグインを使用していますが、

XML形式で書くと、日本語をツールなしに使えると伺いました。
書き方等教えていただけないでしょうか。よろしくお願いします。

817 名前:794 [2008/06/28(土) 15:28:51 ]
レス有難う御座います。

ログファイルは、C:\tomcat\logsに
・ localhost_log.2008-06-28.txt
・ localhost_admin_log.2008-06-28.txt
・ localhost_examples_log.2008-06-28.txt

がありますが、このうちどれでしょうか?

web.xmlも確認しましたが、特に自分では変なところは見つかりませんでした。
下記のとおりです。

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="chap02_loginForm" type="chap02.LoginForm"/>
</form-beans>
<global-exceptions>
</global-exceptions>
<global-forwards>
</global-forwards>
<action-mappings>
<action path="/chap02/login"
type="chap02.LoginAction"
name="chap02_loginForm"
scope="request" >
<forward name="success" path="/WEB-INF/jsp/chap02/success.jsp"/>
</action>
</action-mappings>
</struts-config>

818 名前:794 [2008/06/28(土) 15:30:36 ]
間違えました。↑はstruts-config.xmlでした。
web.xmlは下記のとおりです。

<?xml version="1.0" encoding="Shift_JIS"?>
<web-app xmlns="java.sun.com/xml/ns/j2ee"
xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="java.sun.com/xml/ns/j2ee
java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


</web-app>

何かご指摘いただければ幸いです。よろしくお願いします。

819 名前:794 [2008/06/28(土) 16:43:41 ]
struts.jarなどをeclipseの「プロジェクト」→「プロパティ」→「JAVAのビルド・パス」
→「ライブラリ」タブでインポート(とでも言うのでしょうか?)していたのを、直接
アプリケーションのWEB-INF\lib配下にコピペしたらエラーメッセージが変わりました。
下記のとおりです。

HTTP Status 404 - パス {0} に対するリクエストは無効です

--------------------------------------------------------------------------------

type Status report

message パス {0} に対するリクエストは無効です

description The requested resource (パス {0} に対するリクエストは無効です) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/4.1.24

820 名前:794 [2008/06/28(土) 16:57:28 ]
うまくいきました!

原因ですが、やはりWEB-INF\libに直接コピペしたのがよかったようです。
上記のエラーからは、struts-config.xmlのミスで、やっとうまくいきました!!!

本当に有難う御座いました!
またお世話になることがあると思いますが、その際はどうかよろしくお願いします!!

821 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:09:02 ]
>>819
遷移先のパスは<forward name="success" path="/jsp/chap02/success.jsp"/>でいいんじゃないのか?


822 名前:デフォルトの名無しさん mailto:sage [2008/06/28(土) 17:09:50 ]
おっと、自己解決してたw

823 名前:794 [2008/06/28(土) 17:10:25 ]
>>821

はい、そこを直したら無事動きました!!ありがとうございました!!!!

824 名前:794 [2008/06/28(土) 22:14:06 ]
さきほどは皆様、ありがとうございました!
次のステップに進んだのですが、またエラーに引っかかりました。

MappingDispatchActionを使って、データベースへの入力をひとつの
アクションで済まそうとし(正確には、使っている本にMapping
DispatchActionを使うように書いている)たら、下記のエラーが出ました。
ご教授いただければ幸いです。どうぞよろしくお願いいたします。
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: クラス database.DBActionForm のbeanを生成する際の例外: {1}
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at filter.EncodingFileter.doFilter(EncodingFileter.java:30)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
エラーメッセージが長いので、途中で切れます

825 名前:デフォルトの名無しさん [2008/06/29(日) 01:13:45 ]
初心者スレかと思た
面倒見の良い人がいて良かったな



826 名前:794 [2008/06/29(日) 07:15:25 ]
>>825
そうですね、本当にありがたいです!!!

827 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 12:06:05 ]
>>824
・struts-config.xml に正しくActionクラス、Beanクラス等を定義できているか
・JSP内のパスは、struts-config.xmlに定義した名前になっているか

828 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 12:37:03 ]
MappingDispatchActionをぐぐると思いっきり出てくるんだが。
MappingDispatchActionを使う場合の必須事項はちゃんとやってるんだろうな…

829 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 13:04:52 ]
>>816
Eclipseプラグインのプロパティエディタ使えば、プロパティファイルをマルチバイトでそのまま編集できるぞ。

逆に
>XML形式で書くと、日本語をツールなしに使えると伺いました。
の出所を知りたい。

830 名前:794 [2008/06/29(日) 13:18:03 ]
>>827
>>828

ありがとうございます!また試行錯誤してみます!

831 名前:816 mailto:sage [2008/06/29(日) 15:44:07 ]
>>829
知り合いがどこかで見たことがあるという、とても曖昧なソースです。。

以前eclipseプラグインをいれようとしましたが、相性が悪かったのか
プラグインが認識できず、スタンドアロン版を使用していました。

PCも変わったので、eclipseプラグインを再度入れてみたら
すんなり入れることができました。お騒がせしました。

832 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 16:28:54 ]
Properties#loadFromXML
を使えばってことでしょ。
struts2では、xml形式かどうかなんか判断してないと思うので使えないと思うけど。


833 名前:794 [2008/06/30(月) 01:08:09 ]
さきほど、エラーが通りました!むちゃくちゃうれしいです!
皆様、本当に有難う御座います!

834 名前:デフォルトの名無しさん [2008/06/30(月) 01:19:54 ]
>>833
偉いね

835 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 16:04:57 ]
偉くねーよ。
お礼の前に「なにを直したら動くようになったのか」を
書かないと情報量0じゃねーか。



836 名前:794 [2008/06/30(月) 17:54:24 ]
>>835
すみませんでした。
一からすべて書き直したら、エラーが通りました。どこが悪かったのかは
わからないままでした。

837 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 05:13:57 ]
struts2のアクションのPackageについて解説したURLご存じの方居ませんか?

struts.xmlで
<package name="admin" namespace="/" extends="visitor">
という宣言をして、/com/xxx/action/admin/の配下にアクションクラスを
置いたら、ParentPackage(vlaue="admin")を指定していないアクションまで
このPackageが適用されているようでハマりました。
ログイン前のページはこのPackage適用したくないのですが、
ParentPackage(value="visitor")と宣言していても
adminパッケージを利用するようです。

開発者はクラス名やパッケージ名から自動的に判断するのが便利だとでも思っているのでしょうか。
正直なにがおきているのかわかりにくくてウザいです。
せめて明示的にParentPackage指定したときくらい
それに従って欲しい


838 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 10:27:39 ]
>>837
struts.xmlのpackage name=visitorの部分晒してみ?

839 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 16:20:13 ]
こんな感じだけど、visitorがなんか関係あんの?adminじゃなくて?
<package name="visitor" namespace="/" extends="ベース">
 <interceptors>
  <interceptor宣言>
  <interceptor-stack name="visitorStack">
   <interceptor-ref さっき宣言した奴 />
   <interceptor-ref ベーススタック />
  </interceptor-stack>
 </interceptors>
 <default-interceptor-ref name="visitorStack" />
</package>

840 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 16:30:41 ]
前にも質問したのですが、struts2のformタグで生成されるタグを
xhtmlではなくhtmlにする設定は無いのでしょうか?
template/*.ftlを一式全部つくらないと無理でしょうか。


841 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 22:15:36 ]
>>837
それぞれのActionに
@Namespace("/")
て書けば期待したような動きになると思う

842 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 00:45:58 ]
>>837
継承元となるpackage要素には、次の決まりがあるみたい。
・abstract="true"をつける
・abstractのパッケージは、ネームスペースを持ってはいけない。
→他のパッケージ要素たちも、きちんとネームスペースを割り当ててあげないと誤動作する現象がある。

>>840
それって、theme=simpleでもダメなんだっけ。

843 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 03:03:26 ]
>>842
今simple
xhtmlみたけど、内部でsimpleのftlをincludeして拡張
してるだけっぽい。
simple/submit.ftlの中を見たらケツの方に「/>」と直書きしてあるっぽい

ftl作り直すとしたらクラスパスにtemplateってフォルダ作って
そこにtheme名でフォルダ作ったら勝手に認識してくれるのかな。
まさかカスタムしたやつをstruts-xxx.jarに埋めるわけにもいかないし。

というわけでinput(accessKeyの件),fmtに続いて
ボディの無いタグもすべてstruts2のものは使わないことにした。
絶対に非struts2のタグで統一した方が便利。

844 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 08:04:16 ]
>>843
イエス。
で、その中にtheme.properties置いて、parent=(継承テンプレート名)でいける。
使いにくい!と感じたら、ポリシーもって「使わないもの宣言」するのもありかね。

まぁ、あくまであの初期テンプレートたちはサンプル実装らしいが…

845 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:17:17 ]
Struts2のアクションのテストケースって、どういう風に書くのが一般的?



846 名前:843 mailto:sage [2008/07/02(水) 20:16:36 ]
不具合報告者の日本語がおかしくて、ログインボタンが無いっていうから
てっきりsubmitボタンだけ表示されないのかと思ってxhtmlが
駄目なのかと判断したんだけど、どうも全然違うURLを開いていたようだ。
とりあえず今のところ<input ... />となっていても不具合のある携帯は
なさそう。でもなあ、DOCTYPEでHTML宣言してるのにxhtmlが混じってるのは
気持ち悪いっていうか、お客に出すシステムとしては恥ずかしいなあ。

847 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 21:14:08 ]
4月にIT企業に入社したものの、配属先が見つからずにモソモソと自習している物です。
JVM 1.6.0_05-b13 Tomcat5.5 Struts2.011 Eclipse3.3でサンプルを作りながら慣れようと思い、会社で勉強しています。
ttp://www15.plala.or.jp/k_maeba/struts2/のサイトを参考にしながら進めているのですが、ゼロコンフィグを試したところで詰まってしまいました。

Tomcat Managerで実行中であることを確認して選択すると404エラー(The requested resource (アクション名) is not available.)が返ってきます。
フィルタマッピングがまずいのか、バリデーションした結果のinputのjspを作っていないのが悪いのかよくわからなくなってしまいました。
以下配備ログです。
2008/07/01 13:59:52 org.apache.catalina.startup.HostConfig deployWAR
情報: Webアプリケーションアーカイブ ManageUser1.war を配備します
2008/07/01 13:59:53 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts-default.xml]
2008/07/01 13:59:54 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts-plugin.xml]
2008/07/01 13:59:54 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
情報: Parsing configuration file [struts.xml]
2008/07/01 13:59:54 org.apache.struts2.config.Settings getLocale
警告: Settings: Could not parse struts.locale setting, substituting default VM locale
2008/07/01 13:59:55 com.opensymphony.xwork2.util.ResolverUtil findInPackage
情報: Scanning for classes in [/C:/apache-tomcat-5.5.26/webapps/ManageUser1/WEB-INF/classes/pkg/sample/] matching criteria: org.apache.struts2.config.ClasspathConfigurationProvider$1@1f287e8
2008/07/01 13:59:55 com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory <clinit>
情報: Setting DefaultObjectTypeDeterminer as default ...

struts.xmlとweb.xmlの内容は参考にしたサイトそのままなので
/user1/struts.xml.txt
/user1/web.xml.txt
と同一です。何か設定が必要なのでしょうか?

848 名前:デフォルトの名無しさん [2008/07/03(木) 00:57:24 ]
>>847
初心者は既に動いてるサンプルプログラムをダウンロードしていろいろ試した方が良いと思うよ。
まずは知ることから始めなさい、だ。

849 名前:847 mailto:sage [2008/07/03(木) 06:35:21 ]
>>848
Struts付属のサンプルプログラムをポチポチといじってみたのですが良くわからず、
もっと基礎的な部分からやってみたほうがいいのかと上記サイトに行き着いた次第です。

サイトでは使用するソースをダウンロードできるのですが、
そこからプロジェクトを丸々落としてきても404なので首を捻っていた次第です。

もう少し付属のサンプルのxmlファイルとにらめっこしてみます。

850 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 23:44:14 ]
>>847
struts.xml.txtでどきどきしてしまった俺がいる。
拡張子はtxtじゃないよな…?

そうだなぁ…日本語でサンプル公開してる所ではmaven2利用してるものも結構ある。
あとは>>848の通り、Struts2以外で覚えるの多いかなー。超頑張れ。

ウチもサンプルとか公開してるので、ぐぐった履歴とかもついでに集計してるんだけど
結構みんな色んなので悩んでるね。
多いのはValidator(Validation)、Annotation、ModelDriven、Uploadとか。

851 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 22:47:59 ]
いあいあ、それは大丈夫です。.xml.txtになっているのはサイトのアドレスがそうなっているからでして。

来週からプロジェクトに参加することになったのでstruts2とは暫しお別れです。
まぁプロジェクトではたぶんstruts+spring+もう一個DB系のフレームワーク?でやるらしいんで
これからよろしくねstruts1。

struts1のことで判らなくなったらまたお世話になります。

852 名前:794 [2008/07/04(金) 23:08:38 ]
現在、struts1.29でWEBアプリを作っています。 JSPで入力画面を作り、入力して送信ボタンを押すと、入力した
内容がデータベースに反映されるようになっています。そこまでは いいのですが、データベースに反映された内容が文字化けして
しまっています。 考えられる対策はすべてしようと思い、以下の対策をしました。
1 filter

web.xmlに以下の記述をしました。
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<filter>
<filter-name>EncodeFilter</filter-name>
<filter-class>SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


<servlet>
(以下略)



853 名前:794 [2008/07/04(金) 23:10:04 ]
続きです。

2 MYSQL側のエンコーディング設定

MYSQL側のエンコーディング設定を色々といじって、下記のような
状態にしました。

mysql> show variables like "char%";
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\\Program Files\\MySQL\\MySQL Server 5.0\\share\\charsets\\ |
+--------------------------+---------------------------------------------------------+



854 名前:794 [2008/07/04(金) 23:11:59 ]
同じく続きです

mysql> status;
--------------
mysql Ver 14.12 Distrib 5.0.27, for Win32 (ia32)

Connection id: 1
Current database: input
Current user: root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.27-community-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 4 hours 59 min 41 sec

mysql> show create database input;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| input | CREATE DATABASE `input` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+



855 名前:794 [2008/07/04(金) 23:12:41 ]
長々と申し訳ないです。これがラストです。

mysql> show create table input;
+-------+-------------------------------
----------------------------------------
| Table | Create Table

+-------+-------------------------------
----------------------------------------
| input | CREATE TABLE `input` (
`id` int(11) NOT NULL auto_increment,
`title` text,
`movie_url` text,
`material_url` text,
`explanation` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-------------------------------

考えられる対策はすべてしても、なお文字化けしています。なお、 「あ」「い」「う」「え」とそれぞれの項目に入力すると以下の
ようになります。

| 縺・ | 繧」 | 繧ヲ | 蠕・ |

どんなことでも結構ですので、ご教授いただければ幸いです。 どうぞよろしくお願いいたします。

開発環境  OS;WINDOWS VISTA SP1
IDE;ECLIPSE 3.32
DB;MYSQL5.0
JRE;jre1.6.0_06
struts;1.29




856 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 01:09:09 ]
JSPがUTF-8じゃないとか

857 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 01:31:53 ]
切り分けるためにDBに入れる前にアクションで
ログ吐いた方がいい
SetEncodingFilterでUTF指定してるなら俺も>>856に一票

858 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 01:46:07 ]
FORMをGETで送っていて、Tomcatのserver.xmlの設定をしてないとか

859 名前:794 [2008/07/05(土) 04:04:06 ]
>>856-858
皆様、レス有難う御座います。

JSPはUTF-8に設定してあります。
<%@page contentType="text/html; charset=utf-8"%>
とページの一番上に指定してあります。

>>切り分けるためにDBに入れる前にアクションでログ吐いた方がいい

初心者で申し訳ないのですが、詳しく教えて頂けないでしょうか?

現時点では、フォームの画面で入力し、SUBMITボタンを押すとフォワード
で「入力完了」とだけ表示されるJSPに移動する状態です。そして、SUBMITボタンを押した
時点でDBに反映されます。それを、フォームの画面で入力し、SUBMIT
ボタンを押すと入力した内容がJSPに表示され、入力した内容を
確認させてからもういちどSUBMITボタンを押すことでDBに反映させる
ようにする、ということでしょうか?


>>FORMをGETで送っていて、Tomcatのserver.xmlの設定をしてないとか

初心者で申し訳ないのですが、詳しく教えて頂けないでしょうか?

FORMにGETとPOSTがあるのは知っていますが、どうやって見分ける
(もしくは使い分ける)のかはまだ分からない状態です。今回のWEB
アプリは本に載っているのを参考に作ったので、まだソースで理解し
きれてない部分があるのも事実です。大変申し訳ないですが、詳しく
教えて頂けないでしょうか?

860 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 04:40:05 ]
SET NAMES UTF8 な予感

861 名前:デフォルトの名無しさん [2008/07/05(土) 05:24:36 ]
今回は、レベル低過ぎだな

862 名前:794 [2008/07/05(土) 10:03:40 ]
>>860
SET NAMES UTF8 というコマンドは知りませんでした!ありがとうございます!

>>861
低レベルで申し訳ないです・・・ orz

863 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 12:08:58 ]
>>859
初心者なら、まずはSystem.out.printlnでFORMから受け取った文字を出してみることだね
StrutsのAction上で、ActionFormにセットされたパラメータを出力してみる
そこが文字化けしていたら、FliterかTomcatの問題の可能性
そこが文字化けしていなかったら、DB登録時に文字化けしている可能性が高い

FORMのGET・POSTを見分けるには、
出力されたHTMLのformタグに、method="POST"みたいなのが書いてあるか
チェックするといい。method属性が書いてなければ、デフォルトでGETになる
Strutsのhtml:formタグを使っているなら、デフォルトでmethod="POST"になっている筈

使っているのがTomcat5以降で、もしGETを使っていたら
server.xmlのConnectorに URIEncoding="UTF-8"
を追加してやる必要がある

864 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 12:24:55 ]
だいたいmysql文字化けのほとんどは>>860だな。
set names するのがイヤならjdbcのurlは

jdbc:mysql://ほげほげ&useUnicode=true&characterEncoding=utf8
でよいな

865 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 12:33:47 ]
[mysqld]
default-character-set=utf8
skip-character-set-client-handshake

これでSET NAMESは要らなくなる
794のstatus見る限り、ここはクリア出来ているように見える



866 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 12:58:44 ]
まぁ、JSPがUTF-8なら大丈夫だと思うけど、
その送信元ページにメタ要らなかったっけ。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

あとは皆の言ってくれた通り、
Actionなどでログ吐いてみて、どこで化けてるかを切り分ければいいんじゃないかね。

867 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:03:37 ]
あ、あとWin版のMySQL5.0だと、
UTF-8設定はインストール時にがっつりやってしまってくれるので
悩まなくなったかな。

余談だけどStruts2だとEncodingFilterなんか設定しないから
昔の苦労なんかしなくなった感じだよなぁ。。
「ウェーブダッシュが化けます」とかさ…

今もたまに頼まれるんだけど

868 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 13:49:44 ]
まぁそれでも文字化けするのがmysqlなんだけどな

869 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 15:11:53 ]
男は黙ってpostgres

870 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:49:02 ]
ポスグレって、Oracle互換にするんだっけ。

871 名前:794 [2008/07/05(土) 19:57:42 ]
おお、みなさん、たくさんのレス有難う御座います!!
いろいろ試行錯誤してみますね!

また来ます!!!

872 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 01:21:54 ]
>>871
おー、頑張れ。
おまいさんの今やってることは皆通ってきた道で、
同じように同じようなところでつまづいて、
でも切り抜けた連中ばかりがここにいる。

まずは自分で稼働できるようになれば、二度と忘れることはないだろう。
似たようなトラブルがあったとしても、切り抜けるヒントにもなる。

動くようになって、それで終わるのでもいいが、動いたら動いたで
「なんで動かなくなったんだろう?」を調べることが大事。

873 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 01:26:17 ]
>>872
つーか、mysqlのトラブルは経験値というより、
時間の無駄タイプが多かったからのぅ・・・

874 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 02:44:17 ]
というかmysql4.1のときは本当に解決手段なかったからなぁ
4.1.6だったっけ?あのあたりからマルチバイトがまともに動かなくなって
直るまでには1年以上放置

その間にWindowsネイティブ対応したPostgreSQL8にもっていかれたという感が強い

875 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 06:17:49 ]
すれ違いな話題を引っ張ってすまん。
前は日本ではmysqlとpostgresのシェアが半々くらい、
海外ではmysqlの方が断然多いと聞いていた。
実際オープンソースプロジェクトで標準DBがmysqlの物が
一番多いようにみえる。postgresも次点くらいに多いけど。

20年ほど前、LinuxとFreeBSDのシェアが日本では半々だけど
海外ではLinuxが圧倒的に多かった。結局LinuxがUNIX互換OSの
デファクトになった。DBではpostgresが逆転するかもってこと?
だと嬉しいんだけどなあ



876 名前:794 [2008/07/06(日) 10:05:46 ]
>>872

本当にありがとうございます!このスレ、いい方ばかりです。

まずは今、まずは今アクションフォームから受け取った文字を出してみる
ことを頑張っています。


877 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 12:02:57 ]
結局Strutsで作るってなると、オープンソースのDB使うこと多いから
あながちスレ違いでもなさそうだけどね。

先月どっかのセミナー聴講したときに、ポスグレのおっさんが言ってたけど
未だにMySQLの方がシェア高く、ポスグレは次点だけど、新製品でどんどんシェア伸ばす予定だそうな。

>>873-874
そうだったねぇ…5.0になってようやくマシになった感じ。
まぁ、MySQLのGUIツールの方が優秀に見えるけど
マルチバイトを入力するとハングするのはいただけない。

878 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 13:40:43 ]
>>877
> 結局Strutsで作るってなると、オープンソースのDB使うこと多いから

え・・・?

879 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 14:33:06 ]
>>877
> 結局Strutsで作るってなると、オープンソースのDB使うこと多い
うーん。おれもこの考えには同調できないな。

struts(J2EE)を利用できるという時点で、共用レンサバユーザとか
LAMP層顧客は除外されるから、Oracleだったり、DB2だったり
という機会が増える。寧ろSIerがOracleパートナーだったりすると尚更だな。
ただ>>877が言いたかったのは、OSSなstrutsを選択する時点で
MySQLやPostgresを使おうとするプロダクトに当たる可能性が増えるが、
既存システムを有償DBで構築してしまうとわざわざそれを変えようと
することも少ないと稚拙な経験から思う。

880 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 14:49:44 ]
>>877
>新製品でどんどんシェア伸ばす予定だそうな。

それは予定っつーか願望でしょw
キャッシュ割り当ての設定とかSQLの癖とか
ダンプ・リストアスクリプトの組み方とか両方覚えるのかったるいから
ポスグレにデファクトまで登り詰めて欲しいんだけど

881 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 15:12:02 ]
PostgreSQLってもうOracleの性能、品質ともに超えてるんでしょ?

882 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 15:15:47 ]
>>878
OracleやDB2って、ウチではそんなに使わないから、ってこと。
あとは>>879の言ってくれた通り、SIerがOracleパートナだとOracle一択になる。
すまんね。

883 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 15:27:46 ]
>>877
>まぁ、MySQLのGUIツールの方が優秀に見えるけど
>マルチバイトを入力するとハングするのはいただけない。
あの出来で金取るとかいってんだぜ?失笑だよ
バグの為に金払うかっての

884 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 15:59:01 ]
>>881
どんな妄想

885 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 16:41:24 ]
MySQLがGPLだから通常の業務で使おうとすると金がかかるというのが面倒かな
昔はpostgreSQLだけのためにLinuxいれてたところおおかったね



886 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 20:45:53 ]
もう夏休みだっけ?

887 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 18:57:42 ]
このスレに夏休み取れる奴がいるのか…?

888 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 02:15:21 ]
881と885は・・・

889 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 10:39:15 ]
MySQLがGPLで請負だと金かかるのは常識かと

890 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 11:02:23 ]
そなの?
GPLなら顧客に対してソースを開示すればいいだけ、
いやなら商用ライセンスにできるししたところで数万円だから
開発全体のバジェットから見たら誤差だと思ってたんだけど、
どうも前者の前提が違うみたいだね。わかるように説明してもらえないか?

891 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 12:43:32 ]
やるならその通りだけど、単に手間が面倒ってだけじゃね?
事務仕事とか経理処理とかそういうの。

で、金払いや事務仕事を実際にする人から
「どうせ同じOSSのDBなんだし、どっちでも同じでしょ」
と言われて、簡単な方に流れるというのはある。

892 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 13:26:26 ]
いや、GPLで請負だと「金がかかる」って言ってることから
そういうちょっとした手間の話じゃないだろう。
請負ならGPLじゃなくソース渡すこともあるしな。
ASPサービスなら渡さないけど。

893 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 13:55:59 ]
Struts1.2で勉強中なんですが、
どのサンプルを見ても、まずトップ画面でフォームを置いて
入力された値をsubmitタグのactionでstruts-configに飛ばし、
そこでaction-mappingを参照して指定されたpathの通りにアクションクラスを実行、ロジックで内部処理。
返却された「success」等の文字列によってforwardで次のjspページへ飛ばすって感じです。

この場合最初にフォームを利用してactionを呼び出していますが、
フォーム入力無しに、ロジックでの処理やアクションフォームへの値設定を内部で行い、
最後に表示されるjspをいきなり呼び出したい場合はどうすればいいんでしょうか?

strutsにはページを開いた時に強制的にアクションを実行するといったhtmlタグはないようなのですが。

894 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 14:41:35 ]
自己解決です。
<logic:foward />すればいいんですね。
ありがとうございました。

895 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 17:33:35 ]
まぁ他にもいろいろ手段はあるがな。



896 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 17:41:55 ]
アクションに飛ぶと見て勘違いしました。
forwardだとページ遷移するだけでaction-mappingは実行出来ませんね・・。

897 名前:893 mailto:sage [2008/07/08(火) 17:46:50 ]
度々すみません。

<logic:forward>は<global-forward>で指定されたパスへページ遷移するものだと思うんですが、

ttp://tag.main.jp/logicforward.html
このページの
>Struts-config.xmlの<action>のpath属性を参照し、リクエストを転送している。
という説明は間違いということでしょうか?

898 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 20:06:18 ]
>>897
うそだと思うなら
1.そのpathを別のものに変えてみる。
2.logic:forwardを使わずに従来のRequestDispatcher#rforwardをjspで呼び出してみる
3.metaタグやJavaScriptでフォワードしてみる

あとはstrutsはソース公開されてるし、Eclipse+jadでデコンパイルしたソースを
眺めてみるもよし、ご自由にどうぞ

899 名前:893 mailto:sage [2008/07/08(火) 20:19:00 ]
>>898
実際にJSPとStruts定義ファイルを書き換えて試したところ、
<logic:forward>は<global-forward>で指定したパスに飛んでいるので、
うそ、というのが何を指して嘘なのかは分かりませんが、
「<action>のpath属性を参照する」と書いてある、上記のリファレンスページは誤っているようですね。

900 名前:デフォルトの名無しさん [2008/07/09(水) 03:41:16 ]
解説本やサイトのソースで"${hoge.property}"なんて書式があるけど、これって使うにはなんか設定が必要なのかな?
本を見ながら
<bean:struts id="act1" mapping="/action1" />
<html:link action="${pageScope.act1.path}">
 <bean:write name="act1" property="path" />
</html:link>
とか書いてみたんだが、HTMLソースにはリンク先が「localhost:8080/hogehoge/${pageScope.act1.do」なんて出てきてる。
※ちなみにbean:writeで書いてるトコロには、マッピングされたアクション名がちゃんと出てきてる。
これって${pageScope.act1.path}の中身が置き換わってないってコトだよね?

901 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 08:17:17 ]
>>893
global-forward要素の意味をちゃんと調べろ。話はそれからだ。

>>900
解説本やサイトのソースで、稼働環境(特にJSPのバージョン)を見てみな。
調査が足りなすぎる。

902 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 09:10:34 ]
>>901
知識も無いのに曖昧なレスだけしなくていいよ。

903 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 11:18:36 ]
>>900
JSTL , Velocity etc ...

904 名前:900 mailto:sage [2008/07/09(水) 12:03:37 ]
>>901-903
ご助言感謝。
StrutsIDE使ってたんだけど、自動生成のweb.xmlがservlet 2.3用になってた。
自分でweb-appの属性書き換えて、jspにtaglibの記述追加したら無事置き換わるようになった。

・・・これって最初からservlet 2.4用のweb.xmlにすることはできないのかな?
最初に生成されるweb.xmlやamaterasの設定見ると多分出来ると思うんだけどググれないっす。
ヘタレで申し訳ない・・・。

905 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 16:57:18 ]
2.3・・・すげーふるいね
今のバージョンは2.5だというのに



906 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 20:40:40 ]
金融系システムだとオープンソースがそもそも
使えなかったりするから、それよりはましかと。

907 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 21:34:13 ]
金融系システムにはオープンソースが使えない
ということにして自社製品を押し込むコンサルまじでイラネ
特にIBMは逝ってよし

908 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:18:36 ]
IBMって、WASのHTTPサーバはApacheじゃねーか。

909 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 22:30:46 ]
>>908
そのとおり。
それを"オープンソースはよくないから"とか"保証が無いから"とか
難癖つけて有料で押し込むのがコンサル。

910 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 12:58:26 ]
>>908-909
そのくせWACSもしかりだが、IBM製品のソースは
ゲティってるわ、1年生バグ修正痕はそこらじゅうにあるわ。
最近ではにIBMサンプル改造品をメンテしたが、
W3Cとは正反対方向のタグ組んでたりとか、もう・・・。

911 名前:900 mailto:sage [2008/07/10(木) 14:59:02 ]
>>905
確かTomcat5未満だっけ?>2.3
5&5.5が2.4、6から2.5でよかったんだよね
>TomcatのServletのバージョン

引き続き、隙間な時間を見てググってるが見つからず。StrutsIDEって結構メジャーだと思ったんだが・・・。
みんな手でweb.xml書き換えて・・・るわきゃねーよなw

912 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 17:52:06 ]
>>911
サーブレット全盛ならまだしも、strutsでWebアプリ組むのに
そんなしょっちゅうweb.xmlなんて触らなくないか?

913 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:14:34 ]
StrutsIDEの最新版でもservlet2.3なの?

914 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:16:11 ]
facesなら2.4対応なんだけどな。

915 名前:デフォルトの名無しさん mailto:sage [2008/07/10(木) 21:21:33 ]
>>911
EclipseWTP使えば、Tomcat5なら自動的にServlet2.4、6なら2.5になる
今使っているweb.xmlが古かったら、Tomcatの中にあるからコピペしてくればいい
2.4以上ならJSP上でELが普通に使えるようになる



916 名前:900 mailto:sage [2008/07/12(土) 12:42:41 ]
>>912-915
お返事感謝。結局>>912が真実かもしれづ。

>>913
少なくとも、初期設定そのままを動かしてたらYes。

917 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 16:44:08 ]
>>916
それはひどい

俺は使ったことないけどユーザー数が極端に少ないとか>StrutsIDE

918 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 18:26:55 ]
FW用のプラグインってそういうことよくあるから、自分は基本的に使わないな
Strutsの設定ファイルなら、EclipseのXMLエディターのアシスト機能で十分だし

919 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 18:50:20 ]
>>918
大規模ならstruts-config.xmlを小分けするし、
ましてやweb.xmlを編集することなんて皆無。

小規模なら、ツール使うよりテキストエディタでコピペして
必要か書だけ書き変えるよなあ。

920 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 01:18:14 ]
ひさびさ趣味アプリを1からstruts1.3で作ったら文字化けに
悩まされた。@page meta filter すべてUTF-8に統一しているのに、だ。

結果はTomcat5なのにGETでサブミットしていることだった。
たまにはこういうトラボーも経験だな。

921 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 06:42:39 ]
Struts1.2+Eclipse3.2+Tomcat5でWebアプリ開発のトレーニングをしています。
struts-blankを元にモゾモゾと弄っていますが、どうにも404エラーが発生してしまい困っています。
エラーには「サーブレットActionが利用できません」とのメッセージだったので、これを元に検索したところ、
どうやらStruts-congfig.xmlの構文の問題などでActionServletの初期化に失敗しているとのこと。
ここまでは見切ったんですが、自分には具体的な問題箇所が見つからないのでご指導ください。

**Struts-config.xml**
--action-mapping--
<action path="/Login" name="LoginPass" type="trainAction.LoginPassAction">
<forward name="succsess" path="/index.jsp" />
<forward name="id_not_match" path="/user-error.jsp" />
<forward name="password_not_match" path="/pass-error.jsp" />
<forward name="DB_access_error" path"/db-error.jsp />
</action>
--from-beans--
<form-bean name="LoginPass" type="trainForm.LoginPassForm" />

**web.xml**
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

922 名前:つづき mailto:sage [2008/07/14(月) 06:49:46 ]
一応これも
**server.xml**
<Context path="/Struts-train" reloadable="true" docBase="C:¥workspace¥Struts-train" workDir="C:¥workspace¥Struts-train¥work">
<Logger className="org.apache.catalina.logger.SystemOutLogger" verbosity="4" timestamp="true"/>
</Context>

index.jspとLogin.jspとLoginPassActionとLoginPassFormを作成し、とりあえずここまででサーブレットが動作するか確認しようと
一時的にsuccessのforward先をindexに変え、動かしてsuccessを返す動作を入力しています。
しかし入力が終わったところで404…

なにが原因なのでしょうか?

923 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 18:54:10 ]
server.xmlのdocBase、workDirのパス指定が\1個になってるんだが…。
そもそも全角になってるのが気になる。

924 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 19:37:35 ]
>>921
<forward name="succsess" path="/index.jsp" />

<forward name="success" path="/index.jsp" />


925 名前:924 mailto:sage [2008/07/14(月) 19:44:43 ]
Actionに適当にブレークポイント打ってデバッグしてみ?
どこでコケてるか分かるぜ。




926 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:39:19 ]
>>908
IBMはtomcatも使ってるけど。

927 名前:921 mailto:sage [2008/07/15(火) 06:22:03 ]
アドバイスありがとうございます。
最終的な問題はsuccessのスペルミスとjspにカスタムタグを使っていないことでした。
なんとか404は脱したのですが、今度はカスタムタグを含めたjspが500エラーを吐くようになってしまいました。
getModuleConfigを読み込みにいったところで"Module 'null' not found"とヌルポを投げている模様。
複数のjspでhtml:linkとhtml:formでそれぞれエラーなので設定がおかしいのだと思うのですが…
作成したソース類:ttp://ccfa.info/cgi-bin/up/src/up21624.txt

どこがまずいんでしょうか?
それと、jspからアクションにリクエストする際の書き方がaction=/LoginだったりLoginだったりLogin.doだったりページによってマチマチなんですが、
どれも同じなのでしょうか?

928 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:16:51 ]
なんか基礎から全然出来てないと思う。

929 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 18:54:25 ]
なんとなく近頃教えてgooっぽくなってるかも。

Strutsへリクエスト投げる場合は全て****.doですよっと。
つか、libの中身空っぽなわけないよな?

Eclipseのビルドパスに入ってるんだよな。

930 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 21:08:34 ]
>>***.do
ですよねー。/Loginとか書いてあるのはなんだったんだろう…

ライブラリはWEB-INF直下に.tlbを入れてありますが…

931 名前:900 mailto:sage [2008/07/15(火) 23:29:54 ]
(たぶん)原因判明。
そもそも、StrutsIDEがStruts1.2までにしか対応していないのが原因らしい。
だめだこりゃ。
struts-config.xmlエディタとしてだけでも使えないかと思ったが、どうも今ひとつ動きが怪しい。
小分けにしてテキストエディタで書き換えていった方がよさそうだね。
便利だったんだけどあきらめるか>StrutsIDE

Struts 1.3に対応してるのはMyEclipseだけっぽいけど、使ってる人いる?

932 名前:876 [2008/07/15(火) 23:51:23 ]
以前、文字化けについて教えて頂いた者です。
その後、色々と試してみた結果、OS(winVISTA)のエンコーディングの
デフォルトがshift-JISのため、UTF-8でDB登録が出来ていなかったようです。
set names sjisとやったらちゃんと表示されました。

まさかOS側の方に原因があるとは・・・。

いずれにせよ、今回は、このスレの方に大変お世話になりました。ありがとう
ございます。現在、諸事情によりstrutsを一人で独学中なので、またお世話に
なることがあるかと思います。

そのときは、またレスを頂ければ幸いです。

933 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:25:53 ]
>>931
Strutsは1.2系がいわゆるこなれてる安定版で今でも一番使われてるよ
1.3では便利な機能がたくさんあるけど ほんの一部消えた機能があったりする
まず問題にならないけど

だから1.2対応ってのはそんなに間違ってない
web.xmlとかの話とは別だから

934 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 00:27:06 ]
>>932
set namesはやめといたほうがいいぞ

935 名前:876 [2008/07/16(水) 06:15:59 ]
>>934
え、そうなんですか?ほかに対応策とかあるでしょうか?jdbcのurlを
jdbc:mysql://ほげほげ&useUnicode=true&characterEncoding=sjis
にするとかでしょうか?



936 名前:900 mailto:sage [2008/07/16(水) 11:08:19 ]
>>933
なるほど、ある程度は納得。非常に便利なんだけどね>StrutsIDE
特に、必要なjarを勝手に引っ張ってきてくれたりするところなんか。
まぁ、もともと手で書くものだと思うことにしよう>struts-config.xml

・・・話は変わるけど、Struts1.2以降で、リファレンス的に使えるお勧めな参考書はあるかな?
「プログラミング Jakatra Struts」はいい本だけど、いかんせん内容が古い。
「 Jakarta Strutsクックブック」を買い足すべきか、他の本も見てみるべきかというところで少し迷ってる。
JSTL以外にも役に立ちそうな情報はあるだろうか?
>>101-107

937 名前:デフォルトの名無しさん [2008/07/19(土) 17:59:59 ]
初心者入門スレだなw






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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