【问题标题】:Wicket - create a dynamic labelWicket - 创建动态标签
【发布时间】:2021-04-06 12:19:39
【问题描述】:

我想在检票口项目中创建一个动态标签。

我有变量 x,它是布尔类型。如果值为真,则标签应输出“文本 1”。否则它应该显示“文本 2”。

我不想从外部设置值,而是标签应该知道它应该显示什么样的值。

为此我必须重写哪种方法?

【问题讨论】:

    标签: wicket


    【解决方案1】:

    您不必重写任何方法,只需放入正确的模型中即可。

    new Label("id", () -> x ? "Text 1" : "Text 2");
    

    【讨论】:

    • 非常感谢您的回答。看起来很漂亮。不幸的是,我有一个更长的查询。整个“块”的正确语法是什么? {} 不起作用。
    • 答案中使用的 lambda 只是一种简短的写法:new IModel<String>() {@Override public String get() {return ...}}
    • 这已经很好用了。但是,我现在想将 AjaxButton 添加到检票口页面。不幸的是,AjaxButton 需要一个表单。但是,我想自己添加它。各种新闻组推荐使用 AjaxLink,但在标记中使用 input: 按钮。到目前为止效果很好。但是,我现在想动态调整按钮的文本。不幸的是,下面的代码在这里不起作用: new AjaxLInk ("id", () -> x? "Text 1": "Text 2");正确的实现是什么?有没有比覆盖 onComponentTag 上的 value 属性更好的方法?
    • 请创建新问题。
    猜你喜欢
    • 2013-12-07
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2022-12-22
    • 2012-05-21
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多