h:graphicImageでマウスオーバーやアウトで画像を変える

まんまです

<h:graphicImage url="hoge.png"
onmouseover="this.src='hoge_over.png'"
onmouseout="this.src='hoge.png'" />

条件をつけたいときは

<h:graphicImage url="#{ なんとかが == 'AAA' ? 'hoge_over.png' : 'hoge.png' }"
onmouseover="this.src='hoge_over.png'"
onmouseout="this.src='#{  なんとかが == 'AAA' ? 'hoge_over.png' : 'hoge.png' }'" />

こんなかんじ。

| | コメント (0) | トラックバック (0)

int型のh:selectOneMenuのf:selectItems

http://forums.sun.com/thread.jspa?threadID=5142935&messageID=9530460

tomahawk1.1.6にしたら
時間のプルダウンメニューでバリデーションエラーが起きてしまう
時間をそこではint型にしているのだが、はいっている値が変だよってなかんじだ。

なんでやねんとぐぐったら上のサイトに

選択肢は前はStringでつくっていたんだけど
intでいいらしい。

projectListVal.add(new SelectItem(new Integer(1), "Select a Project Type"));

ふーん。

| | コメント (0) | トラックバック (0)

IEでoamSetHiddenInputとかさ

tomahawk-1.1.6にしたら、IEでtomahawk-1.1.6とかゆーエラーがでて1.1.3のままでずーっとやっていたけど
回避方法?を発見
http://roneiv.wordpress.com/2008/01/20/oamsethiddeninput-is-not-defined-temporarily-solution/
らしいですよ

よくよんでませんが

<h:form id="myForm">
            <t:commandButton id="submitMyFormButton"
            value="Submit" action="#{myHandler.myAction}" ></t:commandButton >
            <t:commandLink id="stupidHiddenButtonToAvoidException"
            value="Nothing" style="display: none; visibility: hidden;"></t:commandLink>
</h:form>

のようにダミーというか見えないリンクをいれとくといいらしい

エラーがおきる画面にはうめこめってことだろか?

| | コメント (0) | トラックバック (0)

涙のMyFaces

現在動いているバージョン
coreが1.1.4
tomahawk 1.1.3

tomahawkをあげたいけど、あげるとIEでエラーがでたりリンクがきかなくなるときがある。

時代はいつのまにやらRichfacesやら JSF1.2やらtrinidadやら。

別の仕事でExtやったからリッチなUIにもあこがれるけど

(ノ_・、)

| | コメント (0) | トラックバック (0)

MyfacesでAjaxがしたいよ

といろいろ調べてたらajax4jsfとか

ってそれはもう古い話で
いまはRichFacesとからしい。

現時点の希望としては、MyfacesにRichFacesでAjaxな感じを追加できたらハッピーなのだが、なんか全然わからない

そもそもJSFの1.1と1.2の違いとか。
1.2ってそんなにちがうのかな

わからん

だれか日本語のサイトおしえてくれ。。。

Tomcat5.xでなきゃと思っていたが、よく考えていたらいまやっているものは、もう前のバージョンはぶっちするべとひとりで勝手に決めたからTomca6でいいなだよな。

ログイン画面はでるからJSFは動いているっぽいがそのあと認証関係をフィルターでかましているのがちょっといまいちなかんじ

JSFを使った場合のログインとかどうやって実装したらいいかがわからん。
誰かおしえてー(><)

| | コメント (2) | トラックバック (0)

h:commandButtonにtypeが

ちょーいまさらいまどきな。

<h:commandButton>
はsubmitだ

じゃなくて、type="button" とか指定できるらしい

常識?

一人でやってると知らないこと多いよ(ノ_・、)

| | コメント (2) | トラックバック (0)

チェックボックスに自前のID

いまさら
http://wiki.apache.org/myfaces/ManagingCheckboxes
を発見

forceidというのをつかうと、チェックボックスに自前のIDをつけられるらしい

はやくいってよべいべー
って
自分が気づかなかっただけじゃん・・・

| | コメント (0) | トラックバック (0)

「まだまだ踏み切れないのかも」

212頁より

「・・・JSFの導入には、まだまだ踏み切れないのかもしれない。」

だそうですよ。

へー。

Spring2.0入門 Java・オープンソース・Web開発自由自在 Book Spring2.0入門 Java・オープンソース・Web開発自由自在

著者:株式会社豆蔵,長谷川 裕一,岩永 寿来,伊藤 清人,大野 渉,麻野 耕一
販売元:技術評論社
Amazon.co.jpで詳細を確認する

| | コメント (0) | トラックバック (0)

JSF(MyFaces)でGoogleカレンダーみたいなのをつくりたい

セルをドラッグ&ドロップなんて無理ですが

まずは単にカレンダーをかくことすらJSFではむずかしい。
いやそれは単にCSSの知識がたりないという前提

JSFのテーブルは(カレンダーをテーブルでかくという発想事態が
まちがいだったらみもふたもなし)
HTMLのテーブルとは違う考え方をする。
HTMLは行を書いていくが
JSFのdataTableは列を書いていく
データ的にみればJSFが正しいがHTML的にみると
無理していることこのうえない。

HTMLで書く場合
曜日を7個入れたリストが最大5個はいったリストを用意して
2重ループにする。

JSFで書く場合
日から土まで用意する、なんてことをすると
セルのなかの繰り返しができないので
やはりHTMLの場合と同じものを考える

外の繰り返しはふつーに<h:dataTable />を使う。
内側の繰り返しは、<t:newspaperTable newspaperColumns="7" />を使う。
ポイントはいうまでもなく
newspaperColumns="7"
これがあればなんとか実現できる。

テーブルのなかにテーブルがあるだけってことだが
見た目をそろえるという大問題がある。
土日祝日は色を変えたいというニーズもある

全体的なスタイルシートのデフォルトは以下のような隙間無しにする。

border:0;
border-collapse:collapse;
margin:0;
padding:0;  <=ここは増やしてもよい。

で、
JSFのタグの構造としては以下のようになる。
省略してあるがすべてstyleClass、columnClassesを指定する

<h:dataTable>
  <h:column>
    <t:newspaperTable newspaperColumns="7">
      <h:column>
        <t:div styleClass="#{休み ? '休みのCSSのクラス' : ( 土曜日 ? '土曜日のCSSのクラス' :'普通のCSSのクラス' ) }">

          <h:dataTable value="#{その日の予定のリスト}">
            <h:column>
              <h:outputText value="#{予定}" />
            </h:column>
          </h:dataTable>

        </t:div>
      </h:column>
    </t:newspaperTable>
  </h:column>
</h:dataTable>

内側に
<t:div />がある。
ここのstyleClassも、隙間無しにしておく。

かなり大変だが、できあがるとうつくしーJSPになる。
うつくしーものはメンテしやすい
多分動きやすい

Googleカレンダーへの道は遠い。

| | コメント (0) | トラックバック (1)

tomahawkのえらー

エクステンションフィルターなおしてよ
とかゆーエラーがでていた
tomahawk1.1.3にしたら。
かといって
org/apache/myfaces/custom/buffer/HtmlBufferResponseWriterWrapper
のエラーはきえるのか?

| | コメント (0) | トラックバック (0)