struts2.3.1.2知识点(三)标签和ognl
来源:互联网 发布:程序员的文本编辑器 编辑:程序博客网 时间:2024/05/23 19:32
说明:将变量强制认为用ognl表达式取值:%{#u.userName}
“#”取得ActionContext值
“$”用于il8n和struts.xml配置文件
“%”用于将原本的文本属性解析为ognl,对原本是ognl的不起作用
1. struts2 property标签取值
取值:<s:property value="user.userName"/>;
取值为字符串:<s:property value="'userName'"/>(页面显示字符串“userName”);
设定默认值:<s:property value="user.age" default="22"/>(如果user没有age属性则显示结果为22);
取html类型的值:<s:property value="'<div>123</div>'" escape="true"/>
(默认的escape="true",此时是将其显示未字符串“<div>123</div>”,如果设置为escape="false"
则相当于在页面上加了一个div,只显示“123”,也就是用property取html类型的值时是不用转义的);
2.struts2.3 set标签
采用set设置值:<s:set var="age" value="33"/>默认范围为:request和ActionContext
set从request中取值:<s:property value="#request.age"/>
set从AcitonContext中取值:<s:property value="#age"/>
采用set设置值和取值小结:var变量,value设置值,
scope表明值的有效范围<s:set var="age" value="33" scope="session"/>
取值采用"#"+"范围"+"."+"变量":<s:property value="#session.age"/>
3. bean标签赋值取值:
<s:bean name="com.test.model.User" var="u">
<s:param name="userName" value="123"></s:param>
</s:bean>
申明了一个user对象,给对象的userName属性赋值为“123”;
<s:property value="#u.userName"/>
取值。
4. iterator标签
list:
<s:iterator value="userList" var="x" status="ss">
集合元素总和:<s:property value="#ss.count"/>
集合元素下标:<s:property value="#ss.index"/>
集合元素是否奇数:<s:property value="#ss.odd"/>
集合元素是否偶数:<s:property value="#ss.even"/>
集合元素是否第一个元素:<s:property value="#ss.first"/>
集合元素是否最后一个元素:<s:property value="#ss.last"/>
<s:property value="#x.userName"/>
</s:iterator>
map:
<s:iterator value="userMap" var="m">
<s:property value="#m.key"/>
<s:property value="#m.value.userName"/>
</s:iterator>
5. ognl表达式:
5.1值栈中的对象的普通属性:<s:property value="user.userName"/>
5.2值栈中的对象的普通方法:<s:property value="user.userName.length()"/>
public class User {
private String userName;
private String passWord;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String findUser(){
User u = new User();
u.userName ="zhang";
u.passWord="123456";
return u.getPassWord();
}
public User findUserObject(){
User u = new User();
u.userName ="zhang";
u.passWord="123456";
return u;
}
}
5.3model类中有两个方法,在jsp页面上可以直接使用下面方式使用该方法:
<s:property value="user.findUser()"/>
<s:property value="user.findUserObject().userName"/>
5.4访问action中的普通方法:
action中有这么一个方法
public String findUserName(){
User u = new User();
return u.findUser();
}
<s:property value="findUserName()"/>
5.5访问静态方法和属性:"@"+"包名"+"."+"类名@变量或方法名"
注意:静态方法要在struts.xml中配置,静态属性不需要
<!-- 允许jsp页面通过ognl表达式直接调用静态方法 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
public class OGNLTest {
public static int PAGE_SIZE=10;
public static String pageSize(){
String page = String.valueOf(PAGE_SIZE);
return page;
}
}
<s:property value="@com.test.util.OGNLTest@PAGE_SIZE"/>
<s:property value="@com.test.util.OGNLTest@pageSize()"/>
5.6 访问Math类的静态方法,只有该类是可以这样访问:
<s:property value="@@max(2,11)"/>
5.7 访问普通类的构造方法:直接new
(当然必须该类有这样的构造方法):
<s:property value="new com.test.model.User('zhangsan','123456789').userName"/>
5.8 访问list集合(map与其相同如4. iterator标签)
访问list:<s:property value="userList"/>
访问List中的元素:<s:property value="userList[0].userName"/>
访问list元素中属性的集合:<s:property value="userList.{userName}[0]"/>
访问容器的大小:<s:property value="userList.size()"/>
- struts2.3.1.2知识点(三)标签和ognl
- struts2标签和OGNL表达式
- ognl表达式和struts2标签
- ognl表达式和struts2标签
- OGNL表达式和Struts2标签
- ValueStack、OGNL和Struts2标签
- ognl和Struts2标签概述
- struts2标签和ognl表达式
- Struts2标签库和OGNL
- Struts2标签库和OGNL
- Struts2 - OGNL表达式和Struts2标签库
- struts2之OGNL和struts2标签库
- struts2之OGNL和struts2标签库
- struts2之OGNL和struts2标签库
- Struts2中的OGNL详解(和标签库一起使用)
- Struts2标签、EL标签、JSTL标签和OGNL标签浅析
- Java乔晓松-Struts2标签和OGNL表达式
- Struts的标签和Struts的OGNL表达式(三)
- 求两个大整数(大于32位)的乘积的C++实现代码
- flex 多页面切换
- ORACLE数据字典
- spring 同时配置hibernate and jdbc 事务
- scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离
- struts2.3.1.2知识点(三)标签和ognl
- App成长记第三期:iApp4Me的新逻辑
- 在Android系统中修改Android.mk使其同时编译rgb2565和rgb2888(向out/host/linux-x86/bin/下新增加一个工具命令)
- 详解Android getWidth和getMeasuredWidth
- Git、Gerrit与Jenkins/Hudson CI服务器
- Objective- c 分类 与 扩展
- 常用链接整理 (样式)
- 苹果禁用UDID再续:OpenUDID有望成为替代方案
- AndroidManifest.xml设置程序安装的路径