gpt4 book ai didi

java - 检门形式ajax

转载 作者:行者123 更新时间:2023-11-30 04:57:29 25 4
gpt4 key购买 nike

此代码来自《Wicket in Action》一书。

    final WebMarkupContainer parent = new WebMarkupContainer("comments");
parent.setOutputMarkupId(true);
add(parent);
List<String> comments = ...

parent.add(new ListView("list", comments) {

@Override
protected void populateItem(ListItem item) {
item.add(new Label("comment", item.getModel()));
}
});

Form form = new Form("form");
final TextArea editor = new TextArea("editor", new Model(""));
editor.setOutputMarkupId(true);
form.add(editor);
form.add(new AjaxSubmitLink("save") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) {
comments.add(editor.getModelObjectAsString());
editor.setModel(new Model(""));
target.addComponent(parent);
target.focusComponent(editor);
}
});
parent.add(form);

它无法编译。在重写方法内,行

comments.add(editor.getModelObjectAsString());

在 Eclipse 中生成以下错误

“此行有多个标记。无法引用在不同方法中定义的内部类内的非最终变量注释。对于 TextArea 类型,方法 getModelObjectAsString() 未定义。”

我喜欢由框架作者编写的编程书籍,其中包含不起作用的示例 =) 不过,认真地说,这里出了什么问题以及如何修复它?

编辑:

为了在 Wicket 1.4 中编译,代码需要更改为

    /* Java code */
final WebMarkupContainer parent = new WebMarkupContainer("comments");
parent.setOutputMarkupId(true);
add(parent);
final List<String> comments = new ArrayList<String>();

parent.add(new ListView("list", comments) {

@Override
protected void populateItem(ListItem item) {
item.add(new Label("comment", item.getModel()));
}
});

Form form = new Form("form");
//final TextArea editor = new TextArea("editor", new Model(""));
final TextArea editor = new TextArea("editor", new Model(""));
editor.setOutputMarkupId(true);
form.add(editor);
form.add(new AjaxSubmitLink("save") {
@Override
protected void onSubmit(AjaxRequestTarget target, Form form) {
comments.add((String) editor.getModelObject());
editor.setModel(new Model(""));
target.addComponent(parent);
target.focusComponent(editor);
}
});
parent.add(form);

但是如果列表是最终的,那么是否就不可能动态更改其内容?

最佳答案

将我的评论转化为真正的答案:

问题不是 TextArea 上的最终版本,而是《Wicket in Action》一书是为 Wicket 1.3 编写的,而 APi 已针对版本 1.4/1.5 进行了更改。

migration guide对于 Wicket i.4 来说,成员已重命名为 getDefaulModelXXX()。

享受 Wicket 门的乐趣。

关于java - 检门形式ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8079314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com