Struts2中参数传递与OGNL

   创建一个action前,拦截器会初始化一个值栈valueStrack,值栈里面有一个map和一个对象栈,并赋值给它们(另一个拦截器将数据 封装成对象后压栈),又将action压入栈顶,而map里面有request,session,application等,。也就是说,Struts会将数据都存入数据区(值栈)中,,,,,在action中存取数据,如:存入map中actionContext.getContext().put(“user”,user)即将user存入map,,,存入对象栈中actionContext.getContext().getvalueStack.push(user)即将user推向栈顶,,,,在jsp中存取数据,用OGNL表达式,或用EL表达式, 值栈的作用域是一个请求,即request ,,。在jsp中,列表显示时,在map获取数据,,,而表单回显时,在值栈中获取数据,如,,struts2会自动回显从对象栈中查找到的与name相同的属性。,, 会自动把循环到的User压到栈顶,,,,,,,,${name},struts中的el表达式,如果在request中找不到,会自动到值栈中去找。
Struts2中参数传递与OGNL_第1张图片

///
在传递参数中,jsp页面里的数据是从action中来的,也就是jsp的数据要看是从哪个action转过来的,,,,,
action中的数据是从表单里传过来的,当表单提交时,就属于另一个请求了,这里原来值栈中的数据就没了,换成表单数据了,,,,
如果是超链接的话,超链接传递到action中的数据就只有?后面所带的了,,,,,,

你可能感兴趣的:(struts2)