私は次の設定をしています:
public String getResult()
を返すメソッドを含む testBean.java"success"
test.xhtmlと
<h:commandLink action="#{testBean.result}" value="testlink" />
faces-config.xml内の次のナビゲーション ルール:
<navigation-rule> <from-view-id>/views/test.xhtml</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/views/nextpage.xhtml</to-view-id> <redirect /> </navigation-case>
action 属性 (works) に直接「success」を入れるだけで、ナビゲーションが一般的に機能することを確認しました。また、出力テキストとして印刷testBean.result
すると、「成功」が正しく表示されます。
ただし、リンクをクリックすると、「サーバー内部エラー」が発生し、ページのリロードのみが許可されます。ログには、次のテキストを含む javax.el.MethodNotFoundException が表示されます。
Method not found: com.company.project.view.TestBean@81de8.result()
謎の @81de8 がどこから来たのか、私は混乱しています。これが問題の原因でしょうか。他の場所での不一致の兆候なのか、それとも完全に正常な舞台裏の魔法なのか? outputText では失敗しないのに、commandLink 内での呼び出しが失敗する理由を誰でも理解できますか? または、チェックしてテストする必要がある他のことを教えてください。
前もって感謝します、 ルイーズ
編集: Java メソッドの名前は getResult (結果ではない) で、エラー コードはメソッドの結果 (文字列ではない) を指しています。これらは、長い一日の仕事の終わりに質問したために、質問を書き間違えたものです ;) 申し訳ありません。