Java tutorial
/* * Copyright 2005-2013 shopxx.net. All rights reserved. * Support: http://www.shopxx.net * License: http://www.shopxx.net/license */ package net.groupbuy.template.method; import java.math.BigDecimal; import java.util.List; import net.groupbuy.Setting; import net.groupbuy.util.SettingUtils; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; import freemarker.template.SimpleScalar; import freemarker.template.TemplateMethodModel; import freemarker.template.TemplateModelException; /** * ? - ?? * * @author SHOP++ Team * @version 3.0 */ @Component("currencyMethod") public class CurrencyMethod implements TemplateMethodModel { @SuppressWarnings("rawtypes") public Object exec(List arguments) throws TemplateModelException { if (arguments != null && !arguments.isEmpty() && arguments.get(0) != null && StringUtils.isNotEmpty(arguments.get(0).toString())) { boolean showSign = false; boolean showUnit = false; if (arguments.size() == 2) { if (arguments.get(1) != null) { showSign = Boolean.valueOf(arguments.get(1).toString()); } } else if (arguments.size() > 2) { if (arguments.get(1) != null) { showSign = Boolean.valueOf(arguments.get(1).toString()); } if (arguments.get(2) != null) { showUnit = Boolean.valueOf(arguments.get(2).toString()); } } Setting setting = SettingUtils.get(); BigDecimal amount = new BigDecimal(arguments.get(0).toString()); String price = setting.setScale(amount).toString(); if (showSign) { price = setting.getCurrencySign() + price; } if (showUnit) { price += setting.getCurrencyUnit(); } return new SimpleScalar(price); } return null; } }