(先定义一个action,有个username字段,假设value="song"想传递到页面上)
public class Login extends ActionSupport {
private String username;
public String execute() throws Exception {
return INPUT;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
在jsp页面中用以下四种方法可以实现:
1. <s:property value="username"/>
2. ${username}
${}为EL表达式
3. <s:property value="#request.username"/> (#session. #application.类似)
(1)#相当于ActionContext().getContext
ActionContext 中的主要对象: parameters, attr, request, session, application
如:
ActionContext().getContext().getSession().get(“kkk”)
|
#session.kkk
|
ActionContext().getContext().get(“person”)
|
#person
|
(2)
Map
map.get(“foo”)
|
map[‘foo’] 或 map.foo
|
map.get(1)
|
map[1]
|
Map map = new HashMap()
map.put(“k1”, “v1”); map.put(“k2”,”v2”);
|
#{“k1
|
(3)筛选 与 投影
筛选 collection.{? expr }: #this 代表当前循环到的object
投影 collection.{ expr }
children.{name}
|
(投影)得到 Collection<String> names, 只有孩子名字的list
|
children.{?#this.age>2}
|
(筛选)得到 collection<Person> age>2的记录
|
children.{?#this.age<=2}.{name}
|
先筛选再投影
|
children.{name+’->’+mother.name}
|
(筛选)得到元素为 str->str 的集合
|
总结:
#的三种用途
1. 引用 ActionContext 中的object #person
2. 动态创建map #{1:’a’, 2:’b’}
3. 对集合进行筛选(#this) #this
4. <s:property value="%{username}"/>
posted on 2008-12-23 15:06
冲出银河系 阅读(1123)
评论(0) 编辑 收藏 所属分类:
struts2