- - PR -
jsfを用いた携帯サイトの作り方
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-16 23:36
MyFaces1.1.0で携帯アプリを作ったことがあります。
・ALLOW_JAVASCRIPTをfalseにする ・h:commandLinkを使わない ・素敵な拡張コンポーネント群を使わない (大抵の拡張コンポーネントはJavaScript使いまくりなので) ということだけ意識しておけばよかったと思います。 私の場合はPCと共有していたのでSTATE_SAVING_METHODはclientにしていたような気がしますが、serverで問題ないと思います(一応「戻る」の挙動を確認してみた方がよいかもしれませんが)。 あと、属性istyleを持つテキストボックスとテキストエリアも作ったような。 | ||||
|
投稿日時: 2006-08-17 00:44
t_yamo様
返信有難うございます。 javascriptをfalseにすると、全ての画面の遷移ができなくなるわけではなかったのですね・・・ 遷移の大半がh:commandLinkで作っていたので、そう思ってました。 あとh:commandLinkではなく、h:commandButtonに変更したら問題なく動きました。 本当に助かりました! しかし全てがボタンになってしまうということで悩み中です。 もしリンクでエラー無く遷移ができたらよいのですが、現状ではちょっと厳しいようなので、ちょっと前から作成中のstruts,spring,hibernateの案も平行して取り掛かっています。 皆様本当に有難うございました。 | ||||
|
投稿日時: 2006-08-17 10:32
確認してみたらserverだと何も付かないんですね。 昔のMyFacesだと他のデータが付いていたような??? 多分、勘違いなので気にしないで下さい。 | ||||
|
投稿日時: 2006-08-17 11:42
今回はStrutsを使った代替案があるとのことですが、どうしてもJSFでやる必要がある場合、MyFacesを拡張して無理やり対応という方法が無くもないです。
MyFacesのHtmlLinkRendererBaseにはrenderNonJavaScriptAnchorStart()という、メンテされているのかいないのか分からないメソッドが存在し、一応Non-JavaScriptの環境でh:commandLinkを使えるようにしようとした形跡があります。 ただ、このまま使うとh:formと不整合が発生するため、h:formのレンダラHtmlFormRendererBaseで定義されている「[フォームのID]+"_SUBMIT"」というhidden要素と同じものをリンクのクエリーに入れてあげる必要があります。 ↓こんな感じ hrefBuf.append("&"); hrefBuf.append(findNestingForm(component, facesContext).getFormName()); hrefBuf.append("_SUBMIT=1"); この方法はJSF1.1で規定されたh:commandLinkの範囲外になりますので、カスタムタグとして利用した方がよいと思います。 | ||||
|
投稿日時: 2006-08-18 01:07
t_yamo様
またまた返信有難うございます そのような方法があるとは知りませんでした。 ただレンダラとカスタムタグということで、自分にはハードルが非常に高いですが 調べつつがんばってみたいと思います。 あと自宅サーバを立ち上げ、携帯での検証を行ってみましたが、 commandButtonだと問題なく遷移ができました。 本当に有難うございました。 |