jakaruta.doc_011
R e i - D r e a m
for Laravel
TOP > Jakarta_EE10 > フレームワークの基本
Guest
login

最終投稿日:2026年07月19日

フレームワークの基本と、少し歴史の話
フレームワークの基本
突然の見出しですが、Jakaruta Faces(JSF)を学ぶ上で非常に大事な概念となります。 【MVC】ってご存じですか?
M = モデル                   DB関連が役割
V = ビュー                   画面描画が役割
C = コントローラ      処理ロジックが役割
一般的なフレームワーク(Laravel, Django, Spring等)のサイクルは以下となります。
○ ユーザーがURLを叩く
○ システム側でURLを解析する《Route》処理が動きます
①【C】URL解析の結果、対応するコントローラのメソッドに処理が渡されます
②【M】画面描画に必要な情報をDBから取得します
③【V】全ての情報を総合して画面描画します
○ ユーザーがイベントを発火させる
○ [Route]処理、①②③が繰り返される
ほぼ全てのフレームワークは、上記の思想でシステムが構築されています。
しかし、Jakaruta準拠のフレームワークの場合は以下となります。
○ ユーザーがURLを叩く
①【V】URLに対応する画面がコールされます
②【C】しれっと描画を開始しますが、途中JAVAの記述が出てきた途端に対応するコントローラが呼ばれます
③【M】画面描画に必要な情報をDBから取得します
○ コントローラは画面描画に必要な情報を返却します
○ 画面描画を続行します
いかがでしょう。少し特殊ですよね。
このアーキテクチャのメリットは《Route》処理からの脱却が挙げられます。
アプリ全体の全てのURLを管理するソースなのでとんでもないコード数が削減されますね。
  ※まぁソースを見るだけでアプリ全体の『交通整理』状態を確認できるって側面もありますが
また個人的なメリットとして【LAMP】環境出身な方には刺さると思うのですが、
フレームワークって『Hello World』画面表示させるまでやたら面倒じゃありませんか?
  ※ [L = Lunux][A = Apache][M = MySQL][P = PHP]
ピュアPHPで構築してたあの頃..
『[index.php]をポイっとサーバにぶん投げて、URL叩いてホイ表示!』
まさに《秒》で画面描画が構築できましたよ。
まぁ古き良き時代..
いえ、Jakarutaではフレームワークを使いつつもそれが可能です。
『[index.xhtml]をポイっと作成(ビルド > デプロイ)して、URL叩いてホイ表示!』
何となく「平成の匂い」が漂ってきませんか.
XHTMLの基本
タイトルの通りJAKARUTAは《.xhtml》拡張子のテンプレートを扱います。
ほぼ《.html》と解釈しても問題ないレベルですが、文法には滅茶苦茶厳しいです。
例えばDIVタグのペアが無いだけでエラーになったりします。
○ Jakaruta標準タグ
○○○.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="jakarta.faces.html"
        xmlns:f="jakarta.faces.core"
        xmlns:p="jakarta.faces.passthrough">
    <h:head>
        <title>Jakarta Faces ページ</title>
    </h:head>
    <h:body>
    
    </h:body>
</html>

ポイント

[p]は「PrimeFaces」ではなく『Passthrough』の事です。
つまりHTMLそのままの意味となります。
例)
    <h:inputText value="#{indexBean.birthDate}" p:type="date" />
上記とする事で、Javaとの連携が強化されます

PrimeFacesについて
表題の通り、便利なUIコンポーネントを提供してくれるサードパーティ製プラグインです。
以前([JSF]と呼ばれていた頃)はお世話になってた方も多いのではないでしょうか?
結論から申し上げると、本ドキュメントでは『PrimeFaces』を使用しません。
その理由に触れる前に、Jakarutaの悲しい生い立ちをお話する必要があります。
○ Oracleの裏切り
JAVAと言ったら「Oracle」ですが、元々は『Sun Microsystems』という企業が開発した言語です。
Oracleは2010年に企業買収により《JAVAのオーナー》となりました。
  ※フレームワークである「JSF」についても、元々Sun社が開発したものなので、漏れなOracleの手中です
当初はOracleも「JSF」のリリースに注力していたのですが、時代の流れが悪いのかJAVA事業自体の利益は減収の一途を..
そして遂に限界を迎えたOracleは2017年、こう発表しました。
  『もう疲れました。Java EEのすべての権利を、オープンソースの標準化団体(Eclipse Foundation)に寄付します』と。
やる気がない企業から標準化団体へ権利が移行した事で、ポジティブな着地となった様に見えます。
最後にOracleが爆弾を投下します。
  『あ、[javax]はうちの商標だから使わないでね』と。
これが『JSF』から『Jakaruta』に改名した経緯となります。
○ PrimeFacesは安全なの?
何をもって危険か、という話もありますが、Jakaruta用のPrimeFacesは普通にリリースされています。
ただしPrimeFacesは、前述した『Oracleお家騒動』の最大の被害者かもしれません。
何故って彼らは、Jakaruta用のPrimeFacesのリリースにあたってひたすらある作業をしていました。
    そう『javax ⇒ jakaruta』に書き換える作業を脳死状態で行ったのです。
そしてJakarutaリリースの約4ヶ月後、遂にお試し版である『PrimeFaces 10.0.0-RC1』が発表されました。
しかしその製品はお試し版の名に恥じない程の『使えない商品』だったのです。
でもそれはPrimeFacesだけが悪いわけではありません。
元々JAVAの思想は【分散型開発】なので、色々なモジュール、フレームワークの集合体です。
その一つ一つが『javax ⇒ jakaruta』への書き換えを余儀なくされています。
PrimeFacesはむしろリリースが早すぎて、周りとの連携に失敗(他のモジュールの書き換えにミスがある等)したとも言えます。
しかし周りの目は残酷ですよね。
  『PrimeFaces動かねぇじゃないか!』『PrimeFacesは信用できない』と辛辣な意見が噴出しました。
これを受け、PrimeTek社も考えます。
『Jakarutaは信用できない』『新たな開発でもするか』と。
そして生まれたのが【Prime】の冠名を持つ以下3連単です(競馬っぽく)。
・PrimeVue(Vue.js用)
・PrimeReact(React用)
・PrimeNG(Angular用)
新たな商品を大量に世に放ち、どれも一番人気になる商品へと成長しました。
そんな彼らは恐らくこう思っているでしょう。
  『PrimeFaces? あぁあの地方競馬で頑張ってる子ね』と。
これ完全に負のスパイラルですよね。
① PrimeFacesは使えないと誤解される
② PrimeTek社は生き残りをかけ、新たな販路を開拓し成功した
③ PrimeFacesのリリース周期自体は遅れてはいない
④ しかし開発企業の[JSF > Jakaruta]移行がネガティブ
⑤ PrimeTek社は気づく『いくら鞭振っても歓声が聞こえない』
⑥ PrimeTek社は更に気づく『地方競馬は所詮..』
⑦ PrimeTek社は選択と集中のため中央競馬に完全に舵を切る
⑧ そんな⑦の噂が業界を駆け巡る
⑨ 見捨てられた子を使うのは『危険』の烙印が押される
どうでしたか?涙で画面が滲んでませんか?
Jakarutaの今後は?
ここまでかなりネガティブな話になってしまいました。
本学習で「PrimeFaces」を取り入れないのは別に『魔女狩り』の一翼を担うためではありません。
Jakarutaの思想と今後のJAVAについて少しお話します。
○ Jakarutaの今後
クラウド化が叫ばれる昨今、JakarutaはJSFに比べ非常に軽量な設計思想です。
目指すは「クラウドネイティブ化」「モジュール化」「CDI Lite」です。
そのため「Docker」等との相性も良くクラウド時代に最適なアーキテクチャと進化しました。
    ※PrimeFacesを導入しないのも軽量化思想を受けてです
○ Spring Boot
今はJAVAと言えばのフレームワークです。
ですが、ご存じでしたか。
Spring Boot 3.x以降はJakarta EEの技術、すなわちJakarutaの思想で満たされています。
つまり「Spring Boot」があるからJakarutaは要らない子ではなく、
「Spring Boot」が流行れば「Jakarta EE」の技術も潤う。
    完全に共生関係にあるのです!
○ AI時代
今年(2026年)を勝手ながらAI元年としています。
そのAIが好きなプログラム言語は何でしょうか。
そりゃ『動かさなくてもある程度結果が分かりやすい言語』つまり昭和的な言語です。
わかりにくいので平たく言うと『融通の聞かない頑固おやじ』です。
PHPなどは令和言語となり『君の言いたい事は理解したつもりだよ』って優しく解釈してくれます。
余計に複雑になりましたが、要するにJAVAは『静的型付け言語』で厳格なルールが決められた言語です。
    人間にとっては面倒ですが、AIはルールが大好きです。
だってコードを見ても迷いませんよね。ルール通りなんだから。
元々人気のある言語だけに、AI視点からも可読性に優れたJAVAの躍進は今後、目を見張るものがあるでしょう。
    そして『Jakaruta』の足元も明るく照らされるハズです。
きっぷる
ログインしてコメントを残そう!!


きっぷる