精华内容
下载资源
问答
  • thymeleaf定义变量

    千次阅读 2019-07-25 11:09:49
    razor的模板,就是真的母板,所有公用东西都在母板上,应用页面套用这个母板,只须再定义自己的个性化内容即可。而thymeleaf的所谓模板,不是母板,而是片段集合,公共东西,做成一个个片段,由应用页按...

    thymeleaf烂透了。

    以前说过,thymeleaf虽然是spring boot推荐的模板,但我认为,它跟asp.net的模板引擎razor比起来,处于幼儿园的水平。其对母板页的理解是有偏差的。razor的模板,就是真的母板,所有公用东西都在母板上,应用页面套用这个母板,只须再定义自己的个性化内容即可。而thymeleaf的所谓模板,不是母板,而是片段集合,公共东西,做成一个个片段,由应用页按需使用,缝百衲衣似的。
    见拙作《百香菜》

    这么说吧,razor就像是一个完整的框架,我们使用这个框架,好多东西都自动就具备了;而thymeleaf则是一个公用类库,开发人员按需调用。完全不同的思想。

    使用起来,也是很不方便。各种奇形怪状的标记和语法。我们要记住的东西很多。开发生涯已经如此艰难,你可苦再补上一刀。你看人家razor,就是一个@{ },全部搞定了。

    下面是一些“研究成果”:

    1、在thymeleaf中定义变量

    所有人都知道,变量可以从后端的控制器传过来。问题是,为什么这个变量一定要在控制器里定义再传过来?太夸张了吧。这个只跟视图有关的东西,应该就在视图(页面)上自己定义啊。

    thymeleaf怎么定义呢?这样子定义:

    th:with="变量=值"
    

    看个真实的应用例子

        <div class="dock hidden">
            <div style="margin-left:45%;">
                <th:block th:with="docks=${
                {{1,'发展现状','/hyjj/?p=fzxz'},
                {2,'重点项目','/hyjj/?p=zdxm'},
                {3,'蟠桃大会','/hyjj/hbh/'}}
                }">
                    <th:block th:each="d:${docks}">
                        <div class="dock-icon" th:title="${d[1]}" th:url="${d[2]}">
                            <div><img th:src="@{/images/dock/} + ${d[0]} + ${d[1]} + '.png'" th:alt="${d[1]}"/></div>
                            <div><span th:text="${d[1]}" th:class="${curicon eq d[0]} ? active"></span></div>
                        </div>
                    </th:block>
                </th:block>
            </div>
        </div>
    

    看见了吧,本例子中,变量docks的声明,要用th:with,然后还要放在一个<th:block>的标记里。声明过程中,要用双引号引起来。本例子中,docks还算是简单的,如果是一个更复杂的类型怎么办?

    th:with,记住了吗?

    2、使用所谓内置对象
    thymeleaf有一些所谓内置对象,dates是其中一种。好像只是用来控制格式。其他还有什么list之类,不知道干什么的。

    输出一个日期:

    <div   th:text="${#dates.format(new java.util.Date().getTime(),'yyyy-MM-dd') }"></div>
    

    #dates,记住了吗?要用“#”号喔。

    3、使用静态方法或变量
    比如说,你想在thymeleaf里用一个枚举:

    <th:block th:include="fzjz/_submenu::submenu(curicon=${T(com.monkey.zjfwpt.modules.fzjz.entity.ENormal).DOLPHIN.value()})" />
    

    一定要用T()将它包含起来。否则会报错。ENormal是枚举,在后台定义如下:

    package com.monkey.zjfwpt.modules.fzjz.entity;
    
    public enum ENormal {
        TF (1),GLOBAL(2),JX(3),CLOUD(4),DOLPHIN(5),BOAT(6);
    
        private final int value;
        private ENormal(int value) {
            this.value = value;
        }
    
        public ENormal valueOf(int value) {
            switch (value) {
                case 1:
                    return ENormal.TF;
                case 2:
                    return ENormal.GLOBAL;
                case 3:
                    return ENormal.JX;
                case 4:
                    return ENormal.CLOUD;
                case 5:
                    return ENormal.DOLPHIN;
                case 6:
                    return ENormal.BOAT;
                default:
                    return null;
            }
        }
        public int value() {
            return this.value;
        }
    
    }
    

    (java的枚举定义也是没谁了)

    T,记住了吗?

    以上都是一些无用的术。所谓的工作经验,绝大部分都是类似这种垃圾。因为现在是用thymeleaf,以后可能用别的leaf,又有不同的语法和规则。完全没有意义。但我们偏偏却要去了解这些。

    thymeleaf,百里香叶子之意。thymeleaf烂透了。

    展开全文
  • 变量定义与const变量定义

    千次阅读 2016-03-26 23:06:06
    变量定义与const变量定义 一般变量1)一个整型数 int a2)一个指向整型数的指针 int *a3)一个指向指针的指针,它指向的指针是一个整型数int **a4)一个有10个整型数的数组 int a[10]5)一个有10个指针的数组,该...

    变量定义与const变量定义

    一般变量

    1)一个整型数 int a
    
    2)一个指向整型数的指针 int *a
    
    3)一个指向指针的指针,它指向的指针是一个整型数int **a
    
    4)一个有10个整型数的数组 int a[10]
    
    5)一个有10个指针的数组,该指针指向一个整型数 int *a[10]
    
    6)一个指向有10个整型数数组的指针 int (*a)[10]
    
    7)一个指向函数的指针,该函数有一个整型参数并返回一个整型数 int (*a) (int)
    
    8)一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数 int (*a[10]) (int)

    const变量

    • 便于进行类型检查(针对宏常量而来的)
    • 可以保护被修饰的东西(针对函数参数而来的)
    • 可以很方便地进行参数的调整和修改(针对修改只需改值,类似宏变量)
    • 为函数重载提供一个参考(函数返回值静态)
    • 可以节省空间,避免不要的内存分配(针对#define而来)
    • 提高效率(保存在符号表中而非分配存储空间)
    1const int a a是一个**常整型数**
    
    2int const a a是一个**常整型数**
    
    3const int \*a a是一个指向**常整型数**的指针
    
    4int const \*a a是一个指向**常整型数**的指针
    
    5int * const a a是一个指向整型数的**常量指针**
    
    6int const * a const a是一个指向**常整型数**的**常指针**
    
    7const int * const a a是一个指向**常整型数**的**常指针**
    
    8)指针本身是常量不可变 (char*) const p 或 const (char *) p
    
    9)指针所指向的内容是常量不可变 const (char) *p 或 (char) const *p
    
    10)指针和内容均不可变 const char * const p

    const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;

    const位于*的右侧,则const就是修饰指针本身,即指针本身是常量。

    函数中使用const

    1)修饰参数

    • 传递归来的参数在函数内不可改变 void fun(const int var)
    • 参数指针所指内容为常量不可改变 void fun(const char* var)
    • 参数指针本身为常量不可改变 void fun(char * const var)
    • 参数为引用,增加效率同时防止修改
    • 引入参数在函数内不可以改变 void fun(const Class& var)
    • 引入参数在函数内为常量不可改变void fun(const type& var)

    2)const修饰函数返回值

    • const修饰函数返回值,意义不太。
    • 无意义函数(原因返回本身赋值,但值又不能边,故无意义) const int fun()
    • 函数看做指针,指针内容不可变 const int *fun()
    • 函数看做指针,指针本身不可变 int * const fun()

    3)与类相关的const

    • 修饰成员变量,则成员变量不能被修改
    • 修饰成员函数,表示该成员函数不能修改成员变量,也不能调用任何非const成员函数
    • 修饰类对象,表示该对象为常量对象,其中的任何成员不能被改变。对于兑现指针的对象引用也一样。此外,const修饰的对象的任何非const成员函数都不能被调用。

    将const类型变量转换为非const类型的方法是使用const_cast进行转换。转换具体方法如下:const_cast

    展开全文
  • linklist定义变量与node* 定义变量

    千次阅读 2018-12-12 10:32:44
    引发了一个疑问是 这里的linklist 和 用node* 定义变量有什么不同? 其实在查阅了一些资料后,发现其实这二者并没有什么差别,都是node型的指针变量, 但前者常用来定义链表,而后者常用来做工作指针。 还有...
    typedef struct node{
        int data;
        struct node *next;
    }node,*linklist;


    引发了一个疑问是  这里的linklist  和  用node* 定义的变量有什么不同?

    其实在查阅了一些资料后,发现其实这二者并没有什么差别,都是node型的指针变量,

    但前者常用来定义链表,而后者常用来做工作指针。

    还有linklist p; Linklist  *p;

    如果Linklist本身是结构体指针类型的话,定义Linklist p,p就是结构体变量的指针,Linklist *p就是指向结构体变量指针的指针为双重指针。

    修改链表时传参 :

    void modify(linklist &head)  或 void modify(node *&head)

    欢迎大家留言,纠正不足之处,谢谢!

     

    展开全文
  • 初学C,用的是VS2017 char *p="xxx"; 这么简单的定义语句提示 const char *" 类型的值不能用于初始化 "char *" 类型的实体 然后在char前面加上const就...怎么样才能定义一个字符串指针变量?难道是因为VS2017的问题么?
  • Freemarker在模版中定义变量

    千次阅读 2015-04-18 11:35:19
    在模板中定义变量有三种类型: Ø plain变量:可以在模板的任何地方访问,包括使用include指令插入的模板,使用assign指令创建和替换。 Ø 局部变量:在宏定义体中有效,使用local指令创建和替换。 Ø 循环...

    在模板中定义的变量有三种类型:

    Ø plain变量:可以在模板的任何地方访问,包括使用include指令插入的模板,使用assign指令创建和替换。

    Ø 局部变量:在宏定义体中有效,使用local指令创建和替换。

    Ø 循环变量:只能存在于指令的嵌套内容,由指令(如list)自动创建;宏的参数是局部变量,而不是循环变量。

     

    局部变量隐藏(而不是覆盖)同名的plain变量;

    循环变量隐藏同名的局部变量和plain变量。

     

    模板中的变量会隐藏(而不是覆盖)数据模型中同名变量,如果需要访问数据模型中的同名变量,使用特殊变量 global

    下面的例子假设数据模型中的 user 的值是 BigJoe

    <#assign user = "Joe Hider">

    ${user}       <#-- prints: Joe Hider -->

    ${.globals.user} <#-- prints: Big Joe -->

     

     

    名字空间

    通常情况,只使用一个名字空间,称为主名字空间

    为了创建可重用的宏、变换器或其它变量的集合(通常称库),必须使用多名字空间,其目的是防止同名冲突

    创建库

    下面是一个创建库的例子(假设保存在 lib/my_test.ftl 中) :

    <#macro copyright date>

        <p>Copyright (C) ${date} Julia Smith. All rights reserved.

        <br>Email: ${mail}</p>

    </#macro>

    <#assign mail = "jsmith@acme.com">

    使用import指令导入库到模板中,Freemarker会为导入的库创建新的名字空间,并可以通过import指令中指定的散列变量访问库中的变量

    <#import "/lib/my_test.ftl" as my>

    <#assign mail="fred@acme.com">

    <@my.copyright date="1999-2002"/>

    ${my.mail}

    ${mail} 

    输出结果:

    <p>Copyright (C) 1999-2002 Julia Smith. All rights reserved.

    <br>Email: jsmith@acme.com</p>

    jsmith@acme.com

    fred@acme.com 

    可以看到例子中使用的两个同名变量并没有冲突,因为它们位于不同的名字空间。

     

    可以使用 assign 指令在导入的名字空间中创建或替代变量,下面是一个例子:

    <#import "/lib/my_test.ftl" as my>

    ${my.mail}

    <#assign mail="jsmith@other.com" in my>

    ${my.mail}

    展开全文
  • shell脚本——变量定义

    千次阅读 2021-03-27 01:15:43
    变量的定义变量如何定义变量的定义规则变量名区分大小写变量名不能有特殊符号变量名不能以数字开头等号两边不能有任何空格变量的定义方式基本方式命令执行结果赋值给变量交互式定义变量(read)实例定义有类型的变量...
  • 怎样定义指针变量

    千次阅读 2019-05-09 20:32:50
    定义指针变量的一般形式为:类型名 *指针变量 如:int *pointer_1,*pointer_2; 其中,int为定义指针式必须指定的“基类型”,指针变量的基类型用来指定此指针变量可以指向的变量的类型。 float *pointer_3 ; //...
  • DOS BAT批处理定义变量

    万次阅读 2013-07-03 12:56:12
    既然我们称之为批处理编程,那么变量是少不了的,在批处理中既可以自定义变量也可以使用系统变量,我们先来了解一下自定义变量。 (1)自定义变量 请看如下命令: @echo off set myname=okbase.net set myage=3 ...
  • Python类定义字类变量与实例变量

    千次阅读 2018-01-19 11:02:01
    学过JAVA或C++等语言的程序员...Python类中定义变量分为类变量和实例变量(也叫成员变量、对象变量),类变量直接定义在类里面(不在函数里面),前面不会有一个self修饰;相反,实例变量大都定义在实例函数里面,通
  • Django定义全局变量

    千次阅读 2019-08-08 15:23:00
    定义全局变量,在项目的任何位置都可以获取到变量的值 在include App=》include文件夹下=》context_processors.py 里定义需要获取的变量 #!/usr/bin/env python # coding:utf-8 # Author:Fengchunyang """ ...
  • 不要在头文件中定义变量

    千次阅读 2012-10-23 14:59:12
    有时候觉得有必要在头文件中定义一些变量,这样在源文件中就不需要定义了。但是这样做,有很大的问题。 比如 //test.h 1 #ifndef _TEST_H 2 #define _TEST_H 3 int x; 4 const char *name = "hhcn";
  • set语句:在模版中可以用set来定义变量。一旦定义了变量,以后就可以在之后使用:&lt;body&gt; {% set username=" zihliao" %} &lt;p&gt;{{ username }}&lt;/p&gt; &lt;/...
  • oracle 存储过程中定义变量

    千次阅读 2014-11-15 14:43:31
    create or replace procedure proc1 is p_name sut.name%type; begin select name into p_name from sut where id='12072226'; dbms_output.put_line(p_name); end proc1; / ...注意定义方式
  • react 定义组件变量

    千次阅读 2018-10-17 12:22:41
    react定义变量: constructor(){ super(); this.state={ timer:0 } } 方法:  functionA(){  console.log("this is functionA!"); } 引用 onClick={this.functionA.bind...
  • C语言——全局变量定义与声明

    万次阅读 多人点赞 2019-09-28 12:31:34
    本文讲述了全局变量定义与声明的用法,而且本为也将阐述这种用法的内在原理。我们先从两个错误例子引入,以下两个例程都在vc6.0平台上测试。 两种错误例程 1.unresolved external symbol 例子包含...
  • ansys 定义变量(关联模型)

    千次阅读 2018-06-06 14:25:33
    ug,proe,solidworks等模型转化后格式后(通常格式为stp,igs,iges,.x_t等)可以导入ansys中分析这是没问题的,但是在拓扑优化分析设定变量时,转化为通用格式导入ansys的模型不能识别变量。 ...
  • eclipse去除定义变量自动补全

    千次阅读 2017-04-10 17:04:10
    Eclipse自动补全设置与Eclipse源代码下载 以前使用VisualStudio和Sublime写代码的时候有很完善的代码提示,但是最近开始使用Eclipse弄JAVA的时候发现它的代码提示...http://www.cnblogs.com/a-zx/p/3388041.html
  • C++在头文件中定义const变量或static变量

    万次阅读 多人点赞 2018-08-16 00:09:04
    最常见的就是在头文件中定义字符串,例如在头文件def.h中定义变量: // defs.h static std::string s_str = &quot;Static&quot;; const std::string kStr = &quot;Const&quot;; 这样写就可以在...
  • 关于Interface中定义变量的注意事项

    万次阅读 2014-09-06 23:35:34
    最近在做项目的时候遇到了一个关于Interface定义变量的问题,感觉有点模糊,所以研究并总结了一些Interface中定义变量的注意事项,欢迎批评指正。 1.在Interface中定义变量的时候要将变量定义成public static ...
  • c++指针(二)——定义变量时的内存分配

    千次阅读 多人点赞 2018-05-08 08:37:02
    为什么要讲内存分配呢,因为要理解指针的实质,就...当我们定义一个int类型的变量 a 时,系统就开始准备一定的内存空间,这个内存空间的大小是int类型数据所需的内存大小(这个大小和具体的编译器有关,现在的编译器基...
  • 参考中国大学MOOC 浙江大学翁恺C语言程序设计在线课程 作用域:一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的... 只能⽤编译时刻已知的值来初始化全局变量 ...
  • MySQL定义变量赋值

    千次阅读 2018-12-19 15:16:02
    转载自https://www.cnblogs.com/mengfanrong/p/4911592.html 变量可以在子程序(性能、存储...变量定义 语法格式: DECLARE var_name [, var_name]... data_type [ DEFAULT value ]; var_name为局部变量的...
  • C语言switch case语句中定义变量问题

    千次阅读 2017-08-13 12:20:00
    严正声明: 作者:psklf 出处: http://www.cnblogs.com/psklf/p/6702767.html 欢迎转载,但未经作者...这个问题需要分开讨论,C 语言和 C++ 的标准定义是不同的。 C++int Caset(int a) { switch (a) { case 1:
  • $color:red; p{ $color:blue; color:$color;//blue } a{ color:$color;//blue }
  • STM8使用----STVD(COSMIC)定义变量指定其类型和位定义 http://www.51hei.com/bbs/dpj-31009-1.html (出处: 单片机论坛) stm8 stvd下 near等于51的xdata tiny等于51的idata 如何分配变量到指定的地址 ...
  • 使用gradle定义全局变量

    千次阅读 2018-04-10 00:24:21
    考虑到很多时候调试过程中需要用的打印日志和 Toast 信息都不需要在正式发行版本中出现,常用的做法便是定义全局变量用于区分两种阶段的所需要达到的效果。那么通过在 gradle 中添加全局变量,可以简单方便的定义...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,134,354
精华内容 453,741
关键字:

怎么定义变量p