2015-06-16 3 views
2

Я пытаюсь вызвать метод Java от простого метода, как этогоКак вызвать метод Java с помощью простого метода в OFBiz

<simple-method method-name="getProduct"> 
    <entity-one entity-name="Product" value-field="product"> 
     <field-map field-name="productId" from-field="parameters.productId" /> 
    </entity-one> 
    <log message="productView=${product.uom}" level="info"/> 
    <entity-one value-field="uomInfo" entity-name="Uom"> 
     <field-map field-name="uomId" from-field="product.uom" /> 
    </entity-one> 
    <if-compare operator="equals" value="1001" field="product.priceTypeId"> 
    <entity-one value-field="category" entity-name="ProductCategory"> 
     <field-map field-name="productCategoryId" from-field="product.priceTypeCategoryId" /> 
    </entity-one> 
    <else> 
    <entity-one value-field="category" entity-name="ProductCategory"> 
     <field-map field-name="productCategoryId" from-field="product.productCategoryId" /> 
    </entity-one> 
    </else> 
    </if-compare> 
    <set field="product.productCategoryId" from-field="category.categoryName" default-value="all"/> 
    <call-class-method method-name="encodeString" ret-field="encodedDescription" class-name="org.ofbiz.base.util.StringUtil"> 
    <field field="product.description" type="String" /> 
    </call-class-method> 
    <field-to-result field="product" /> 
    <field-to-result field="uomInfo" /> 
    </simple-method> 
</simple-methods> 

Когда я пытаюсь получить значение описания поля, он возвращается то же значение описания без обновления с кодированным значением.

Есть ли что-нибудь еще, что мне нужно сделать?

+0

ли что любой полезной? http://stackoverflow.com/questions/15740641/how-to-properly-call-a-java-function-from-a-ftl-file-in-ofbiz – Czarny

+0

Это другое. из ftl мы можем вызывать с помощью контроллера, но он не работает простым методом. здесь нам нужно вызвать метод класса java из метода bybiz –

ответ

2

Вы не устанавливаете значение описания с помощью строки возврата.

<call-class-method method-name="encodeString" ret-field="encodedDescription" class-name="org.ofbiz.base.util.StringUtil"> 
    <field field="product.description" type="String" /> 
    </call-class-method> 

Ваш метод encodeString возвращает закодированную строку и установите его в

возвращение поля RET-поле = "encodedDescription".

Таким образом, вы должны установить ваше описание как этот

<call-class-method method-name="encodeString" ret-field="encodedDescription" class-name="org.ofbiz.base.util.StringUtil"> 
    <field field="product.description" type="String" /> 
    </call-class-method> 
    <set field="product.description" value="${encodedDescription}"/> 
+0

Спасибо. Он работает для меня. –

Смежные вопросы