Stack Context
├--
ValueStack 对象:Stack Context 的
根对象,储存所有 Action 对象的实例属性
│
├--
paramters 对象: 储存 HTTP 请求参数;
│
如: #paramters['username'] 或 #paramters.username 等同于调用 HttpSevletRequest 的 getParamter("username");
├--
request 对象: 储存 HttpServletRequest 对象;
│ 如:
#request['flag'] 或 #request.flag 等同于调用
HttpSevletRequest 的 getAttribute("flag");
├--
session 对象:储存 HttpSession 对象;
│ 如
:#session['username'] 或 #session.name 等同于调用 HttpSession 的
getAttribute("username");
├--
application 对象:储存 SevletContext 对象;
│ 如:
#application['flag'] 或 #application.flag 等同于调用
ServletContext 的 getAttribute("flag");
├--
attr 对象:该对象依次检索对象 PageContext、HttpServletRequest、HttpSession、ServletContext 中的属性;
│
....
|
TestAction.java
@Result(name="success" location="/testPage.jsp")
public class TestAction{
private String username; //Action本身具有的私有域,不必显式声明压入ValueStack,这个过程是自动进行的
public String execute() throws Exception{
String key1 = "Are you ok?";
String key2 = "Fine";
ValueStack valueStack = ActionContext.getContext().getValueStack(); //获取ValueStack对象
Map context = new HashMap(); //创建一个包含显式声明键值的Map对象,并将其压入ValueStack
context.put("key1",key1);
context.put("key1",key1);
valueStack.push(context);
return "success";
}
//省略get,set方法
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
Test OGNL
//创建List
{elemen1,elemen2,elemen3,elemen4,}
//创建Map
{"key1":value1,"key2":value2,"key3":value3}
The cat is pet
<%@ taglib prefix="s" uri="/struts-tags"%>
something execute
something execute
something execute
element is
输出:
假设 list1={1,2,3},list2={4,5,6},list3={7,8,9} ,那么 appendList={1,2,3,4,5,6,7,8,9};
假设 list1={1,2,3},list2={4,5,6},list3={7,8,9} ,那么 mergeList={1,4,7,2,5,8,3,6,9};
以上示例中 subList={2,3,4};
//实现一个Int型数值的Comparator
public class MyComparator implements Comparator{
public int compare(Object obj1,Object obj2){
return (Integer)obj1 - (Integer)obj2;
}
}
JSP 代码中
public class testAction{
private String author;
public String getAuthor(){ return author;}
@Action(value="/action1")
public String execute() throws Exception(){
ActionContext.getContext().getValueStack().put("author",getAuthor());
retrun "success";
}
}
.
jsp
//将一个键值值放置入session中
date 标签