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