iteye_17523 2010-03-23 17:38
浏览 229
已采纳

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[]类型的

  • 写回答

1条回答 默认 最新

  • wanghaolovezlq 2010-03-23 17:45
    关注

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

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果