JSFファイルを国際化する過程で、外部化文字列(およびプレースホルダを使用した文字列の連結)が処理されています。私はJSF(今日と昨日)にはほとんど経験がありませんので、私の質問に対するobviuosの答えがある場合は私に言い訳をしてください!JSF:outputFormatのパラメータとしてのcommandLink
単純なプレースホルダではh:outputFormatタグ(およびf:paramタグ)を使用していましたが、現在はplaceholderをcommandLinkコンポーネントで置き換えようとしています。
<h:outputFormat value="#{adminMsgs.scheduleUpdateLink} ">
<h:commandLink value="#{adminMsgs.update}" action="refresh" />
</h:outputFormat>
すなわち、プロパティファイル:これらの線に沿って
scheduleUpdateLink = After waiting a few seconds, please {0} the page.
update = update
、出力を:
After waiting a few seconds, please <a href="#" class="..." onclick="...;return false;">update</a> the page.
このは作業(更新リンクは「前に表示されていませんscheduleUpdateLink 'text)、誰かが私がそれをやる方法を知っていますか?
ありがとうございます。
EDIT/UPDATE
お返事マクダウェルをありがとう - まだ非常に便利な、しかし、完全に私の問題を解決していません。私は入力ボックス(h:inputText)で同じことをする必要もありますし、一つのリソース文字列に複数のプレースホルダがある場合もあります。したがって、私は、アラビア語のような順序が同じであることを保証することはできません。
Java関数を使用した場合、文字列としてJSFタグを渡すことができる方法があるかどうかを知っていますか? <h:outputFormat value=..
。 facesコンテキストを使用してレンダリングされたHTMLを取得します。これをそれぞれのプレースホルダに挿入してプレーンなHTMLとして返すことができますか?またはこれらの行に沿った他のアイデアですか?
乾杯。
これは大きな助けになりました! 私はカスタムコンポーネントatmで作業しています。レンダラーのベースとなるデフォルトのレンダラーを見たいと思っていましたが、見つけられず、グーグルグーグルも見つかりませんでした。 javax.faces.component.html.HtmlOutputFormatのデフォルトレンダラーが何であるか知っていますか?私が知っている唯一のことは、レンダラータイプが "javax.faces.Format"であることです。乾杯と私はあなたのブログをチェックしています... –
オープンソースのJSF実装(Sun MojarraとApache MyFaces)は2つあります。実装の設定文書を検索し、レンダラータイプと一致するレンダラークラス要素を検索します。 – McDowell
興味のあるカスタムコントロールの実装:http://illegalargumentexception.blogspot.com/2009/08/jsf-custom-format-panel-control-for.html – McDowell