ADFでパラメーターのやり取り
① 遷移元画面と遷移先画面のマネージド
Bean
の連携:
遷移元画面:
<input type=text name="name" value=123/>
或者是
url
中的参数
*.action?name=123
遷移先画面のマネージド
Bean
:
FacesContext context=FacesContext.getCurrentInstance();
String str = (String)context.getExternalContext().getSessionMap().get("name");
または:
FacesContext context=FacesContext.getCurrentInstance();
String str = (String)context.getExternalContext().getRequestParameterMap().get("name");
② 遷移元画面と遷移先画面の連携:
遷移元画面:
<af:setActionListener from="#{true}"
to="#{processScope.showFlag}"/>
遷移先画面
disabled="#{processScope.showFlag}"
③
マネージド
Bean
へアクセスするために、
createValueBinding
クラスを使用する必要
。
Faces-config.xml
<managed-bean-name> user </managed-bean-name>
<managed-bean-class> com.bean.User </managed-bean-class>
<managed-bean-scope> request </managed-bean-scope>
</managed-bean>
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding = context.getApplication().createValueBinding( "#{user} ");
UserBean user = (UserBean) binding.getValue(context);
④
バインディング・オブジェクトへのアクセス用にバッキングBean
で生成されたコード:
1.
public String commandButton_action1() {
2.
BindingContainer bindings = getBindings();
3.
OperationBinding operationBinding =
4.
bindings.getOperationBinding("mergeEntity");
5.
Object result = operationBinding.execute();
6.
if (!operationBinding.getErrors().isEmpty()) {
7.
return null;
8.
}
9.
return null;
10.
}
⑤
EL
式の結果を取得するには、
ValueBinding
クラスを使用する必要があります。
1.
FacesContext fc = FacesContext.getCurrentInstance();
2.
ValueBinding expr =
3.
fc.getApplication().
4.
createValueBinding("#{bindings. itemCode
.inputValue}");
5.
DCIteratorBinding ib = (DCIteratorBinding)
6.
expr.getValue(fc);
⑥
XXX
PageDed
.xml
についての
binding
属性の取得:
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("createXxodfItem");
Object result = operationBinding.execute();
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
BindingContainer bindings = getBindings();
AttributeBinding itemCode =
(AttributeBinding)bindings.getControlBinding("itemCode");
itemCode.setInputValue(null);
⑥参考:
http://download-uk.oracle.com/docs/cd/B31017_01/web.1013/b28969/oracle/binding/BindingContainer.html