tag get - jmr-source/doc GitHub Wiki

get - 获取变量

<get>

得到变量值

说明

从作用域context或者session中得到变量,
可使用Ognl表达式得到变量的属性和方法,或者自定义ognl类型变量

属性

value(必须)
得到变量值,也可以得到变量相关的Ognl值
valueScope(可选)
变量的作用域

属性
context:从context中得到变量(默认)
session:从session中得到变量
case(可选)
字符串大小写转换,可以使用“|”包含多个操作,如 lower|plural

属性
lr:字符串转成小写(同lower)
ur:字符串转成大写 (同upper)
hlr:头字母转成小写 (同headLower)
hur:头字母转成大写(同headUpper)
lower:字符串转成小写
upper:字符串转成大写
headLower:头字母转成小写
headUpper:头字母转成大写
plural:复数格式
singular:单数格式
trim(可选)
是否保留输出值的前后空白字符

属性
false:保留输出值的前后空白字符(默认)
true:删除输出值的前后空格(包括换行符)

###例子位置:###

  • demo/tag/tag.jmr.xml 任务中的 common/get

输出规则

以下的方式都可以输出"Hello Jmr!",四种方式本质上都是转换成out.write(Object object)

输出的值:

基本类型:输出的值是它们本身;
字符串:输出的是字符串;
Object:输出toString()方法的返回值。

用<get>得到它们的值

输出结果可以看到,List和array调用了toString()方法,
array因为没重写toString()方法,所以返回的是一个地址。

小贴士:在<get>的value中,把鼠标放在上面,或者选中,可以提示出这个变量的值。

获取值的来源和作用域

从context和session中获取变量,那么如何设置变量存放到context和session中呢?

1.在context中设置变量,作用域为当前任务,变量只能在当前任务下的模板和action中共享。

此处在模板的<% %>中设置context的值,当然,也可以在action中设置context,
这里设置了String、boolean、int和List类型的变量。

用<get>得到它们的值

输出结果

小贴士:在<get>的value中按提示键可以提示出可用的变量值。

2.在session中设置变量,作用域跨任务,变量能在多个任务的模板和action中共享。

此处在模板的<% %>中设置context的值,当然,也可以在action中设置session,
这里设置了String、boolean、int和Map类型的变量。

用<get>得到它们的值,作用域valueScope输入session

输出结果

小贴士:在<get>的value中按提示键可以提示出可用的变量值,
此处会根据作用域提示对应的变量。

3.在action中设置变量

在action中可以设置context或者session变量,此处我们设置context变量为例。
这里设置了String、boolean、int和double[]类型的变量。

用<get>得到它们的值

输出结果

小贴士:在<get>的value中按提示键可以提示出可用的变量值,
此处提示需要在模板的菜单中选中需要的action。

4.在<set>、<for>等标签的var变量。

在set、for中设置的变量本质上也是设置在context或者session中。

用<get>得到它们的值,其中list用for标签循环输出,分隔符用","

输出结果

ognl使用方法

get不仅可以获得变量值,还可以得到变量的Ognl属性和方法的值

以下是一个Student类,它有id和name这2个属性

在action中new一个Student对象

把模板中的action指向GetTagAction

可以得到对象的ognl values 和ognl methods

Ognl values:对象的属性如果有对应的getXXX()方法, 就可以得到它本身
student有id和name,因为id和name有对应的getId和getName方法,所以可以得到它们的Ognl值。

Ognl methods:对象的方法
对象包含的方法,如果方法有返回值,可以得到返回值。

不仅得到对象的Ognl值,还可以链式的得到其对应的Ognl值。
如student.name为String类型,所以还可以得到name对应的String方法。

用<get>得到它们的值。

输出结果

小贴士:在<get>的value的中,把鼠标放在上面,或者选中,可以提示出这个变量的Ognl值。
鼠标放在上面

选中需要的部分

case使用方法

case能对得到的值进行大小写和单复数转换。

在很多时候,需要对得到值进行大小写转换,头字母大小写转换,或者单复数转换。此时可以使用case

以下例子中,我们设置一个变量class,首先我们要把class的头字母转换成大写,并且转成复数形式。
所以在case中输入"headUpper|plural",其中可以用“|”包含多个操作。
而id和name只是在它的get方法中把头字母转成大写即可。

结果

trim使用方法

trim是判断是否保留输出值的前后空白字符,默认false,也就是说原样输出所有字符。

例子

结果

⚠️ **GitHub.com Fallback** ⚠️