使用jsf基本常見問題1
1.commandButton不能觸發其Action,原因是commandButton放到了verbatim中2.不能將InputText的值邦定到實體變量中,原因是設置了commandButton的immediate為true造成的
3.java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.substringBeforeLast(Ljava/lang/String; Ljava/lang/String;)Ljava/lang/String;是因為commons-lang.jar版本的問題
4.在panelTabbedPane中使用inputdate,無法正常使用,并且導致action無法執行,是因為panelTabbedPane與其它控件的兼容性較差
5如何在panelTabbedPane中加Tab Change事件,設置serverSideTabSwitch="true"并且添加<t:tabChangeListener type="backbean.PlmtManageBean" />PlmtManageBean需要實現TabChangeListener接口
我是將TabChangeListener接口添加在backing bean上的,導致Tab Change事件發生時該bean老重新create,所以放棄使用
6.bean中獲取另外一個bean中的屬性
FacesContext fc = FacesContext.getCurrentInstance();
String userName = (String)fc.getApplication().createValueBinding("#{Person.userName}").getValue(fc);
this.custId = custId;
FacesContext fc = FacesContext.getCurrentInstance();
BankBean bank = (BankBean) fc.getApplication().createValueBinding("#{bank}").getValue(fc);
The same result you can reach using the Variable Resolver:
FacesContext fc = FacesContext.getCurrentInstance();
BankBean bank = (BankBean) fc.getApplication().getVariableResolver().resolveVariable(fc, "bank");