我想要一条短信如果罗密欧包含文本。
如果罗密欧为Null或Empty
我的...胡子看起来像
{{alpha}} {{#romeo}}{{romeo}}\n\n{{/romeo}} {{julia}}
这个工作是为了罗密欧是空的情况。但当罗密欧是一个空字符串时就不是了。有没有可能在不改变后端输入的情况下解决这个问题
if(romeo.isEmpty()){ romeo=null;
c90pui9n1#
要做到这一点,而不配置“falsey”(在所有mustache实现中不可用)的最佳方法是使用mustache的点链中断特性。我将使用JStachio来演示,但这应该在JMustache中也可以工作,但可能不适用于mustache.java,因为它没有一致的空格处理:
@JStache(template = """ {{alpha}} {{^romeo.empty}} {{#romeo}} {{romeo}} {{/romeo}} {{/romeo.empty}} {{julia}} """) public record SkipEmptyStrings(String alpha, String romeo, String julia) { }
请注意,由于反向路径规则,我们仍然必须检查罗密欧是否存在。也就是说,即使罗密欧为null,反向路径也会成功。
@Test public void testRomeo() { SkipEmptyStrings e = new SkipEmptyStrings("Alpha", "Romeo", "Julia"); String actual = JStachio.render(e); String expected = """ Alpha Romeo Julia """; assertEquals(expected, actual); } @Test public void testRomeoNull() { SkipEmptyStrings e = new SkipEmptyStrings("Alpha", null, "Julia"); String actual = JStachio.render(e); String expected = """ Alpha Julia """; assertEquals(expected, actual); } @Test public void testRomeoEmpty() { SkipEmptyStrings e = new SkipEmptyStrings("Alpha", "", "Julia"); String actual = JStachio.render(e); String expected = """ Alpha Julia """; assertEquals(expected, actual); }
1条答案
按热度按时间c90pui9n1#
要做到这一点,而不配置“falsey”(在所有mustache实现中不可用)的最佳方法是使用mustache的点链中断特性。
我将使用JStachio来演示,但这应该在JMustache中也可以工作,但可能不适用于mustache.java,因为它没有一致的空格处理:
请注意,由于反向路径规则,我们仍然必须检查罗密欧是否存在。也就是说,即使罗密欧为null,反向路径也会成功。