struts2的参数传递应用3个方法。
举一个例子,通过页面Ext的调用,传递参数的时候。action是如何得到参数的。
Ext.Ajax.request({
url : '/struts2sample/TestSave.action',// 请求路径,可以是任何形式
params : {
'firstname':'zhangt',
'lastname':'tao',
'company':'UFIDA',
'email':'dlhzt@163.com',
'time': '8:00 AM'
}
})
这个是前台Ext调用Struts2的action
后台得到参数有三种方法,
(一) 在action中对这个些参数进行setter/getter,然后在调用的action中用getter方法直接来取的参数。应为struts2拦截器会自动的将参数匹配到action中的setter方法。
(二) 在action方法中 用这样的方法来得到参数
String firstname = ServletActionContext.getRequest().getParameter("firstname");
(三)同方法(二)类似,将所有参数放入map中,然后遍历map来得到参数的键值对
Map paremters = new HashMap();
parameters = ActionContext.getContext().getParameters();
Iterator it = parameters.entrySet().iterator();
while (it.hasNext()) {
Entry testEntry = (Entry) it.next();
String key = testEntry.getKey().toString();
String[] value = (String[]) testEntry.getValue();
for(int i = 0 ; i<value.length; i ++){
System.out.println(value[i]);
}
System.out.println("key=" + key);
System.out.println("value=" + value);
System.out.println("");
}