I hope that in this post, I can get people's opinions on best practices for the interface between JSF pages and backing beans. One thing that I never can settle on is the structure of my backing beans. Furthermore, I have never found a good article on the subject. What properties belong on which backing beans? When is it appropriate to add more properties to a given bean as opposed to creating a n
対象読者 JSF及びその周辺領域をある程度理解している(ライフサイクルとかFaceletsとか) JSFを使ったアプリケーションを作ったことがある or これから作る JSFを使ったアプリケーションで、性能問題に直面している 本記事の概要 これまで約3年間、JSFやFaceletsを使ったWebアプリケーションを構築してきた。 その中でハマった事や参考にした記事などを紹介する。 はじめに JSF、Facelets、PrimeFaces(その他のJSFライブラリ)などを利用することで、 大規模なWebアプリケーションを短期間で構築することができるようになっている。 一方で、概念や内部構造を理解しないまま設計・実装を進めると、思わぬ不具合や性能問題を引き起こす可能性もある。 そこで、これまでの経験から、抑えておきたい概念やハマりどころになりそうなところ、性能アップTipsをまとめる。 JSFの
Download - Showcase - API docs - VDL docs - GitHub - Issues - X What is OmniFaces? Tired of reinventing JSFUtils or FacesUtils utility classes for every JSF / Jakarta Faces web application and/or homebrewing custom components, taghandlers, etc to workaround or enhance some general shortcomings in Faces? OmniFaces may be what you’re looking for! OmniFaces is a utility library for Faces that focusse
Converterのところで変なバグが出てて、1時間半くらいハマってたので、その記録。 先に結論を書くと、これ。 getAsStringのvalueがnullだった場合、nullを返さないといけないっぽい— もちだでしたが、衰退しました (@mike_neck) 2015, 3月 20 まず、選択肢用にenumを用意します。 package sample; import javax.faces.model.SelectItem; import java.util.NoSuchElementException; import java.util.stream.Stream; public enum Event { Track100m(1, "100m", true), Track400m(2, "400m", true), Track1500m(4, "1500m", true), Trac
JSFを利用していて、海外のStackOverflowをよく見る方はご存じだと思うのですが、回答の常連となっているBalusCさんというJSFマスターがいます。 で、この方が作られたOmniFacesというJSFのサポートライブラリがあるのですが、今回の開発で使ってみることにしました。 omnifaces.org サイトの副題になっている「To make JSF life easier」って表現いいですね。JSFライフは辛いときもあるので…。 具体的にどんな機能が揃っているのか?は以下のshowcaseで確認できます。 OmniFaces Showcase なお、OmniFacesの概要や誕生経緯とかについては以下翻訳でわかりやすくまとまっています。 www.infoq.com ここにも書いてありますが、PrimeFacesやRichFaces等のJSFリッチコンポ―ネントライブラリとバッ
だいぶ前にリリースされたJSF 2.2ではCSRF対策の機能が追加されました。 そこで、JSFをどのように利用している場合にCSRFの脆弱性が発生するのかと、 JSF 2.2で追加されたCSRF対策を実施すると、この問題をどのように防げるのかを確認してみます。 環境 OS: Mac OSX 10.9.4 Java: Java(TM) SE Runtime Environment (build 1.8.0-b132) メモリ: 4GB WildFly 8.0.0.Final アプリを作る CSRFの脆弱性がある、といわれても具体例がないとなかなかイメージするのが難しいかもしれません。 そこで、ここでは実際に攻撃を受けるアプリを作り、脆弱性を露呈されてみたいと思います。 コードの構成は下記のようになります。 JSFCSRFSample +- src | +- main | | +- java
この記事は「Java EE Advent Calendar 2014」の22日目のエントリーです。 昨日は@suke_masaさんの「続・JPQLでハマった話」でした。明日は@kikutaro_さんです。 今日はJSFのバリデーションについて整理したいと思います。 JSF1.*時代のバリデーション JSF1.*の時代にはFaceletsのValidateタグを使用してバリデーションを行っていました。例えば5文字以上10文字以下の文字数のチェックを行うプログラムは以下です。 ・facelets <h:form> <div> <h:inputText id="msg" value="#{hogeBean.msg}"> <f:validateLength minimum="5" maximum="10" /> </h:inputText> <h:message for="msg" /> </di
PrimeFacesのバージョン5.1で新しく入った「Grid CSS」では、JSFでも手軽にレスポンシブWebチックなレイアウトができる機能(コンポーネント?)です。 例えば2つのテーブルをpanelGridで横並びに置いてみると、次の表示になります。 Faceletsは次のような定義です(管理Beanは省略) <p:panel header="画面名"> <h:panelGrid columns="2"> <p:dataTable var="actless" value="#{mitsumoriConfigBean.actlessList}"> <p:column width="30"> <p:selectBooleanCheckbox /> </p:column> <p:column headerText="女優名"> <h:outputText value="#{actless}"
Servlet 3.1は非同期などまぁとっつきが悪いのが目玉です。 しかし、お手軽かつシンプルによくなったものが追加されています。 それはPartです。 え?Part自体はすでにあるって? http://d.hatena.ne.jp/shin/20090723/p1 たしかに、ちょうど4年くらい前に紹介してますね。もう4年もたってるんですね。そりゃJavaEE 6はかれた旧世代の環境だわー。誰もが知っていて当たり前の技術だわー。 ですが、当時からパワーアップしているのですよ、こいつも! サーブレットかくのたるいので、UPLOADが対応したJSF 2.2を使います。すごいらくちんにかけますよ。 テンプレート 昨日のエントリをすこしいだけいじります。今回は先にテンプレートから。 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUB
JSF 2.2 でやっと導入されたFileUploadを試してみました。 まずサーバ側のBackingBeanを作成します。 package sample; import javax.inject.Named; import javax.enterprise.context.RequestScoped; import javax.servlet.http.Part; @Named @RequestScoped public class UploadPage { private Part file; public Part getFile() { return file; } public void setFile(Part file) { this.file = file; } } JSFすごい。もはや処理すらありません。 fileのゲッターセッターを準備します。 ファイルはServlet
前提 最近、JavaEE環境でJSF2.xとPrimeFacesを触る事が増えてきましたので、 これからそういった構成でシステムを構築する方のために記録として書いておきます。 先に釘を刺しておきますが、JSF環境ではJavaScriptを多用する事はオススメしません。 JSF JSFはJavaEE標準機能のモジュールドリブンなMVCフレームワークです。 JSF2系になり、かなり実用性が増していると思います。 JSF1.xのバージョンではxmlベースでのマッピングであるのに対し、 2系ではアノテーションベースで簡易に関連付けが出来るようになっています。 PrimeFaces PrimeFacesはJSFを前提にして、リッチなUIライブラリを提供するものです。 基本的にJSFのタグライブラリを全てラップするような形でPrimeFacesのタグライブラリが作られています。 PrimeFacesの
JSF のビューテンプレート内で条件分岐してコンポーネントの表示を切り替えたい場合、 rendered 属性で表示するための条件を指定することができます。しかし rendered 属性は、 JSP の c:choose などと違い排他構造を表現できないため、 JavaScript で使うためなどでコンポーネントに id を指定している場合に重複エラーとなってしまいます。例えば以下のように書いた場合*1。 <h:form id="mainForm"> <h:outputText rendered="#{foo.showText}" id="hogehoge" value="#{foo.value1}" /> <h:outputText rendered="#{!foo.showText}" id="hogehoge" value="#{foo.value2}" /> </h:form> re
JSF 2.0 で Facelets タグをコメントする方法 2011年1月19日 at 5:34 午後 今日は、JSF 2.0 の Facelets でコンポーネントタグをコメントする方法をご紹介します。テスト用のコードを記載する際、デバッグ用のコード、もしくはダミーのコードを埋め込んだりする事があるかと思いますが、本番環境での表示には必要ないコンポーネントをコメントする方法を下記に紹介します。 まず、始めに、下記のようなサンプルページを作成してください。 <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く