当前位置: 首页 > 面试题库 >

StringTemplate为给定模板定义的属性列表

华星文
2023-03-14
问题内容

我开始使用StringTemplate 4,并且尝试从存储在数据库中的简单字符串创建模板。我用这样的东西:

STGroup group = new STGroupString(null, someTemplateString, '$', '$');
ST st = group.getInstanceOf(someTemplateName);
st.add(someAttribute, someValue);

现在,如果我定义的全部或少于模板定义的属性,则一切正常someTemplateName。现在,如果我尝试添加一个不存在的属性,则会出现以下异常:

no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
  ...

这是有道理的。但是,似乎没有办法让我事先知道为template定义了哪些属性someTemplateName。我期待找到类似的东西:

bool isDef = st.isDefined(someAttribute);

但是没有这种方法。我对么?有没有办法解决?


问题答案:

您可以st.impl.formalArguments用来访问Map<String, FormalArgument>定义参数的位置。请注意,对于某些模板,此字段为null



 类似资料:
  • 英文原文:http://emberjs.com/guides/templates/binding-element-attributes/ 除了普通文本,你可能也希望在模板中包含可以将其属性绑定到控制器的HTML元素。 例如,想象一下你的控制器中包含这样一个属性,它包含指向一幅图像的URL地址: 1 2 3 <div id="logo"> <img {{bind-attr src=logoUr

  • 在 cmf中模板就是一个 html 文件,可分为前台模板文件和后台模板文件; 前台模板位于 themes 目录下,后台模板位于 admin/themes 目录下,前后台都是多主题机制的,可以分开设置不同的主题; 前台默认模板是 simplebootx,以后也可能会换,我们先以这个为例; 这是前台模板的结构;应用之间彼此分开,Portal目录下就对应的是application/Portal应用的模板

  • 试图向OpenLDAP添加一个新属性,但总是碰壁。我正在尝试向架构添加ipPhone属性,因为我不能在默认的telephoneNumber属性中包含*数字。 下面是我的LDIF文件,用于创建新属性并将其与objectClass类似。 我已经测试和谷歌了几个小时,但一直无法解决这个问题或找出我错过了什么!

  • 我试图使用WooCommerce的分层导航属性过滤侧边栏小部件过滤WooCommerce商店中的〜30,000种产品。这需要使用预定义的产品属性分类法,而不是在每个产品的基础上使用自定义属性。 商店里的每种产品都有一个导入的定制“品牌”属性。在导入产品之前,我在wp-admin中创建了一个名为()的属性分类法。然而,进口产品没有将其品牌属性(和术语名称)添加到品牌()分类中。取而代之的是,所有的产

  • 在 Dreamweaver 的模板中指定可编辑的标签属性。此外,了解如何将可编辑的标签设置为不可编辑。 您可以允许模板用户在根据模板创建的文档中修改指定的标签属性。 例如,您可以在模板文档中设置背景颜色,但仍允许模板用户为他们创建的页面设置不同的背景颜色。用户只能更新您指定为可编辑的属性。 您还可以在页面中设置多个可编辑属性,这样,模板用户就可以在基于模板的文档中修改这些属性。支持的数据类型如下:

  • 模型和一些关联具有一个或多个属性,每个属性有类型以及一些可选设置,你可以自行选择它们(或使用默认设置)。 类型 受支持的类型是: text:文本字符串; number:浮点数。你可以指定size为2 | 4 | 8; integer:整数。你可以指定size为2 | 4 | 8; boolean:true或false的值; date:日期对象。你可以指定time为true; enum:一个备选列表