zoukankan      html  css  js  c++  java
  • 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,那么将会输出:

    ${100 x*x} ${x/2} ${12%10}
    75 2.5 2
    ${(x/2)?int} ${1.1?int} ${1.999?int} ${-1.1?int} ${-1.999?int}
    2 1 1 -1 -1
     
    还有一个要注意的地方:进行比较运算,freemarker做的是精确比较,注意两个比较对象的类型必须一致,特别注意空格

    总之:freemarker:运算要在自己内部;

    在此可以看出,controller中传入是int,ftl接收也是int,该是什么还是什么(框架这里已经帮我们全部转好了),所有在本文绿色部分有些这个可以直接用Integer接收,不需要用String;(我也懒得改了)

  • 相关阅读:
    产品思维和用户思维
    IT界是丽春院?
    凡事要讲究方式方法
    一个比较差的接口定义
    软件开发中的官话和土话
    Frida之app逆向hook,动态插装
    Airtext远程控制多台手机
    linux下使用uwsgi部署flask写的接口遇到的坑
    软件质量管理(六)- 无有规矩不成方圆
    软件质量管理(五)- 质量优异的产品离不开一支优秀的团队
  • 原文地址:https://www.cnblogs.com/lixiuming521125/p/5888549.html
Copyright © 2011-2022 走看看