- 1 名前:デフォルトの名無しさん [2006/12/30(土) 18:05:08 ]
- Apache Strutsフレームワークについて語るスレ
前スレ △△まだまだStrutsの良さを教えてくださいSession4 pc8.2ch.net/test/read.cgi/tech/1109465052/
- 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
|

|