2016-05-06 20 views
1

今、customerCaseController.customerCase.caseIdは数字の文字列で、見出しやラベルとしてxhtmlページに印刷するだけで動作します。メソッドのパラメータとしてJSFのparamの値を渡すには?

私は私のfileAttachmentController方法findByCustomerCase(String caseId)を呼び出したいのですが、これは動作していない。ただ方法findByCustomerCaseとのない値にパラメータとしてテキスト「customerCase」を渡す

<f:param customerCase="#{customerCaseController.customerCase.caseId}" /> 
    <p:dataTable var="fileAttachment" 
    value="#{fileAttachmentController.findByCustomerCase(customerCase)}"> 

    ...table-contents... 

    </p:dataTable> 

param customerCase。どのように値を渡すことができますか?

答えて

2

あなたの問題は、あなたが間違った方法でf:paramを使用していることです。この要素は、ローカル変数の定義には使用されません。つまり、customerCaseはその時点で有効な変数ではありません。

customerCaseに限らず、customerCaseController.customerCase.caseIdにアクセスしているので、引数aswellとまったく同じ値を渡して、f:param全体をスキップする必要があります。次の代わりf:paramを考慮し、ローカル変数を保持する方法を維持したい場合には

<p:dataTable var="fileAttachment" 
value="#{fileAttachmentController.findByCustomerCase(customerCaseController.customerCase.caseId)}"> 

...table-contents... 

</p:dataTable> 

は希望 caseIdへのアクセスを取得するには、次のようにコードを変更し

<ui:param name="customerCase" value="#{customerCaseController.customerCase.caseId}" /> 

XML-名前空間:xmlns:ui="http://java.sun.com/jsf/facelets"

これにより、上記のコードを使用することができます。 f:paramをこのスニペットに置き換えてください。

+0

ありがとうございます!それは動作します。私はまだ物事のxhtml側に慣れていないと思う。 +1を使用してui:paramを起動します。 –

関連する問題