2012-04-20 8 views
2

私はJSF 2.0とPrimefaces 3.2を使用しています。primefaces p:コンポーネントフォーム外のメッセージ

私は、テンプレート用のFaceletsを使用している、と私は3列レイアウトを構築しました:

左の列を - MainContentの列を - 右の列を。各列には、mainTemplateに挿入するui:compositionのテンプレートxhtmlファイルがあります。

<h:form id="mainForm"> 
<p:commandButton id="infoButton" value="Info" actionListener="#{faceletsAttachment.addInfo}"/> 
</h:form> 

しかし、私は情報が

<h:form id="rightColumnForm"> 
<p:message for="infoButton"> 
</h:form> 

で、右側の列に表示したい:私はインフォボタン(:のcommandButton p)を持っているMainContentの列で

infoButtonが見つからないため、明らかに機能しません。どのように私はこの作品を作ることができる任意のアイデア?試しました

<p:message for="mainForm:infoButton"> 

でも、シガーはありません。

私がp:メッセージを使用したい理由は、メッセージがinfoButtonのy位置に位置するようにするためです。もし私がこれをやり遂げることができる代替方法があれば、私はそれを感謝するでしょう。

答えて

3

、サーバー側からのメッセージを手動で追加する場合は、次の

<p:message id="myInfoButton" for="myInfoButton" />

を行うと、この

FacesContext.getCurrentInstance.addMessage("myInfoButton ", new FacesMessage("My Message", "Some Text goes here...")); 

ようmyInfoButtonにサーバからメッセージを送信するもの更新に:rightColumnForm IDを追加することができます<p:commandButton id="infoButton"

+0

こんにちは、回答ありがとうございますが、私はこれを動作させることはできませんでした:私backingbeanで: ます。public void addInfo(のActionEventのActionEvent){ FacesContext.getCurrentInstance()そしてaddMessage( "myInfoButton"、新FacesMessageの( "マイメッセージ"、 "いくつかのテキストがここに入ります..."));。 } そして私の形内部 。 commandButtonを押したときにメッセージが表示されませんでした。また、どのようにこれがメッセージを正しいy位置に揃えるのかよく分かりません。 – baron5

+0

を編集すると、ビューをレンダリングするようにrightColumnFormフォームを更新する必要があります。 – Daniel

+0

はい、これはもう少し近づいていますが、メッセージがcommandButtonと同じy位置に表示されることが重要です。 – baron5