【问题标题】:GWT CellTable Input ValidationGWT CellTable 输入验证
【发布时间】:2013-07-16 05:04:21
【问题描述】:

我想实现类似于 Cell Validation 展示示例的东西,可以在这里找到

http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCellValidation

查看代码并尝试实现后,模板似乎缺少类/变量定义。它出现在代码中的 2 个地方

public ValidatableInputCell(String errorMessage) {
  super("change");
  if (template == null) {
    template = GWT.create(Template.class);
  }
  this.errorMessage = SimpleHtmlSanitizer.sanitizeHtml(errorMessage);
}

SafeStyles safeColor = SafeStylesUtils.fromTrustedString("color: " + color + ";");
sb.append(template.input(pendingValue != null ? pendingValue : value, safeColor));

if (invalid) {
  sb.appendHtmlConstant(" <span style='color:red;'>");
  sb.append(errorMessage);
  sb.appendHtmlConstant("</span>");
}

在网上搜索后,我找到了一些模板变量定义的示例并想出了

interface Template extends SafeHtmlTemplates {
  @Template("<input type=\"text\" value=\"{0}\" tabindex=\"-1\" size=\"{1}\"></input>")
  SafeHtml input(String value, SafeHtml safeStyles);
}
private Template template;

添加上述代码后,没有编译器警告,但是在执行代码时出现此错误

在非 CSS 属性上下文中使用的安全样式。您的意思是改用 java.lang.String 还是 SafeHtml?

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: java validation gwt gwt-validation


    【解决方案1】:

    您正在查找的模板定义缺少@ShowcaseSource 注释,因此您在验证示例的源选项卡中看不到它。

    无论如何,here 是原始代码。模板是:

    interface Template extends SafeHtmlTemplates {
      @Template("<input type=\"text\" value=\"{0}\" style=\"{1}\" tabindex=\"-1\"/>")
      SafeHtml input(String value, SafeStyles color);
    }
    

    您看到的错误是因为您使用SafeStyle 元素(由{1} 引用)作为size 属性的值(而不是style)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      相关资源
      最近更新 更多