java的ognl写文件_java struts2入门学习--OGNL语言常用符号和常用标签学习

一.OGNL常用符号(接上一篇文章):

1.#号

1) 作用于struts2的域对象,而不是普通域对象

2)作用于JavaBean对象

3)作用于普通字符串,如果value只是一个字符串的话,不是JavaBean对象,可以加#,也可以不加.

4) ?#,表示所有记录

^#,表示第一条记录

$#,表示最后一条记录

{?#条件}[n],表示第n+1条记录,

例如:

取出第N个记录,N为索引号

实例:ognl_3.jsp

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

Insert title here

userList = new ArrayList();

userList.add(new User(1, "张三", 20));

userList.add(new User(2, "李四", 25));

userList.add(new User(3, "amos", 30));

userList.add(new User(4, "hi_amos", 28));

pageContext.setAttribute("userList", userList);%>


查询大于等于25岁的所有用户,?#
编号姓名年龄

查询大于等于25岁的第一个用户,^#
编号姓名年龄

查询大于等于25岁的最后一个用户,$#
编号姓名年龄

查询大于等于25岁的最后一个用户,{?#}[索引值]
编号姓名年龄

View Code

效果如下图所示:

7a3e6e140c0d83532489f8b32ea09def.png

5)可以构造Map集合

实例:ognl_4.jsp

Insert title here

:

效果如下图所示:

314dae0be698d2399ff0503e7ad62c5e.png

2.%号

用法一:引用变量

用法二:引用常量

实例:ognl_5.jsp

Insert title here
现代:
现代2:

效果如下图所示:

c9ceb1cdbf1ddcfaa484c69b7828bda4.png

3.$号

用法一:

>>读取xml文件中配置的变量

用法二:

>>读取Action类中的实例变量,底层执行getXxxx()方法

二.OGNL常用标签

1.property标签,用于输出指定值:

* default:可选属性, 如果需要输出的属性值为null,则显示该属性指定的值

* escape:可选属性,指定是否格式化HTML代码。

* value: 可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输

出ValueStack栈顶的值。

例子 :

:输出栈顶的值

输出: username=username_valueStack, msgxx=msg_valueStack

输出:


hr的使用

注:escape=“false”时,hr作为html标签使用

实例:s_property.jsp

Insert title here

request.setAttribute("msg", "超链接");%>

效果如下图所示:

d22adf01e9c4f42bf1c94d50334f429d.png

2. set标签

set标签用于将某个值放入指定范围。

var:变量的名字,name,id和var表达的含义是一样的,name,id被var替代

scope:指定变量被放置的范围,该属性可以接受application、session、request、 page。如果没有设置该属性,则默认放置在action中,即值栈。

value:赋给变量的值.如果没有设置该属性,则将ValueStack栈顶的值赋给变量。

例子:

实例:

s_set.jsp

Insert title here

application、session、request、 page

效果如下图所示:

d4e775078a8d4d43a411e4ee67e1955c.png

3.Iterator标签

Iterator:标签用于对集合进行迭代,这里的集合包含List、Set,Map和数组。

value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。

var: 可选属性,引用变量的名称.

status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:

int getCount(),返回当前迭代了几个元素。

int getIndex(),返回当前迭代元素的索引。

boolean isEven(),返回当前被迭代元素的索引是否是偶数

boolean isOdd(),返回当前被迭代元素的索引是否是奇数

boolean isFirst(),返回当前被迭代元素是否是第一个元素。

boolean isLast(),返回当前被迭代元素是否是最后一个元素。

实例:

s_iterator.jsp

标签学习

usersList = new ArrayList();

usersList.add("张一");

usersList.add("张二");

usersList.add("张三");

usersList.add("张四");

pageContext.setAttribute("usersList", usersList);%>


索引号编号姓名是否奇数行是否偶数行是否第一行是否最后一行状态

'> --%>

style='background-color:'>

A

test="#userstatus.count==2">B

test="#userstatus.count==3">C

test="#userstatus.count==4">D

效果如下图所示:

233c060104ff102dff74b862969f3935.png

4.ognl操作集合

1)使用ognl操作list和数组.

cef2be7559eeeb96b36e1eea1da6c907.png

Action中:

private List allList=new ArrayList();

Jsp:

集合的长度:

ognl也可直接创建集合对象. 利用下拉列表框:

Jsp:

实例:ognl_6.jsp

对于集合的操作,判断是否非空,长度等

userList = new ArrayList();

userList.add("hi");

userList.add("amos");

userList.add("li");

application.setAttribute("userList",userList);%>集合长度:


是否为空:


效果如下图所示:

230aa00ef32b58b23edc44b7508845e7.png

2)使用ognl操作map

ognl用多种方式使用#号,每种是不同的.动态map对于动态单选按扭组很有用.

创建map与创建list语法很相似,不同的是map前需要加"#"号.

5.标签防止重复提交

标签防止重复提交,用法如下:

第一步:在表单中加入,第二步,使用token栏截器

例子可以参见上篇文章.

6.使用 native2ascii 程序转换字符编码

JDK 中提供了一个 native2ascii 工具程序,它可以将某种本地字符集编码的字符转换成 Unicode 转义序列的形式

DOS 下进入 test_cn_backup.properties文件所在目录,运行下面的命令后将在当前目录下生成一个名为 test_zh_CN.properites 文件:

native2ascii -encoding gb2312 源文件 目标文件.properites

native2ascii -encoding gbk a.txt   b.properites

效果如下图所示:

5655fd529548b390e28b0702290cac6a.png

7.本文源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值