送信ボタンがあります。この送信ボタンには「action」属性があります。ただし、このアクション属性は常に別の関数 (ある種のジェネリック) を呼び出す必要があります。だから私は動的に関数を呼び出したい。これは、このコンポーネントを再利用する必要があるためです。アクション属性に必要なタイプ(メソッド、文字列など)と、必要な「BeanWithMethodToCall」を正しく参照する方法がわからないだけです。
@Named
@SessionScoped
public class BeanWithMethodToCall{
@Inject
private BeanWhichIsCalledFromEL elBean;
public void methodToCall(){
//do something
}
public void someLogic(){
// here the wanted method is set on the bean which is later on called from el
elBean.setMethodToCall("methodToCall");
}
}
@Named
@SessionScoped
public class BeanWhichIsCalledFromEL{
// i don't know the correct type of this :S
private String method;
public void setMethodToCall(String method){
this.method = method;
}
// i don't know the correct return type of this :S
public String getMethodToExecute(){
//this method is called in the action attribute in the xhtml
// and should return a dynamic function to call
}
}
ELで:
<h:commandButton value="Cancel" action="#{beanWhichIsCalledFromEL.getMethodToExecute()}">
<f:ajax render="@form"/>
</h:commandButton>
これは難しいようです..誰かが私を助けてくれることを願っています. リフレクションが必要ですか? またはELリゾルバーまたは何か??