- 1 名前:デフォルトの名無しさん [2006/12/30(土) 18:05:08 ]
- Apache Strutsフレームワークについて語るスレ
前スレ △△まだまだStrutsの良さを教えてくださいSession4 pc8.2ch.net/test/read.cgi/tech/1109465052/
- 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のミスで、やっとうまくいきました!!! 本当に有難う御座いました! またお世話になることがあると思いますが、その際はどうかよろしくお願いします!!
|

|