我也遇到了這個問題,我能夠根據Nathan Bubna answer解決它。
我只是想完成答案,提供link to Velocity documentation,它解釋瞭如何使用EventHandlers。
在我的情況下,每次插入引用時,我都需要Velocity對來自gson庫的所有JsonPrimitive對象調用「getAsString」而不是toString方法。
這是爲創建
public class JsonPrimitiveReferenceInsertionEventHandler implements ReferenceInsertionEventHandler{
/* (non-Javadoc)
* @see org.apache.velocity.app.event.ReferenceInsertionEventHandler#referenceInsert(java.lang.String, java.lang.Object)
*/
@Override
public Object referenceInsert(String reference, Object value) {
if (value != null && value instanceof JsonPrimitive){
return ((JsonPrimitive)value).getAsString();
}
return value;
}
}
簡單且事件添加到VelocityContext
vec = new EventCartridge();
vec.addEventHandler(new JsonPrimitiveReferenceInsertionEventHandler());
...
context.attachEventCartridge(vec);
來源
2015-06-22 21:38:52
Jon
,這也固定它作爲默認格式。無需將其傳遞到任何地方。確實是一個更好的主意。 – 2008-12-18 03:55:39