关于<#assign>

本文介绍Freemarker模板引擎的基本用法,包括变量赋值、字符串拼接及如何在包含文件中使用这些变量。通过示例展示了两种assign方法,并在实际场景中应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 两种assign方式

<#assign a=1>

 

<#assign b="hello, ${dataModel.user}">

 

<#asssign c>

    <h1>Greeting message. ${b}</h1>

</#asssign>

  • 可以在<#include "another.ftl">外定义

<#assign greeting= "hello world">

 

-----------another.ftl---------------

${greeting}, somebody

----------------------------------------

 

 

<#--中信银行 开始解析--> <#--定位数据起止行--> <#assign ctnrBeginIndex=ExcelUtil.findRow(sheet, "交易日期") + 1 > <#assign ctnrEndIndex=findEndRow()/> <#--找到Excel最后一行--> <#function findEndRow> <#list ctnrBeginIndex..6400 as i> <#assign row=sheet.getRow(i)! /> <#if row?has_content> <#assign cell=row.getCell(0)! /> <#if cell?has_content> <#if cell.getCellType().name() == "BLANK"> <#return i - 1> </#if> <#else> <#return i - 1> </#if> <#else> <#return i - 1> </#if> </#list> </#function> <#assign corpId = requestPara.corpId!> <data> <object name="AccBankMemo"> <#list ctnrBeginIndex..ctnrEndIndex as i> <#assign row=sheet.getRow(i)> <#if row.getCell(0).getCellType().name() != "BLANK"> <#-- 1. 首先定义所有需要的变量 --> <#assign currencyValue = ExcelUtil.getStringValue(row, 13)!''> <#assign corpBankAccountNoValue = ExcelUtil.getStringValue(row, 14)!''> <#-- 2. 处理corpId变量 --> <#assign corpIdValue = corpId> <#-- 默认使用传入的corpId --> <#assign inCorpId = row.getCell(22)!> <#if inCorpId?has_content && inCorpId.getCellType().name() != "BLANK"> <#assign corpIdValue = ExcelUtil.getStringValue(row,22)!corpId> </#if> <#-- 3. 处理paymentCorpId变量 --> <#assign paymentCorpIdValue = corpId> <#-- 默认使用传入的corpId --> <#assign paymentCorpId = row.getCell(23)!> <#if paymentCorpId?has_content && paymentCorpId.getCellType().name() != "BLANK"> <#assign paymentCorpIdValue = ExcelUtil.getStringValue(row,23)!corpId> </#if> <row> <field name="memoNo" is_null="false"><![CDATA[${ExcelUtil.getStringValue(row,18)!}]]></field> <#assign Date = ExcelUtil.getStringValue(row, 0)> <#assign Time = ExcelUtil.getStringValue(row, 1)> <#assign exchangeDate = Date + " " + Time> <field name="exchangeDate" is_null="false">${exchangeDate?html}</field> <field name="financialMonth" is_null="false">${Date?substring(0, 7)?replace('-', '')}</field> <#-- 4. 使用定义的变量 --> <field name="currency" trans_sql="select dict_value from sys_dict where dict_type_id = 12 and dict_value_aux = #value#" is_null="false"><![CDATA[${currencyValue}]]></field> <field name="reviceAmount" data_type="double"><![CDATA[${ExcelUtil.getStringValue(row, 6)}]]></field> <field name="payAmount" data_type="double"><![CDATA[${ExcelUtil.getStringValue(row, 5)}]]></field> <#assign amountValue5 = ExcelUtil.getStringValue(row, 5)!""> <#assign amountValue6 = ExcelUtil.getStringValue(row, 6)!""> <#if amountValue5?length gt 0> <field name="amount" ><![CDATA[${amountValue5}]]></field> <field name="arAp" >1</field> <#else> <field name="amount" ><![CDATA[${amountValue6}]]></field> <field name="arAp" >0</field> </#if> <field name="custId" trans_sql="select cust_id from customer where cust_name = #value#" is_null="false"><![CDATA[${ExcelUtil.getStringValue(row,3)}]]></field> <#-- 5. 使用定义的corpBankAccountNoValue --> <field name="corpBankAccountNo" is_null="false"><![CDATA[${corpBankAccountNoValue}]]></field> <field name="custBankAccountNo"><![CDATA[${ExcelUtil.getStringValue(row,2)}]]></field> <field name="remark"><![CDATA[${ExcelUtil.getStringValue(row,8)}]]></field> <field name="paymentItemsType" trans_sql="select dict_value from sys_dict where dict_type_id = 610 and dict_name = #value#" is_null="false" >业务款项</field> <#-- 6. 使用定义的corpIdValue --> <#if inCorpId?has_content && inCorpId.getCellType().name() != "BLANK"> <field name="testCorpId"><![CDATA[${ExcelUtil.getStringValue(row,22)}]]></field> <field name="corpId" trans_sql="select corp_id from corp_invoice_head where invoice_head = #value#" ><![CDATA[${ExcelUtil.getStringValue(row,22)}]]></field> <#else> <field name="corpId"><![CDATA[${corpIdValue}]]></field> </#if> <#-- 7. 使用定义的paymentCorpIdValue --> <#if paymentCorpId?has_content && paymentCorpId.getCellType().name() != "BLANK"> <field name="paymentCorpId" trans_sql="select corp_id from corp_invoice_head where invoice_head = #value#"><![CDATA[${ExcelUtil.getStringValue(row,23)}]]></field> <#else> <field name="paymentCorpId"><![CDATA[${paymentCorpIdValue}]]></field> </#if> <#-- 8. 在SQL中使用定义的变量 --> <field name="bankAccountId" trans_sql="select max(bank_account_id) from corp_bank_account where corp_id = '${corpIdValue}' and currency = '${currencyValue}' and bank_account_no = '${corpBankAccountNoValue}' "></field> </row> </#if> </#list> </object> </data> corpid、currency、bankaccountno都能取到值但是bankAccountId取值一直为空
05-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值