【问题标题】:Access to UIBinder field values by field names passed as String?通过作为字符串传递的字段名称访问 UIBinder 字段值?
【发布时间】:2013-03-19 15:44:17
【问题描述】:

我想通过作为字符串值传递的名称访问由 UIBinder 呈现的字段值

有什么方法可以访问存储在 ui 字段中的数据,例如

PersonViewImpl.ui.xml

<g:TextBox ui:field="lastName"/>

PersonViewImpl.java

@UIField
String lastName
public Object fieldByName(String fieldName) {
    ....
    return value;
}

PersonActivity.java

PersonView view;
String ln = (String)view.fieldByName("lastName");

有什么解决办法吗?谢谢你的建议

【问题讨论】:

    标签: java gwt uibinder


    【解决方案1】:

    我不建议使用这种模式来动态访问小部件。这不是真正干净的代码,很容易被破坏。
    如果您有很多要绑定的字段,我建议您使用Editors

    如果你仍然想访问这个小部件,你有两个选择:

    1. 创建一个包含所有TextBoxes(或您想要访问的任何字段)的HashMap,并使用字段名作为键。您可以创建一个辅助函数来根据键检索值。但是,您必须自己填写 HashMap
    2. 如果您的所有小部件都在容器小部件中(即FlowPanel),您可以遍历容器小部件的小部件列表并检索它们。您可能会将 id 设置为字段名以识别它们。

    【讨论】:

    • 感谢 Ümit 的快速响应。编辑方法很好。但我不想将 bean 用于 DTO。我的想法是使用由 HQL select new Map(...) 表达式生成的 HashMap 样式的 DTO。比我需要将此数据绑定到小部件并在编辑期间使用更新字段组合 DTO 以发送回服务器
    猜你喜欢
    • 2022-07-22
    • 2016-06-15
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    相关资源
    最近更新 更多