2017-10-30 10 views
0

私の速度のバージョンは私のVMファイルで作業していない変数の乗算がMulitiplication操作は、Velocityテンプレートで作業していない

foreach($entry in ${ctx.order.entries}) 

#if(${entry.quantity}) 
    #set ($pQty = ${entry.quantity}) 
#end 
#if(${entry.product.weight}) 
    #set ($prodWeight = ${entry.product.weight}) 
#end 
#if(${pQty} && ${prodWeight}) 
    #set ($totalWeight = $pQty * $prodWeight)  
#else 
    #set ($totalWeight = 0)  
#end 
    <tr class="border_bottom table_data"> 
    <td>${pQty }</td> 
    <td>${prodWeight}</td> 
    <td>${totalWeight}</td> 

出力が11 1.0 $ {全重量}

全重量の値が表示さ取得されていないが1.7であります。

私は私が$全重量= $ pQty * $ prodWeight

を使用するときは、この上で私を助ける場合、それはかなりのだろう計算するその計算が正しくなくでき、その後* 1.0 11のように打ち値を置く場合。

おかげで、あなたの参照の

+1

ユーザー(mathTool)[https://velocity.apache.org/tools/1.3/generic/MathTool.html] – soorapadman

答えて

1

一方または両方が、文字列の代わりに数字でなければなりません。確認するには、$pQty.class.name$prodWeight.class.nameと表示します。

Velocity 1.7では、文字列から数値への暗黙的な変換は行われません。右のそれを得るために

、次のいずれかを実行します、このような暗黙の型変換

  • は$ pQtyと$ prodWeightは、呼び出し元のコード
  • 内の数値であることを確認して扱う速度2.0、へ

    • アップグレードVelocityコンテキストにMathTool(または同じことをやって、あなた自身の任意のプレーンJavaオブジェクト)を追加します。

      #set($pQty = $math.toNumber($pQty)) 
      #set($prodWeight = $math.toNumber($prodWeight)) 
      
  • +0

    my $ pQty.class.nameはjava.lang.Longおよび$ prodWeight.class.nameです。はい......(($ {entry.product.weight}) \t \tの#set($ダブル= 0.0) \t \tの#setこの 'の#ifを使用して、java.lang.Stringで.. – sush

    +0

    解決され$ prodWeight = $ Double.parseDouble($ {entry.product.weight}))の助けを \t #END \tの#set($全重量= $ {entry.quantity} * $ prodWeight)\t ' – sush

    +0

    おかげ! – sush

    関連する問題