私は Java/JSF テクノロジーの初心者であり、Java/JSF の世界で何が起こっているかを理解するために単純な UI を作成しようとしています。
ここで、ManagedBean のメソッドとそのパッケージ名を CommandButton の actionListener にバインドしたいと考えています。
例:
index.xhtml
...
<h:commandButton actionListener="#{com.acme.myclass.MyMethod}" ...
...
MyClass.java
package com.acme;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class MyClass {
public MyClass() {
// Constructor
}
public void MyMethod() {
// Do some job
}
}
上記の例のようにメソッドをバインドしようとしましたが、メソッドが呼び出されません。その上、Netbeans の小さなオートコンプリート ウィンドウに自分のパッケージが表示されません。メソッドを#{class.method}形式でバインドすると (インターネット上のすべての例のように)、機能します。
これを達成する方法はありますか?
なぜこれを行う必要があるのですか?
プロジェクトがますます大きくなる一方で、命名クラスはますます難しくなっています。したがって、異なるパッケージで同じクラス名を使用すると、作業が楽になると思います。