Struts2中的请求参数

今天第一次用Struts2的自定义Interceptor,结果就卡了...
源于
[code="java"]
ActionContext context = invocation.getInvocationContext();
Map parameters = context.getParameters();
Set parameterNames= parameters.keySet();
for(Iterator iter = parameterNames.iterator(); iter.hasNext();){
String parameterName = iter.next();
System.out.println(parameterName + "\t" + parameters.get(parameterName));
}[/code]
这段代码,由上可以发现parameters 的key-value对中 ,value是清一色的 String[]类型...我想知道为什么要这样处理呢
对于单值的参数为什么也要用一个数组来存储,搞得很麻烦

网上通用的做法是
[code="java"]
ActionContext context = invocation.getInvocationContext();
HttpServletRequest request = context.get("request");
...
[/code]
这种做法来得到请求参数,但是我想既然用了框架,那不如用最高层...不知道这样从request中取出来的参数是否也都是String[]类型的

它底层通过调用 HttpServletRequest 的以下方法来得到参数值

public Enumeration getParameterNames()
public String[] getParameterValues(String name)

这种方式有它的通用性,因为后台servlet是没法判断你浏览器发送过来的是普通的输入框还是多选框之类 的,

为了统一处理就用这种方式,我觉得蛮通用的,一个值就当数组的个数为1嘛,蛮方便的