freeMarker简单小总结

本文介绍了Freemarker模板引擎的基础用法,包括如何处理null值、使用??判断空值、if语句的使用、自定义指令#macro的定义与调用等。此外还讲解了如何在模板中进行列表循环及条件判断。

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

<#import "inner.ftl" as inner />
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>

</head>
<body>
<#--good从后台获取-->
${good}<br>

<br>--------------------1.关于null------------------------------------<br>
<#--1.关于null-->
<#--freemarker中出现null值(空字符串没事),属性名写错,这两种情况会报错"is undefinded",在后面加!号可避免报错,!后写显示的内容-->
<#--如果使用对象导航,!只会判断最后一个是否为空,如果到导航中的某个对象为空依然会报错,所以在导航中最好使用括号把要判断的都概括起来-->
${good.gnames!}<br><#--正确-->    
${good.gnames!'没有'}<br>    <#--正确-->
${good.gnames!11}<br><#--正确 -->
${(good.gnames.ddd)!}<br><#--全括起来,gnames为null也不会报错'is undefined' -->

<br>---------------------2.关于??-----------------------------------<br>
<#--2.关于?? 判断对象不是否有值,返回值为 布尔类型,不可通过${}在页面输出,可做为判断条件-->
<#--页面只可以输出3中类型:string, date , number-->
<#-- ${(a.b)??} 这么写会报错:Expecting a string, date or number here, Expression (a.b)?? is instead.....-->
${(good.gname)???string}<br><#--这么写可以输出'true'或'false' !!注意string s不可以大写-->

<br>---------------------3.关于if语句-----------------------------------<br>
<#--3.关于if语句 ,if判断的条件,不需要用${}-->
<#if (a.b)??>
    ${(a.b)???string}为空;
<#elseif !(a.b)??>
    ${(a.b)???string}取反不为空;
<#else>
    判断错误;
</#if>

<br>---------------------4.关于自定义指令#macro-----------------------------------<br>
<#--4.关于自定义指令#macro 调用自定义指令@test-->
<#--第一个参数是指令名称 后面是参数列表,参数之间用,或空格隔开-->
<#--调用时传入参数名称要么全写 要么都不写,(参数列表中的默认值可以不写,写了默认值就被赋值为传入的值)-->
<#macro test a b c d=4>
    ${a}-${b}-${c}-${d}
</#macro>
<@test 1 2 3 5></@test><br>
<@test a=1 b=2 c=3></@test><br>

<#--<#nested>可以调用自定义指令中的内容-->
<#macro test1 num=3>
    <#list 1..num as n>
        <#nested n/>
    </#list>

</#macro>
<@test1;n><#--;n可以调用自定义指令中的参数-->
    ${n}<input type="button" value="按钮">
</@test1 >

<#--#assign定义的是全局变量,#local只能用在macro中,定义的是局部变量-->
<#assign e='哈哈0'>
<#macro test2 >
    <#local e='哈哈1'>
    <#assign e='哈哈2'>
    ${e}<br><#--这里显示local定义的局部变量的 值-->
</#macro>
<@test2/>
${e}<br><#--这里显示assign定义的局部变量的 值-->


<@inner.qqq/>




<br>---------------------------------------------------------<br>
<#--if list 语句后直接写对象名称,不需要写${},但是方法体内需要写${}-->

<#list goodList as good >
    -${good.gname}-<br>
</#list>

<#if good.gid gt 1>
    ${good.gid}大于1;
<#elseif good.gid gt -1>
    ${good.gid}大于-1;
<#else>
    ${good.gid}大于-2;
</#if>


<#macro select id,name>
    <select id="${id}" name="${name}">
        <#list goodList as good>
            <option value="${good.gid}">${good.gname}</option>
        </#list>
    </select>
</#macro>
<@select id="1" name="one">
</@>





</body>
    
</html>
内容概要:本文针对国内加密货币市场预测研究较少的现状,采用BP神经网络构建了CCi30指数预测模型。研究选取2018年3月1日至2019年3月26日共391天的数据作为样本,通过“试凑法”确定最优隐结点数目,建立三层BP神经网络模型对CCi30指数收盘价进行预测。论文详细介绍了数据预处理、模型构建、训练及评估过程,包括数据归一化、特征工程、模型架构设计(如输入层、隐藏层、输出层)、模型编译与训练、模型评估(如RMSE、MAE计算)以及结果可视化。研究表明,该模型在短期内能较准确地预测指数变化趋势。此外,文章还讨论了隐层节点数的优化方法及其对预测性能的影响,并提出了若干改进建议,如引入更多技术指标、优化模型架构、尝试其他时序模型等。 适合人群:对加密货币市场预测感兴趣的研究人员、投资者及具备一定编程基础的数据分析师。 使用场景及目标:①为加密货币市场投资者提供一种新的预测工具和方法;②帮助研究人员理解BP神经网络在时间序列预测中的应用;③为后续研究提供改进方向,如数据增强、模型优化、特征工程等。 其他说明:尽管该模型在短期内表现出良好的预测性能,但仍存在一定局限性,如样本量较小、未考虑外部因素影响等。因此,在实际应用中需谨慎对待模型预测结果,并结合其他分析工具共同决策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值