[mayaa-user:304] Re: コンポーネントのみの出力方法について

Applied_MATSUDA Masaaki m.matsuda @ appliedjapan.com
2006年 10月 23日 (月) 10:08:49 JST


お世話になっております。
suga 様、ご返答ありがとうございました。


週末ちょっと試してみました。

>> 1. Mayaaを使うとレンダリング結果に<HTML>〜</HTML>タグが必ず入って
>>    しまうようで、複数のポートレットを画面上に配置すると、
>
>これは NekoHTMLParser を使っているためで、Mayaa が認識できる
>HTML は "<HTML><BODY>, </BODY></HTML>が追加されたもの" に
>なってしまいます。

ウウム、なるほど。
テンプレートに<HTML><BODY></BODY></HTML>が無い場合は、パーサに
渡す前にMayaaが付加しているという理解でよろしいでしょうか。
それとも、NekoHTMLPerserのほうで強制付加されてしまう・・・?


>>    <HTML>タグの出力を抑制して、テンプレートに書いてある内容に
>>    忠実に出力するオプション等があれば望ましいのですが、いかが
>>    でしょうか??
>
>忠実に出力するというのは難しいです。
>HTML は閉じタグを自動補完するなどしなければツリーとして
>扱えないため、タグのバランサーを通す必要があります。
(snip)
>ちなみに現状でも、html タグ、body タグに m:with を当てると
>body の内部のみが返ります。:)
>ついでに head に m:null を当てるとヘッダを書いていても消えます。
>DOCTYPE や xml 宣言を消す方法はありませんけど……。
>
><m:with m:id="html" />
><m:with m:id="body" />
><m:null m:id="head" />

これは結構いけました!
ただし、かえってテンプレートに<HTML id="html"><BODY id="body">
などのタグを明記しなければならなくなってしまいますね。
明記すれば、レンダリング結果では消える・・・
明記しなければ、レンダリング結果に勝手に現れてしまう・・・
ウウム。
結局、テンプレートに<HTML>や<BODY>や<HEAD>タグがもともと
無ければ、レンダリング結果も上記のようなフィルタリングを
適用して、無かったタグは現れない、という処理ができれば
理想的だと思うのですが・・・


>> 2. テンプレートの文字エンコーディングを、.mayaaファイルのほうで
>>    指定できるのでしょうか?
>>    テンプレートHTML側にエンコーディングがらみの何か記載を追加
>>    する、というのはこちらの事情でまずいので、他の方法があれば
>>    教えてください。
>
>現状ではありません。Neko の判別では良くて UTF-8、ダメなら ISO-8859_1 です。
>META タグがない場合に UTF-8 固定と見なす変更であれば容易ですが、
>それで問題ないでしょうか。
>
># と書いているうちに作成しました。
># リポジトリ上のみですので、手元でビルドしていただければ
># META タグ無しの場合に UTF-8 と見なすようになります。

こちらの問題も、NekoHTMLPerser側の事情ということでしょうか(汗
とりあえずご対応ありがとうございます。
しかし、現状maven2のリポジトリに上がっている1.3SNAPSHOTの
jarで試してみましたが、うまく動作せず化け文字に・・・
こちらの環境の問題もあるかもですね。
<META>タグのencoding指定でUTF-8を記載すればちゃんと化けません。


>出力の文字セットを変更する手段は容易されていて、
>m:mayaa タグで m:contentType="text/html; charset=UTF-8" のように
>指定します。(content-type 全体指定のみです)

なるほど、入力の指定はないけれど、出力の指定はあると。


>> 3. あと話はとびますが、Mayaaのオプション一覧ってありますでしょう
>>    か?
>>    http://mayaa.seasar.org/documentation/engine_settings.html
>>    こちらで、「これ以外にも設定項目はありますが、それらは 5 章
>>    の別ページで説明します。」と書いてありますが、該当部分が
>>    見当たらないような気がします。
>>    もし私の見落としであればご指摘ください。
>
>ごめんなさい、書いたつもりで書いていませんでしたね。
>現状は時間を取れませんので、お急ぎの場合は申し訳ありませんが
>デフォルトの設定ファイルをご覧ください。
>デフォルトのファイルにはすべての項目のデフォルト値が指定してあります。

デフォルトの設定ファイルとは、配布されているwarファイルの
META-INFの下にあるorg.seasar.mayaa.provider.ServiceProvider
を見てみる、ということですね?


ではでは。



mayaa-user メーリングリストの案内