0
我有一個類「Trade」,其類型爲BigDecimal的屬性「initialPrice」。這個屬性可以有 具有不同的小數,這取決於另一個類「Symbol」中包含的屬性「小數」,因此需要不同的格式,例如「#,### 0。##」,「#,### 0。#####」等 輸出字段沒有問題 - 我用TagLib來解決這個問題。在Grails中輸入字段的動態格式(小數)
問題出在輸入字段。默認的是我有三位小數的舍入,所以如果你使用3個以上的十進制數,你會在更新時丟失這些數字。
我不知道如何甚至可以在這裏使用我的TagLib。我一直在嘗試很多不同的方式,但都沒有成功。
這是我的標籤庫:
class PriceTagLib {
def fmtPrice = {attrs, body->
def BigDecimal number = attrs.number
def int noOfDecimals = attrs.decimals
switch (noOfDecimals) {
case 1: out <<new DecimalFormat('###,##0.#').format(number)
break
case 2: out << new DecimalFormat('###,##0.##').format(number)
break
case 3: out << new DecimalFormat('###,##0.###').format(number)
break
case 4: out << new DecimalFormat('###,##0.####').format(number)
break
case 5: out << new DecimalFormat('###,##0.#####').format(number)
}
}
}
這裏是我的班......
class Symbol {
String name //The name of the symbol e.g. EURUSD, USDCAD etc.
int decimals
static hasMany = [trades:Trade]
}
class Trade {
static belongsTo = [symbol:Symbol, strategy:Strategy]
static hasMany = [positions:Position]
BigDecimal initialPrice
Symbol symbol
Strategy strategy
Position positions
static constraints = {
type(inList:["Sell", "Buy"])
initialPrice(scale:5)
positions(nullable:true)
}
}
這從我想要的工作原理show.gsp:
<span class="property-value" aria-labelledby="initialPrice-label"><g:fmtPrice decimals="${tradeInstance.symbol.decimals}" number="${tradeInstance.initialPrice}"></g:fmtPrice></span>
這裏是我需要修改 - 即我需要在「值」參數的引號之間寫什麼。 也許我需要更換整條線? 該行在_form.gsp模板中。
<g:field name="initialPrice" value="${tradeInstance.initialPrice}" required=""/>
希望任何人都可以傳播一些光在這個幫助。
感謝的提前...
感謝的是工作。我是新來的,至少對網絡開發非常沒有經驗,所以我沒有意識到我應該用g來替換g:。當從值字符串中調用時。你知道,我已經嘗試過你的解決方案,並且失敗的原因是「g:」 – larand 2013-03-27 09:27:34