如何在wicket中连接2个文本框?

时间:2012-10-20 18:57:12

标签: wicket

所以我得到了这两个文本框,我试图将它们连接在一起并在标签中显示结果。我找到了一个例子并且在示例中做到了,但是出了点问题。所以也许有人可以看到我做错了什么,因为我刚开始并且不明白如何正确地做到这一点。

public class HomePage extends WebPage {

    private String fNumber="Big";
    private String sNumber=" text!";
    private String sResult=fNumber+sNumber;

    public HomePage() {

        PropertyModel<String> firstNumber = new PropertyModel<String>(this, "fNumber");
        PropertyModel<String> secondNumber = new PropertyModel<String>(this, "sNumber");

        add(new Label("message", "HelloWorld!"));

        add(new Label("result", sResult));

        Form<?> form = new Form("form");
        form.add(new TextField<String>("firstNumber", firstNumber));
        form.add(new TextField<String>("secondNumber", secondNumber));
        add(form);
    }
}

所以我做了这个

`add(new Label(“message”,“HelloWorld!”));

    add(new Label("result", new Model(numb.getsResult())));


    Form<?> form = new Form("form") ;

    form.add(new TextField<String>("firstNumber", new Model(numb.setfNumber())));
    form.add(new TextField<String>("secondNumber",new Model(numb.setsNumber())));
    add(form);`

我有一个有3个字符串字段的类,getter和setter以及sii,我已经理解了最后的评论解释了一些事情,也许有人知道如何解决这个问题。

2 个答案:

答案 0 :(得分:2)

您需要“重新计算”结果。 Wicket方式是为您的Label定义一个用于连接的模型。

add(new Label("result", new IModel<String>(){

@Override
public void detach() {
    // do nothing
}

@Override
public String getObject() {
    return fNumber + sNumber;
}

@Override
public void setObject(String object) {
    // do nothing
}
}));

此外,必须使用示例中的PropertyModels。

答案 1 :(得分:1)

要连接两个字符串,我通常使用StringBuilder:

        PropertyModel firstNumber = new PropertyModel(this,"fNumber");
        PropertyModel secondNumber = new PropertyModel(this,"sNumber");
        PropertyModel resultNumber = new PropertyModel(this,"sResult");
        StringBuilder sResult = new StringBuilder((String) firstNumber.getObject());
        sResult.append((String) secondNumber.getObject());
        resultNumber.setObject(sResult.toString());

另外,请阅读biziclop的链接,因为它可以帮助您。