Oracle ADF中Java代码中的URL参数

时间:2013-01-28 14:58:27

标签: java oracle-adf

我有一个奇怪的问题。我有一个带有两个控件的JSF页面: - 输入文本 - 按钮

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<af:document title="view12.jsf" id="d1">
    <af:messages id="m1"/>
    <af:form id="f1">

        <af:inputText label="Label 1" id="it98" value="#{param.test}" editable="always"/>
        <af:commandButton actionListener="#{bindings.przekierowanie.execute}" text="przekierowanie"
                          disabled="#{!bindings.przekierowanie.enabled}" id="cb1"/>
    </af:form>
</af:document>

我想用URL中的参数初始化InputText(param name是test-value =“#{param.test}”)。在JSF页面中一切都很好。但是点击按钮后我必须从Java Code中读取InputText中的值,所以我有URL:

http://127.0.0.1:7101/Application6-ViewController-context-root/faces/view12.jsf?test=asd

和点击按钮后执行的Java代码是:

public String przekierowanie() {
    Map <String,String> map=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    String tttValue=map.get("test");
    System.err.println("test:" + tttValue);
return null;
}

但这不起作用...每次单击按钮时我都会变为空。你能告诉我为什么以及如何从我的java函数中的InputTex中获取这个值?

2 个答案:

答案 0 :(得分:0)

在您的Managed Bean中实现PagePhaseListener并使用下面的代码来访问URL参数。

示例:

public void beforePhase(PagePhaseEvent pagePhaseEvent) {
    if (pagePhaseEvent.getPhaseId() == Lifecycle.PREPARE_MODEL_ID) {
        testVar = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("test");
    }
}

我正在使用Jdev 11.1.2.0.0

答案 1 :(得分:0)

可能是因为你只返回NULL。

public String przekierowanie() {
    Map <String,String> map=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    String tttValue=map.get("test");
    System.err.println("test:" + tttValue);
**return null**;
}