JavaDemo演示了如何在UI与Java beans之间建立联系,并且还演示了如何在Java中调用EL bindings。
知识点:
1. 如何从一个Feature到另一个Feature
(1)页面代码
<amx:commandButton id="commandLink1" text="Invoke Handler"
actionListener="#{pageFlowScope.DemoBean.ActionHandler}"/>
(2)Java代码
public void ActionHandler(ActionEvent actionEvent) {
AdfmfContainerUtilities.gotoFeature("Success");
}
说明:
(1)"Success"是另个Feature的id值,并且设置为隐藏。
2. 如何使用ValueChangeListener
(1)页面代码
<amx:selectBooleanSwitch id="selectBooleanSwitch1" value="#{pageFlowScope.DemoBean.navBarStatus}"
label="Navigation Bar" offLabel="Off" onLabel="On"
valueChangeListener="#{pageFlowScope.DemoBean.ValueHandler}"/>
(2)Java代码
public void ValueHandler(ValueChangeEvent valueChangeEvent) {
String showNav = (String)valueChangeEvent.getNewValue().toString();
if(showNav.equals("true") ) {
AdfmfContainerUtilities.showNavigationBar();
}
else {
AdfmfContainerUtilities.hideNavigationBar();
}
}
3. 如何在Java中使用EL
(1)页面代码
<amx:commandButton text="Value #{pageFlowScope.button1}"
id="commandButton1" actionListener="#{pageFlowScope.DemoBean.ValueExprHandler}"/>
<amx:commandButton actionListener="#{pageFlowScope.DemoBean.MethodExprHandler}" text="Method"
id="commandButton2"/>
(2)Java代码
public void ValueExprHandler(ActionEvent actionEvent) {
ValueExpression ve = AdfmfJavaUtilities.getValueExpression("#{pageFlowScope.button1}", String.class);
String button1 = (String)ve.getValue(AdfmfJavaUtilities.getAdfELContext());
button1 += "+";
ve.setValue(AdfmfJavaUtilities.getAdfELContext(), button1);
}
public void MethodExprHandler(ActionEvent actionEvent) {
MethodExpression me = AdfmfJavaUtilities.getMethodExpression("#{bindings.DoMyMethod.execute}", Object.class, new Class[] {});
me.invoke(AdfmfJavaUtilities.getAdfELContext(), new Object[] {});
}
4. 如何在Java中调用Data Control 暴露的方法
(1)页面代码
<amx:commandButton actionListener="#{bindings.DoMyMethod.execute}" text="Do MyMethod"
id="commandButton1"/>
(2)Java代码
public void MethodExprHandler(ActionEvent actionEvent) {
MethodExpression me = AdfmfJavaUtilities.getMethodExpression("#{bindings.DoMyMethod.execute}", Object.class, new Class[] {});
me.invoke(AdfmfJavaUtilities.getAdfELContext(), new Object[] {});
}
5. 完整的Java Bean 代码:
(1)页面代码
<amx:commandButton actionListener="#{bindings.DoMyMethod.execute}" text="Do MyMethod"
id="commandButton1"/>
(2)Java代码
public void MethodExprHandler(ActionEvent actionEvent) {
MethodExpression me = AdfmfJavaUtilities.getMethodExpression("#{bindings.DoMyMethod.execute}", Object.class, new Class[] {});
me.invoke(AdfmfJavaUtilities.getAdfELContext(), new Object[] {});
}
5. 完整的Java Bean 代码:
package mobile;
import javax.el.MethodExpression;
import javax.el.ValueExpression;
import oracle.adfmf.amx.event.ActionEvent;
import oracle.adfmf.amx.event.ValueChangeEvent;
import oracle.adfmf.framework.api.AdfmfContainerUtilities;
import oracle.adfmf.framework.api.AdfmfJavaUtilities;
public class Javademobean {
public Javademobean() {
}
private Boolean navBarStatus = Boolean.TRUE;
public void ActionHandler(ActionEvent actionEvent) {
AdfmfContainerUtilities.gotoFeature("Success");
}
public void ValueHandler(ValueChangeEvent valueChangeEvent) {
String showNav = (String)valueChangeEvent.getNewValue().toString();
if(showNav.equals("true") ) {
AdfmfContainerUtilities.showNavigationBar();
}
else {
AdfmfContainerUtilities.hideNavigationBar();
}
}
public void setNavBarStatus(Boolean navBarStatus) {
this.navBarStatus = navBarStatus;
}
public Boolean getNavBarStatus() {
return navBarStatus;
}
public void DoMyMethod() {
AdfmfContainerUtilities.gotoFeature("Success");
}
public void ValueExprHandler(ActionEvent actionEvent) {
ValueExpression ve = AdfmfJavaUtilities.getValueExpression("#{pageFlowScope.button1}", String.class);
String button1 = (String)ve.getValue(AdfmfJavaUtilities.getAdfELContext());
button1 += "+";
ve.setValue(AdfmfJavaUtilities.getAdfELContext(), button1);
}
public void MethodExprHandler(ActionEvent actionEvent) {
MethodExpression me = AdfmfJavaUtilities.getMethodExpression("#{bindings.DoMyMethod.execute}", Object.class, new Class[] {});
me.invoke(AdfmfJavaUtilities.getAdfELContext(), new Object[] {});
}
}
没有评论:
发表评论