• 締切済み

struts2 って使われてるの?

今度struts2の不具合修正することになったんだけど全然日本語の情報が出てきません。 名前は結構有名な気がするのですが、ちゃんと普及しているのでしょうか? そもそも、STRUTS2のXMLに定義して動かすという手法は効率的なのでしょうか? 保守する側としてはDebugしにくいし、ロクなことないですね

  • Java
  • 回答数2
  • ありがとう数0

みんなの回答

  • root139
  • ベストアンサー率60% (488/809)
回答No.2

> 名前は結構有名な気がするのですが、ちゃんと普及しているのでしょうか? 過去に何度か使っているプロジェクトを見ました。使用頻度はぼちぼちといった感じですかね。 少なくともstruts1.xの様なデファクトスタンダードにはなっていないかと。 最近はJavaのWebアプリフレームワークがいろいろと出ていますので、選択の幅が広がった分、定番と言えるようなものが無くなったのでは? また、確かに日本語の資料は少ないですね。特に書籍が。 私がstruts2を使うときは、下記のサイトを参考にしたり、「Struts2 in Action」(英語)を拾い読みしてますね。 http://codezine.jp/article/detail/2296 http://journal.mycom.co.jp/special/2007/struts2/menu.html http://www.atmarkit.co.jp/fjava/special/struts2/struts2_1.html http://www.infoq.com/jp/articles/converting-struts-2-part1 http://www.infoq.com/jp/articles/migrating-struts-2-part2 http://www.infoq.com/jp/articles/migrating-struts-2-part3 > そもそも、STRUTS2のXMLに定義して動かすという手法は効率的なのでしょうか? むしろ、クラス・メンバーの命名規約(CoC)やアノテーションを使用すればXMLをあまり書かなくても良くなったのがstruts2のウリの一つなのですが・・・。 初期開発時にあえてXMLに書くようにしたのでしょうかね。

回答No.1

単に愚痴が言いたいだけかもしれませんが。 日本語の情報は検索してひっかかる程度で十分だと思ってるし、 原文あたったところでそんな難しい事書いていないけど。 Struts1.xと違って、アーキテクトがちゃんと主要部分構築すれば、 各部品作る人は内部構造なんて気にする必要が無いのが利点だと思うんだ。 だから、うちのメンバーに日本語のドキュメントが無いからわかりません なんて言う人いない。 あと、XMLでAction定義する以外にアノテーション使う方法もありますよ。 ただ、アノテーションで定義してしまうと全体が見えないので、 ちゃんと設計しておかないと競合するかもしれません。 うちはSpringと組み合わせてる事もあって、 デバッグは、むしろ楽だと思っています。

関連するQ&A

  • XMLは何が便利なの?

    XMLはタグを自分で定義できるなどと言われ盛り上がっているようですが、XMLは何が便利なのでしょう? 私が思うに、タグを定義できるからといって、タグの持つ意味合いまでは定義できない(例えば「名前」というタグを定義できるからといって、それが人の名前なのか物の名前なのか、人の名前だとして自社担当者の名前であるのか取引先担当者の名前であるのか、と言ったことまで限定できず、データを送る側と受ける側で解釈を取り決めておかなければならない)のに、なぜこんなに持て囃されるのでしょう?

    • ベストアンサー
    • XML
  • Struts2で日本語を定義したメッセージファイルを作成したいです。

    Struts2で日本語を定義したメッセージファイルを作成したいです。 以下の環境でWebアプリケーションを作成しようとしています。 eclipse 3.4 J2SDK 1.6 Tomcat 6.0 Struts 2.0.14 struts.xmlには <constant name="struts.custom.i18n.resources" value="MessageResources" /> <constant name="struts.i18n.encoding" value="Windows-31J" /> と記述しています。 JSPのヘッダ部は <%@ page contentType="text/html; charset=Windows-31J" %> <%@ page pageEncoding="Windows-31J" %> <s:property value="attention"/> と記述しています。(一部抜粋) メッセージファイル(MessageResources.properties)は message.attention=テスト と記述しいています。 "native2ascii"コマンドを使ってメッセージファイルをUnicodeでエンコードしてみました。 eclipse上でエンコードしたメッセージファイルを開くと 「\u30c6\u30b9\u30c8」と表示されてしまいますが JSPには正しく「テスト」と表示されました。 eclipse上でエンコードしたメッセージファイルの編集を行うことは可能でしょうか?

    • ベストアンサー
    • Java
  • strutsで、任意の画面からの任意のURLを受け付けた時の処理がしたい。

    strutsを勉強中の者です。 strutsで、  (1)a.jsp→(2)b.do→(3)b.class→(4)c.jsp という画面遷移はできるようになったのですが、(現在b.doとb.classは同じ名前にしています。) 任意の画面からの呼び出しで、  (1)*.jsp→(2)*.do→(3)b.class→(4)c.jsp とし、(2)で入力された任意のURLを(3)で解析し、そのURLによって(3)内部での処理を分岐したいのです。 ちなみに、struts-config.xmlの定義で、 <action-mappings> <action className="test.ShowMain" path="/ShowMain" input="/jsp/html/*.jsp"> <forward name="success" path="/jsp/html/main.jsp"/> </action> </action-mappings> と、*を使って編集しようとしても、 画面に、HTTPステータス 500 が表示され、 コンソールには、 ---- 致命的: End event threw exception java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() on object: test.ShowMain 2008/08/17 10:43:13 org.apache.struts.action.ActionServlet handleConfigException 致命的: パス /WEB-INF/struts-config.xml に対するリソース読み込みエラー java.lang.NoSuchMethodException: No such accessible method: addForwardConfig() on object: test.ShowMain 情報: サーブレット action を利用不可能にマークします 2008/08/17 10:43:13 org.apache.catalina.core.StandardContext loadOnStartup 致命的: サーブレット /test がload()例外を投げました javax.servlet.UnavailableException: パス /WEB-INF/struts-config.xml に対するリソース読み込みエラー ---- と表示されてしまいます。 環境は、  WindowsXP  Eclipse3.3  Tomcat5.5  GEF3.3  struts-1.3.8  JDK1.5  「Eclipseパーフェクトマニュアル ベストセレクション」  という本をもとに勉強しています。 a.こうした任意のページを受信する、という方法はStrutsで可能なのでしょうか? b.可能である場合、どのような方法を取れば良いでしょうか? どなたかご存知の方がいらっしゃいましたら教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • Eclipse+Strutsでのxml修正時に"指定されたファイルが見つかりません。"とエラーメッセージが表示されてしまいます。

    恐らく、超基本的な事になってしまうので質問をためらいましたが、 探し続けて一週間も経ってしまったので、最終手段としてここに質問させて頂く事にしました。 恥ずかしい限りですが質問させて下さい。 Eclipse+Strutsからxml操作を行う際に、 ・プロジェクトを基準にした相対パスを記述した外部ファイルを用意して  EclipseのProject配下に置いたxmlファイルを操作したいのですが、 ・絶対パスでしかxmlファイルが認識されない。 という所で悩んでいます。 ユーザが自分の名前をウェブのオンライン画面からテキストボックスに入力して Submitボタンをクリックすると、 システム側では既存の人員管理表のようなxmlファイルにその名前がDOMで追記される、 というアプリケーションをStrutsでの作成にチャレンジしていますが、 ここでアプリケーションの処理の遷移を  (1)a.jsp→(2)b.do→(3)b.class→(4)c.jsp とし、(3)b.classに、xmlの追記処理の為、 追記対象となるxmlの定義について下記のようにコーディングしました。 ---- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); String uri = "sample1.xml"; Node root = builder.parse(uri); (中略) ---- この処理の実行時に下記のエラーメッセージが表示されます。 ---- 致命的: サーブレット action のServlet.service()が例外を投げました java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 5.5\sample1.xml (指定されたファイルが見つかりません。) ---- ・絶対パスを指定した場合 ・C:\Program Files\Apache Software Foundation\Tomcat 5.5にsample1.xmlを置く ・EclipseでのTOMCAT_HOMEの設定を、  「C:\Program Files\Apache Software Foundation\Tomcat 5.5;C:\eclipse\work_space\TEST001」  と、実行するプロジェクトディレクトリを追記で指定 とした場合、この部分はエラー無く実行されるようなのですが、 できればプロジェクトを基準にした相対パスを記述した外部ファイルを用意して EclipseのProject配下に置いたxmlファイルを操作したいのです。 (開発環境はWindowsですが、将来的に本番稼動ではwarファイルをUnix or Linux に乗せたいので) 現在、WindowsXP/Eclipse3.3/Tomcat5.5/GEF3.3/struts-1.3.8/JDK1.5の環境で、 参考書は「Eclipseパーフェクトマニュアル ベストセレクション」 「xml 逆引きクイックリファレンス」 という本をもとに勉強しています。 恐らく簡単な設定か何かの問題だと思いますので恥ずかしい限りではありますが、 どなたかご存知の方がいらっしゃいましたら、 ご教授頂きたく宜しくお願い致します。

    • ベストアンサー
    • Java
  • 「人工語」について

    質問は以下の3点です。 ・エスペラント以外に人工語はあるか(あると思うのですが勉強不足で存じません)。 ・そもそもなにをもってして人工語と定義するのか。 ・人工語が普及する可能性はあるか。 3点すべてへの回答でなくてもかまいません。 また質問から敷衍して意見を述べていただいてもかまいません。 よろしくお願いします。

  • xmlとjavaで自動的にWEBが更新されるソースを作ろうと思っています

    はじめまして。お忙しいところ申し訳ございませんがお力をお貸しいただきますようお願いいたします。 今度xmlで時間やwebサイトのURLなどを定義しておき、 時間がきたら自動的にページを開いていくプログラムを作ろうとしています。 具体的には <diary>20050613</diary> 日時が2005年6月13日 <time>231530</time> 時間が23時15分30秒に <web>http://www.goo.ne.jp</web> gooを開く というように記述していこうと考えています。 このようなxmlファイルをサーバで配布し、クライアント側で実行できるようなプログラムを作ってみたいと考えているのですが実際にどのような技術を使っていけば良いのか分かりません。自分でも調べてはいっているのですが、なかなかXMLの基礎知識も乏しいため前に進みません。 他のプログラミングはjavaが多少できるのでjavaとxmlを使って作れればと思っています。 何かヒントでも結構ですのでアドバイスお願いいたします。

    • ベストアンサー
    • XML
  • CSS/日本語のID・クラス名について

    CSSに、日本語のID・クラス名をつけてもよいのでしょうか? ネットを検索したところ、 「CSS2からクラス名に日本語が利用可能。但し、IDは日本語不可」 との記述がありました。 本当でしょうか? 誰か詳しい方、教えてください。 ▼補足 自分の環境(WindowsIE8)では、クラス名に日本語を利用しても、正常表示されました。しかし、違う環境で不具合がないかや、そもそも推奨されている手法なのかどうかについて、是非知りたいと考えています。 W3C等に準拠しているかどうか、教えてください。

    • ベストアンサー
    • HTML
  • Strutsなどのフレームワークが必要な開発って

    JAVAを勉強している者です。 これまでJSPやサーブレットを使って、ある程度のシステムが作れる程にはなったのですが、フレームワークの事が気になっています。 少し「Struts」の勉強をしてみましたが、使いづらさと、表示画面への 柔軟性の無さなど、良い面が見つかりませんでした。 また、HTMLベースのソースコードも、フレームワーク独自の形があっ たり、TomcatなどJAVA側のバージョンアップで不具合が生じる可能性 なども、耳にしました。 ●そこで思ったのは、フレームワークを使う状況というのは、次の様な 時なのではと思っています。 ・エンジニアのレベルが、時間さえあれば、一人でJSPやサーブレット  を使ってシステムを作り上げる人と、「if」文や「for」文などの  本当の基礎しか知らない人が混在した開発環境の時。 ・開発プロジェクトで、開発人数が多く(十数人など)大規模なシステ  ムで、柔軟性や工期短縮よりエンジニアの管理をする必要がある時。 ●逆にこんな時には必要がないと考えています。 ・携わる開発者が、一人でサイトを作れるレベルであり10人以内程に  よる規模のシステム作成時。 ・表示画面用のファイルと、他のプログラムファイルを分ける事 (MVC)を意識しすぎる事より、システム変更への柔軟性や、工期が  早くなる事が分かった時。 ・エンジニアのやりがいを引き出す為。 ※個人的には、入力画面はともかく、出力結果などをMVCにこだわると  あまり良い作成が出来ない気がしています。  また、出力画面と処理用プログラムのファイルを分けた場合には、  ソースの確認や編集が行いづらくなります。  ただ、フレームワークを使わない時は、事前にエンジニアどうしで、  一定の関数を使う事を基本条件にすると便利かもしれませんね。 (例えば、~本に載っている関数を使用する等)  もし決まった関数以外で他の関数を使う時は、他のメンバーの了解  を得る等のルールがあると良いかもしれません。  (Eclipse関係の入門書とプラスαの関数で大抵の事は出来るのではと思っていますが...)  多分こうした方が、フレームワークを使うより、エンジニアのやりが  いも向上するし、結果的には効率も上がりそうな気がしています。  また、上記のフレームワーク条件も、完全にそのようにしなければ  ならないのではなく、状況や必要に応じて判断することが大切なの  ではと思っています。  もし、他にフレームワークのメリット・デメリットがありましたら  教えていただけましたらと思っています。

  • エクセル 名前の定義・管理について

    エクセル2007の名前の定義・管理について教えてください。 あるシート(Aシート)のセルの入力規則に他シート(Bシート)の範囲(B2:B4に赤・青・白を入力されている)を定義した名前(名前を色とします)を使用しています。 別途違う目的のためBシートをコピーし、若干修正してCシートを作り、また、その後、Cシートをコピーし、修正してDシートを作りました。ただし、Cシート、Dシートの名前を定義した範囲(赤・青・白)は全く修正していません。この時点で名前の管理から定義された名前を見ると「色」という同じ名前が3つ作成されております。(参照範囲は、それぞれB~Dシートのものと異なっています。) で今回、Dシートが一番最新のもので利用しているので、Dシートの名前を定義した範囲(B2:B4の赤・青・白)を(B2:B5の赤・青・白・緑)と変更したところ、Aシートの入力規則の名前は色ですが、(赤・青・白)しかリストにでてきません。(緑が出てこない)。色という名前が3つあるのがいけないのだと思い、Dシートを参照している以外の「色」の名前を削除したら、Aシートの入力規則は色と入力されているにもかかわらず、全く機能しなくなってしまいました。 いろいろ調べてみたのですが、対処法がわからないので教えてください。なぜ、Dシートを参照している名前の「色」は、入力規則に入力されているにもかかわらず、リンクしてくれないのでしょうか? そもそもシートをコピーしても色という名前が3つできても、最初にリンクしているBシートの名前の「色」しか参照してくれないのでしょうか?なにか方法はありますか? 上手く文章で伝えることができずわかりづらいかとは思いますが、 よろしくお願いします。

  • HTMLの属性を自由に作ることはいいのか?

    (X)HTMLの規則にそって書け、とよく言われますが、果たして100%従うことだけが善なのでしょうか? CSSが普及してから、完全に文書とデザインを分けて考えるようになり、進化系として、完全なXML(XHTML)的文書にして、検索エンジンなどにもわかりやすい文書構造に、ということで盲信しているイメージがあります。もしXMLであるならば、より効果的な属性の設定などもあっていいんじゃないかと思うのです。 たとえば、ページングのリンクなどで 1 2 3 4 5 とページへのリンクアンカーがあるとして、通常は <a href="?page=1">1</a> <a href="?page=2">2</a> のような形になるでしょうが、XML(DOM)としては <a href="?page=1" page="1">1</a> <a href="?page=2" page="2">2</a> というような 独自に page という属性にそのページナンバーを入れた方が取得しやすいと思うのですが、こういうのでもルール外だから悪、と言われてしまうのでしょうか? その文書をparseしても、そのページナンバーを取得するのにもうひと工夫が必要になってしまいます(hrefを正規表現するなどして)。それなら属性に書いた方が絶対楽だし、その値の意味を属性名としてわかりやすく定義できると思うのですが、どうなんでしょうか? 気になる点としては、今後新しく予約語としてその属性名が定義される可能性があり、その値の意味が異なり、ブラウザの挙動もおかしくなる可能性は理解できます。でも、それはプログラミングしてる人なら、バージョンアップでよく出てくることですし、とりわけHTMLだけやめておけ、というのもおかしいと思いますし。絶対かぶらないように、属性名を作ればいいだけですけどね。servicename_page="2" みたいな(笑)。

専門家に質問してみよう