freemarker 数据做加减计算
controller的部分:
@Controller
@RequestMapping("/ContactsFrameIndex")
public class ContactsFrameControl {
@Resource
private ContactsFrameServiceImpl contactsFrameServiceImpl;
/**
* 主界面
*
*/
@RequestMapping("/index")
public String getAllContactsList(HttpServletRequest request ,HttpServletResponse response,Model model,String page1){
int pageSize = 3;
//记录总条数;
int total = contactsFrameServiceImpl.total();
System.out.println(total);
if((total % pageSize)==0){
int totalPage = total/pageSize;
model.addAttribute("totalPage",totalPage);
}else{
int totalPage = total/pageSize +1;
model.addAttribute("totalPage",totalPage);
}
if(page1 == null || page1.equals("")){
int page = 1;
model.addAttribute("page1",page);
ListPage<ContactsFrameEntity> contactsList = contactsFrameServiceImpl.getAllContacts(page,pageSize);
model.addAttribute("contactsList",contactsList);
model.addAttribute("forwardUrl", RequestUtil.encodeUrl(request));
return "views/contacts/index";
}else{
int page = Integer.valueOf(page1);
if(page-1<=0){
page =1;
}
model.addAttribute("page1",page);
ListPage<ContactsFrameEntity> contactsList = contactsFrameServiceImpl.getAllContacts(page,pageSize);
model.addAttribute("contactsList",contactsList);
model.addAttribute("forwardUrl", RequestUtil.encodeUrl(request));
return "views/contacts/index";
}
index.ftl
例如做加减运算的语句是这样的:<a style="padding:0px 200px 10px 200px;"href="/ContactsFrameIndex/index.do?page1=${page1-1}" >上页</a> <a>当前第 ${page1} 页</a> <a style="padding-left:200px;"href="/ContactsFrameIndex/index.do?page1=${page1+1}">下页</a> <a style="padding:0px 200px 10px 200px;">总共${totalPage}页</a>
${page1+1},这种呢,千万别把+1也到外面(page1+1),原因就是差值({})就是一个字符串;
freemarker有一个特例:
我们知道啊,数字和字符串一般情况下是不能相加的,这是地球人都知道的事情,但是freemarker可以帮我们转不信你试一下这个:
${3 + "5"}
猜结果是啥??结果是35,你不会想成了8吧???要注意哦!是数字会变字符串!
通常来说,FreeMarker 不会自动将字符串转换为数字,反之会自动进行。
有时我们只想获取计算结果的整数部分,这可以使用内建函数 int 来解决。(关于内 建函数后续章节会来解释)
仍然假设 x 的值是 5,那么将会输出:
总之:freemarker:运算要在自己内部;
在此可以看出,controller中传入是int,ftl接收也是int,该是什么还是什么(框架这里已经帮我们全部转好了),所有在本文绿色部分有些这个可以直接用Integer接收,不需要用String;(我也懒得改了)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现