0

私は奇妙な問題を抱えています。2 つのコントロールを持つ 1 つの JSF ページがあります: - InputText - Button

<?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を初期化したい(パラメータ名はtest - value="#{param.test}")。JSFページではすべて問題ありません。しかし、ボタンをクリックした後、Java コードの 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;
}

しかし、これは機能しません...ボタンをクリックすると毎回nullになります。Java関数のInputTexからこの値を取得する理由と方法を教えてください。

4

2 に答える 2

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**;
}
于 2013-12-18T18:21:54.630 に答える
0

PagePhaseListenerManaged Bean に実装し、以下のコードを使用して 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 を使用しています

于 2013-04-30T11:38:13.953 に答える