您的位置:首页 > 编程语言 > Java开发

Struts2中参数传递与OGNL

2015-10-06 21:53 393 查看
   创建一个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获取数据,,,而表单回显时,在值栈中获取数据,如,<s:textfield name="name" cssClass="InputStyle" />,struts2会自动回显从对象栈中查找到的与name相同的属性。,,<s:iterator value="userList"> 会自动把循环到的User压到栈顶,,,,,,,,${name},struts中的el表达式,如果在request中找不到,会自动到值栈中去找。



///////////////////////////////////////////
在传递参数中,jsp页面里的数据是从action中来的,也就是jsp的数据要看是从哪个action转过来的,,,,,
action中的数据是从表单里传过来的,当表单提交时,就属于另一个请求了,这里原来值栈中的数据就没了,换成表单数据了,,,,
如果是超链接的话,超链接传递到action中的数据就只有?后面所带的了,,,,,,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: