<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/seesaa/">
    <title>Struts1.x @ ウィキ</title>
    <link>http://w.atwiki.jp/seesaa/</link>
    <atom:link href="https://w.atwiki.jp/seesaa/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>Struts1.x @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2010-02-14T22:40:46+09:00</dc:date>
    <utime>1266154846</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/10.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/9.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/8.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/7.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/seesaa/pages/6.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/15.html">
    <title>機能リファレンス</title>
    <link>https://w.atwiki.jp/seesaa/pages/15.html</link>
    <description>
      WebアプリケーションのStruts1.x + aspectJ + iBatisでの実装例です。
[[SAStruts:http://sastruts.seasar.org/featureReference.html]]の機能リファレンスを参考に書いています。


** プロジェクト構成 [#oc51dbdc]

プロジェクト構成は、[[SAStruts:http://sastruts.seasar.org/featureReference.html]]のように、下記構成でもよいですが、
（SAStruts構成でよければ、SAStrutsを採用すると高度なURLルーティング等が使用できたかと思います）

 ・ルートパッケージ.action
 ・ルートパッケージ.form
 ・ルートパッケージ.entity
 ・ルートパッケージ.service

ユースケース単位で作成してもよいです。

 ・ルートパッケージ.共通.entity（テーブルと１対１のentity）
 ・ルートパッケージ.共通.dbservice（マスタテーブルのトランザクションサービス）
 ・ルートパッケージ.共通.dao（マスタテーブルのdao）
 ・ルートパッケージ.ユースケース１.action
 ・ルートパッケージ.ユースケース１.dbservice
 ・ルートパッケージ.ユースケース１.dao
 ・ルートパッケージ.ユースケース２.action
 ・ルートパッケージ.ユースケース２.dbservice
 ・ルートパッケージ.ユースケース２.dao

この構成だと、「ルートパッケージ.共通.jar」と「ルートパッケージ.ユースケース１.jar]があればWebアプリは動作します。
機能変更の影響範囲と、ビルド単位をあわせることができます（共通.jarの影響範囲は全ユースケースですが・・・）

特別なフレームワークの使用は無いため、プロジェクト構成に制約はありません。









** アーキテクチャ [#xf43a255]
Strutsなので、MVC(Model View Controller)のアーキテクチャに基づいていて、 Modelはエンティティ、 ViewはJSP、Controllerはアクションになります    </description>
    <dc:date>2010-02-14T22:40:46+09:00</dc:date>
    <utime>1266154846</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/14.html">
    <title>右メニュー</title>
    <link>https://w.atwiki.jp/seesaa/pages/14.html</link>
    <description>
      //**更新履歴
#recent(5)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2010-02-13T00:14:00+09:00</dc:date>
    <utime>1265987640</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/13.html">
    <title>top</title>
    <link>https://w.atwiki.jp/seesaa/pages/13.html</link>
    <description>
      * はじめに [#o87353e6]

Webアプリケーション構築についての備忘録です。
Struts1.x + AspectJ + iBatisを使用します。

今さら「Strtus1.x」感はあるかと思いますが。
本当は、[[SAStrtus:http://sastruts.seasar.org/index.html]]を採用したかったのですが、SAStrutsほど高機能でなくてもよいかなと思いました。

とにかく、フレームワーク（制御の逆転パターン）はStruts1.xだけにして、その他は、クラスライブラリで実装できれば思っています。
（aspectJは、クロージャーと思い込んでます。DIコンテナより理解しやすいかなと。）
フレームワークは難しいです。

** Struts1.x [#nc0a6964]
これまでに経験したWebフレームワークは次です。

 ・ASP.NET WebForm
 ・Teeda(少しだけ)
 ・MyFaces(少しだけ)
 ・Struts1.xベース独自フレームワーク（重量級）

どれも高機能なフレームワークだと思いますが、
高機能なWebページを作るための道具ではないかな、と感じていたます。
WebForm GridViewの生成するHTMLを予想して、javascriptを書くのはもうこりごりです。
このごろリリースされた「ASP.NET MVC」でも、Webページを作成するには、
 ・HTTPプロトコルの理解。
 ・HTMLの理解。
とうたっていたと思います。

上記を理解するなら、フレームワークはそれをサポートするだけで十分ではないかな、と思います。Ajax通信なんかもStruts1.xで十分です。
ASP.NET MVCが最強かもしれませんが、やっぱり、慣れ親しんだStrtus1.xが・・・
Struts1.xというよりも、BeanUtils#populateが理解しやすいかと思います。
気合入れてstrtus-config.xmlを書きます！（これは書きたくない。。）

** iBatis [#ef1d6dbc]
プロジェクトの成功のカギは「SQLの数」だと思います。
「SQLの数」が少なければ、品質のよいアプリが作成できるのではないでしょうか。
S    </description>
    <dc:date>2010-02-13T00:05:45+09:00</dc:date>
    <utime>1265987145</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/12.html">
    <title>プラグイン/人気商品一覧</title>
    <link>https://w.atwiki.jp/seesaa/pages/12.html</link>
    <description>
      * 人気商品一覧
@wikiのwikiモードでは
 #price_list(カテゴリ名)
と入力することで、あるカテゴリの売れ筋商品のリストを表示することができます。

カテゴリには以下のキーワードがご利用できます。
|キーワード|表示される内容|
|ps3|PlayStation3|
|ps2|PlayStation3|
|psp|PSP|
|wii|Wii|
|xbox|XBOX|
|nds|Nintendo DS|
|desctop-pc|デスクトップパソコン|
|note-pc|ノートパソコン|
|mp3player|デジタルオーディオプレイヤー|
|kaden|家電|
|aircon|エアコン|
|camera|カメラ|
|game-toy|ゲーム・おもちゃ全般|
|all|指定無し|

空白の場合はランダムな商品が表示されます。

※このプラグインは[[価格比較サイト@PRICE&gt;&gt;http://atprice.jp]]のデータを利用しています。

-----

たとえば、
 #price_list(game-toy)
と入力すると以下のように表示されます。

ゲーム・おもちゃ全般の売れ筋商品
#price_list(game-toy)

ノートパソコンの売れ筋商品
#price_list(game-toy)

人気商品リスト
#price_list()
    </description>
    <dc:date>2010-02-12T23:57:29+09:00</dc:date>
    <utime>1265986649</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/11.html">
    <title>プラグイン/コメント</title>
    <link>https://w.atwiki.jp/seesaa/pages/11.html</link>
    <description>
      * コメントプラグイン
@wikiのwikiモードでは
 #comment()
と入力することでコメントフォームを簡単に作成することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_60_ja.html


-----
たとえば、#comment() と入力すると以下のように表示されます。

#comment    </description>
    <dc:date>2010-02-12T23:57:29+09:00</dc:date>
    <utime>1265986649</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/10.html">
    <title>プラグイン/関連ブログ</title>
    <link>https://w.atwiki.jp/seesaa/pages/10.html</link>
    <description>
      * 関連ブログ
@wikiのwikiモードでは
 #bf(興味のある単語)
と入力することで、あるキーワードに関連するブログ一覧を表示することができます

詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_161_ja.html

-----


たとえば、#bf(ゲーム)と入力すると以下のように表示されます。


#bf(ゲーム)
    </description>
    <dc:date>2010-02-12T23:57:29+09:00</dc:date>
    <utime>1265986649</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/9.html">
    <title>プラグイン</title>
    <link>https://w.atwiki.jp/seesaa/pages/9.html</link>
    <description>
      @wikiにはいくつかの便利なプラグインがあります。

-----


#ls

-----

これ以外のプラグインについては@wikiガイドをご覧ください
=&gt;http://atwiki.jp/guide/
    </description>
    <dc:date>2010-02-12T23:57:29+09:00</dc:date>
    <utime>1265986649</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/8.html">
    <title>プラグイン/動画(Youtube)</title>
    <link>https://w.atwiki.jp/seesaa/pages/8.html</link>
    <description>
      * 動画(youtube)
@wikiのwikiモードでは
 #video(動画のURL)
と入力することで、動画を貼り付けることが出来ます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_209_ja.html

また動画のURLはYoutubeのURLをご利用ください。
＝＞http://www.youtube.com/

-----


たとえば、#video(http://youtube.com/watch?v=kTV1CcS53JQ)と入力すると以下のように表示されます。


#video(http://youtube.com/watch?v=kTV1CcS53JQ)

    </description>
    <dc:date>2010-02-12T23:57:29+09:00</dc:date>
    <utime>1265986649</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/7.html">
    <title>プラグイン/アーカイブ</title>
    <link>https://w.atwiki.jp/seesaa/pages/7.html</link>
    <description>
      * アーカイブ
@wikiのwikiモードでは
 #archive_log()
と入力することで、特定のウェブページを保存しておくことができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/25_171_ja.html


-----


たとえば、#archive_log()と入力すると以下のように表示されます。
保存したいURLとサイト名を入力して&quot;アーカイブログ&quot;をクリックしてみよう


#archive_log()
    </description>
    <dc:date>2010-02-12T23:57:29+09:00</dc:date>
    <utime>1265986649</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/seesaa/pages/6.html">
    <title>プラグイン/編集履歴</title>
    <link>https://w.atwiki.jp/seesaa/pages/6.html</link>
    <description>
      * 更新履歴
@wikiのwikiモードでは
 #recent(数字)
と入力することで、wikiのページ更新履歴を表示することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_117_ja.html


-----


たとえば、#recent(20)と入力すると以下のように表示されます。


#recent(20)
    </description>
    <dc:date>2010-02-12T23:57:29+09:00</dc:date>
    <utime>1265986649</utime>
  </item>
  </rdf:RDF>
