java struts2入门学习--OGNL语言常用符号和常用标签学习(一)

2014-11-24 02:31:44 · 作者: · 浏览: 2
一.OGNL常用符号(接上一篇文章):
1.#号
1) 作用于struts2的域对象,而不是普通域对象
2)作用于JavaBean对象
3)作用于普通字符串,如果value只是一个字符串的话,不是JavaBean对象,可以加#,也可以不加.
4) #,表示所有记录
  ^#,表示第一条记录
  $#,表示最后一条记录
  { #条件}[n],表示第n+1条记录,
例如:
取出第N个记录,N为索引号
实例:ognl_3. jsp
复制代码
<%@ page language="java" contentType="text/ html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ page import="java.util.*"%>
<%@ page import="ognl.User"%>
Insert title here
<%
List 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岁的最后一个用户,{ #}[索引值]
编号 姓名 年龄
5)可以构造Map集合
实例:ognl_4.jsp
复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
Insert title here

:
2.%号
用法一:引用变量
用法二:引用常量
实例:ognl_5.jsp
复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
Insert title here
传统:

现代:

现代2:
复制代码
效果如下图所示:
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
复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
Insert title here
<%
session.setAttribute("user_name", "hi_amos");
request.setAttribute("msg", "超链接");
%>





:
2. set标签
set标签用于将某个值放入指定范围。
var:变量的名字,name,id和var表达的含义是一样的,name,id被var替代
scope:指定变量被放置的范围,该属性可以接受application、session、request、 page。如果没有设置该属性,则默认放置在action中,即值栈。
value:赋给变量的值.如果没有设置该属性,则将ValueStack栈顶的值赋给变量。
例子:





实例:
s_set.jsp
复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
Insert title here
<%
request.setAttribute("username", "hi_amos");
%>
application、session、request、 page




3.Iterator标签
Iterator:标签用于对集合进行迭代,这里的集合包含List、Set,Map和数组。
value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。
var: 可选属性,引用变量的名称.
status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:
int getCount(),返回当前迭代了几个元素。
int getIndex(),返回当前迭代元素的索引。
boolean isEven(),返回当前被迭代元素的索引是否是偶数
boolean isOdd(),返回当前被迭代元素的索引是否是奇数
boolean is