2005-02-01から1ヶ月間の記事一覧
ImplicitPageを直接アクセスする際に、attributeの値をリクエストパラメータで渡すと、ImplicitPage単体で表示できます。この機能はImplicitPageのデバッグ用途です。この実装にて、12月に書いた仕様の機能はほぼ全部実現しました(つくりはまだまだ甘いです…
今日は手仕舞い。夕食時にビール飲んだらくらくらしちゃって。。。
replaceの件、duranさんの指摘で、IterationTag利用パターンでうまくなかったので、かなり副作用あるんじゃないかなと心配ながらTemplateImplをいじって対応しました。 org.seasar.maya.impl.engine.TemplateImpl#render()の該当部分 if(current.isIteration…
今の会社のサイトは、4年ぐらい前にCocoon2で作っていらいほったらかしだったのですが、そのうちTapestryになります。これも1年以上前に途中まで作っていたものですが、このたび発掘してウチのかとちん氏がサービスできるように整えてくれました。動きは無駄…
ゴージャスランチついでに本屋をのぞくと、遠藤浩輝「EDEN」12巻がでてたので買ってきました。ちょっと前の内容がわすれちゃってたので、1巻から読み直し。。。時間がもったいないんだが、まぁ、いいや。
起きたらこの時間でした。こんなに寝坊できるのも今日が最後。明日に妻子が姫路から帰ってくるのです。ほぼ一ヶ月ぶりです。娘がいると寝坊していると起こされるので。外行くのも面倒なので、備蓄非常食から何か食うべく賞味期限をしらべると。。。「大盛り…
今、Mayaはテンプレートのボディテキスト部はSAXのContentHandlerのcharacterおよびignorableWhitespaceイベントをそのままレゾルバに渡しています。が、これだと改行の入った式ブロックが切れちゃうんだな。。。[character]、[whitespace]、[character]とパ…
replace機能を実装しました。 テンプレート <div class="box" id="message">さようなら</div> 設定XML <tag id="message" inject="c:out" replace="false"> <binding name="value" value="${ helloModel.greeting }"/> </tag> もしくは、 テンプレート <div class="box" m:inject="c:out" m:replace="false">さようなら</div> のように書くと、 <div class="box">こんにちは</div>
この調子だと、「勇気があれば案件に使える」レベルのものが3月1日に予定されている0.9リリース(二度目のマイルストーンリリース)に出せそうです。問題はドキュメントです。明日中に書けない(書く気力がおきない)とアウトだな。使い方の章は機能追加がす…
duranさんから昨晩に要望ありましたが、テンプレでインジェクトされる(のっとられる)HTMLタグが消えちゃうのをコントロールしたいという。。。replace属性を定義というところで、なるほど。。。replaceがメジャーなJSPカスタムタグでアトリビュートに使わ…
なぜかフォワードがかかったのち、どうかすると、PageContextが内包するServletRequestとServletResponseがなくなってます。どっかで、PageContext#release()が呼ばれてるな。。。ただ、このメソッドは基本的にJspFactoryが呼ぶもので、Mayaはここの実装を捨…
/forward.html <html> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> </head> <body> <div> ${ pageContext.request.getRequestDispatcher( "/index.html").forward(pageContext.request, pageContext.response) } </div> </html> 上記は、式で改行はいってるけど、いまのところ式に改行いれたらNGです。がちゃんとフォワードします。re…
式エンジンAPIが新しくなりました。とりあえずJSR245がきちんとなれば、JSR245の式エンジンにも対応できるというように考察を重ね、しかーしOGNL。普通のは動きます。 今、デバッグ中なのは、以下のような式。 ${ model.method(namedObject) } メソッドの引…
「テンプレートエンジンを使おう!」という第1特集でした。今、一番考えているところなので楽しい。サプライズは、まずS2JSFを取り上げられているところ。うれしいですね。Seasar Projectも頻繁にJavaWorldにも出現するようになってきました。そして65ページ…
変更点 0.3.0 -> 0.4.0 式言語エンジンを刷新しました。新しいAPIは、org.seasar.maya.el.* です。デフォルトの実装としてOGNL3.0によるものを提供しています。また、式エンジンAPIを見直すことにより、将来の式エンジンの置き換えカスタマイズにも配慮して…
OGNLに。。。というより、式言語のエンジンを差し替え可能という当初案(JSR245に夢を持って却下した案)に戻るべく実装始めましたが、例の(?)式のブロック評価のところ以外は完了。が、式ブロックの評価を自前でやらないといけないために、CVSにも入れら…
いまさらながら、EL式の仕様ってなんてヘボいんでしょう。JSR245によるUnifiedELとかいって、これが今後のJ2EEでデファクトとなるときつい。OGNLはやはり数段上です。今日は以下の式でハマりました。 ${ THROWABLE.printStackTrace() } いつまでたってもコー…
ちょっとびっくりしたのは(私が知らなかっただけかな?)、SAXParserFactoryのsetValidating(true)によってValidするときに、DTD宣言がひとつもないとSAXParserException「no grammer」が発生しますが、ここに謎な要件があって、ハンドラがErrorHandler#err…
JasperのPageContextImpl内でServletConfigを取得しに行ってるところがあるのですが、Filterだと、FilterConfigで、ServletConfigじゃないんですね。ということで、FilterConfigのラッパーで、ServletConfigを作るということになるのか。。。ま、やれんこと…
変更点 0.2.0 -> 0.3.0 APIの例外取り扱いを検討し、復旧不能な例外についてはRuntimeExceptionを継承した例外にて取り扱うようにしました。 例外処理機構がAPIに追加されました。 TagProcessorにおいて、TryCatchFinallyを実装したJSPカスタムタグに対応し…
テンプレートや設定XMLを更新した際に、エンジンを止めることなく自動的に再ビルドしてサービスする機能が長くバグってましたが、修正できました!リリースします。TryCatchFinallyタグの対応も実装してもらったし、APIの例外を復旧不能のヤツをRuntimeExcep…
リアルMayaに電話する 干しっぱなしの洗濯物を取り込む 床屋にいく APIのEngineのsetServlet(...)をsetServletContext(...)にしてもよいか検証 よければ、Filterにする(Welcomeファイル対策) suffixの区切り文字を設定項目とする。 シエナvsフィオレンティ…
たとえば、/index_123.html とアクセスされるとします。 これは、ページ名=「/index」、ユーザーリクエストsuffix=「123」、拡張子=「html」とバラします。 ページ「/index」+Mayaファイルの拡張子、「maya」より、「/index.maya」を作り、ファイルを探し…
MayaをFilterでサービスしてはという話があったのですが、ちょっと引っかかる点が判明。PageContextのinithializeにServletを用いること。ここ一点なんで、PageContextの仕様を確かめてみないと。 追記 仕様はともかく、Jasper2のコードをざっと眺めても、Pa…
今週は、夜更かし続きだったので寝がたりなかったため、目覚ましとめてずっと寝てました。そうはいっても11時前には起きたけど。で、近所の中国系資本な中華屋さんにいって、昼ごはんたべて、洗濯して、プール行って、実家に。 母親が誕生日だったので実家近…
たぶん、ページを描画する直前とかに何かしたいと思うかなーということで。まずJavaのモデルオブジェクトです。リターンがvoidで、PageContext型の引数を一つ持つというのが仕様。 package org.seasar.maya.sample.hello; import java.util.Date; import jav…
ImplicitPageのattributeを実装しましょうかね、ハイ。
いやーユニットテストがとおらないや。激しいリファクタリングと直感指向開発を身上とする私なので(ダメじゃん!)、動いていたテストが動かなくなっている。。。
今日の日経ビジネスで例の800億調達&一晩で上場企業の35%超の株式取得の怪について書いてありましたが、その文章だけの情報で感じたのは、橋としてヤバイんじゃないかなと。何がヤバイって、転換社債の転換価格を毎週みなおすってところ。こいつによってリ…
マジックカスタムタグは、m:inject属性値として、頭に「$」がついた名前を記述するということを仕様としています。そして、そのマジックカスタムタグは、テンプレートに記述するときは、m:inject="$magicName"で、設定XMLに記述すると、<magicName id="elementID"/>となります。また、マ</magicname>…