【问题标题】:Oracle adf Addition issueOracle adf 添加问题
【发布时间】:2017-05-12 10:17:16
【问题描述】:

伙计们 我正在 Oracle ADF 中制作这个简单的加法函数 在其中我使用三个输入文本字段,前两个用于输入数字,第三个用于输出,还有一个按钮,我在其中编写了用于计算加法操作的代码。在 ADF 中创建 Adf Fusion 应用程序后的页面上 这是代码

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html>
<f:view xmlns:f="http://java.sun.com/jsf/core" xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <af:document title="PageAdd.jsf" id="d1">
        <af:form id="f1">
            <af:inputText label="input1" id="it1" binding="#{Mbean.input1}" autoSubmit="true"/>
            <af:inputText label="input2" id="it2" binding="#{Mbean.input2}" autoSubmit="true"/>
            <af:inputText label="output" id="it3" binding="#{Mbean.output}" autoSubmit="true"/>
            <af:button text="Submit" id="b1" action="#{Mbean.b1_action}"/>
            <af:selectBooleanRadio text="selectBooleanRadio 1" label="Label 1" id="sbr1"/>
        </af:form>
    </af:document>
    <!--oracle-jdev-comment:preferred-managed-bean-name:Mbean-->
</f:view>

如您所见,绑定。 Mbean 是托管 Bean 和 '.' 之后的部分。是财产。 在 Button 中,我创建了这个名为 b1_action 的方法。 下面是java代码。 包视图;

import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import oracle.adf.view.rich.component.rich.input.RichInputText;

public class Addition {
    private RichInputText input1;
    private RichInputText input2;
    private RichInputText output;

    public Addition() {
    }

    public void setInput1(RichInputText input1) {
        this.input1 = input1;
    }

    public RichInputText getInput1() {
        return input1;
    }

    public void setInput2(RichInputText input2) {
        this.input2 = input2;
    }

    public RichInputText getInput2() {
        return input2;
    }

    public void setOutput(RichInputText output) {
        this.output = output;
    }

    public RichInputText getOutput() {
        return output;
    }

    public String b1_action() {
        String s;
        String x;
        String v;
        s = (String)input1.getValue();
        x = (String)input2.getValue();
        int r2=Integer.parseInt(x);
        int r1= Integer.parseInt(s);
        int d =r2+r1;
        v =Integer.toString(d);
        output.setValue(v);        
        System.out.println(output.getValue());

        return null;
    }


}

虽然我的应用程序能够获取值甚至相加但无法在第三个输入文本字段中显示它,但我无法做到 我是这个工具的新手,Java 语言请帮助我。

【问题讨论】:

    标签: java oracle-adf


    【解决方案1】:

    在你的“输出”组件上添加一个部分触发属性,如下所示:

    <af:inputText label="output" id="it3" binding="#{Mbean.output}" autoSubmit=“true" partialTriggers=“ b1"/>  
    

    【讨论】:

    • 我删除了单选按钮,这是一个错误
    • 部分触发器需要指向按钮的 id。我编辑了帖子,请再次检查。
    • 我尝试这样做,按下按钮后出现 Java.faces.FacesException 和 java.lang.Nullpointer 异常错误
    • NullPointerException 是您的代码中的错误。如果你自己都不懂如何修复 NPE,可能你不适合为生活写代码。
    【解决方案2】:

    首先输入 1 和输入 2 autoSubmit="True"。 然后将partialTriggers="it1 it2" 设置为输出。 为按钮设置partialSubmit="True"

    如果什么都没发生,请尝试写this.output.setValue(V);

    【讨论】:

    • 获取 Java.faces.Faces 异常和 Java.faces.el.evaluation.Exception,Java.lang.NullPointer.Exception
    • 抱歉尝试写 partialTriggers="it1 it2" 而不是 PratialTriger="it1 it2"
    【解决方案3】:

    output.setValue(v);之后

    添加这行代码 AdfFacesContext.getCurrentInstance().addPartialTarget(output);

    然后在页面的输出中将属性autoSubmit 设置为“true”

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 2010-09-21
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      • 2010-11-08
      相关资源
      最近更新 更多