首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DisplayTool的安装和使用

DisplayTool的安装和使用
EN

Stack Overflow用户
提问于 2012-11-19 17:14:49
回答 1查看 394关注 0票数 0

我正在使用Velocity 1.7来格式化字符串,但我在使用默认值时遇到了一些问题。当未设置值时,Velocity本身没有特殊的语法,而我们想要使用另一个默认值。通过Velocity的方法,它看起来像:

代码语言:javascript
运行
复制
#if(!${name})Default John#else${name}#end

这对我的案子来说很不方便。谷歌搜索后,我找到了DisplayTool,根据文档,它将如下所示:

代码语言:javascript
运行
复制
$display.alt($name,"Default John")

因此,我添加了maven依赖项,但不确定如何将DisplayTool添加到我的方法中,而且很难找到相关说明。也许有人可以提供建议或提供有用的链接?

我的方法是:

代码语言:javascript
运行
复制
public String testVelocity(String url) throws Exception{

    Velocity.init();
    VelocityContext context = getVelocityContext();//gets simple VelocityContext object 
    Writer out = new StringWriter();
    Velocity.evaluate(context, out, "testing", url);

    logger.info("got first results "+out);

    return out.toString();
}

当我发送

代码语言:javascript
运行
复制
String url = "http://www.test.com?withDefault=$display.alt(\"not null\",\"exampleDefaults\")&truncate=$display.truncate(\"This is a long string.\", 10)";
String result = testVelocity(url);

我得到"http://www.test.com?withDefault=$display.alt(\"not null\",\"exampleDefaults\")&truncate=$display.truncate(\"This是一个长字符串。\“,10)”没有更改,但应该得到

代码语言:javascript
运行
复制
"http://www.test.com?withDefault=not null&truncate=This is...

请告诉我我错过了什么。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-19 23:26:41

URL的构造发生在您的Java代码中,在您调用Velocity之前,所以Velocity不会计算$display.alt(\"not null\",\"exampleDefaults\")。该语法仅在Velocity模板(通常具有.vm扩展)中有效。

在Java代码中,不需要使用$表示法,只需直接调用DisplayTool方法即可。我以前没有使用过DisplayTool,但它可能是这样的:

代码语言:javascript
运行
复制
DisplayTool display = new DisplayTool();
String withDefault = display.alt("not null","exampleDefaults");
String truncate = display.truncate("This is a long string.", 10);
String url = "http://www.test.com?" 
    + withDefault=" + withDefault 
    + "&truncate=" + truncate;

不过,直接从Velocity模板调用DisplayTool方法可能会更好。这就是example usage中显示的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13450656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档