ActionContext.getContext().getParameters():一个学员问题的解答

2012-11-12 15:12:05|  分类: 默认分类 |  标签:struts2   |举报 |字号大中小 订阅

 
 
这是一个学员发给我的问题,虽然有点怪,貌似明白他在思考的问题。

照图贴上,说明一下action是struts2 Action, 还没讲到struts2,他自己学的,不错。

从以上问题可以看出,他试图是想在Action中用Servlet中的request.getParament的方式来获取表单提交的值 (或URL传递的参数)。
 
那问题就是:在Action中如何获取HttpServletRequest对象:
 
1、第一种方法:
                ActionContext ctx = ActionContext.getContext();
Map request = (Map) ActionContext.getContext().get("request");
System.out.println(request.get("name"));
 
2、第二种方法:
                HttpServletRequest req1 = ServletActionContext.getRequest();
String n = req1.getParameter("name");
System.out.println("n------"+n);
 
3、第三种方法:
               HttpServletRequest req2 = (HttpServletRequest) ActionContext
.getContext()
.get(org.apache.struts2.StrutsStatics.HTTP_REQUEST);
 
String sname = req2.getParameter("name");
System.out.println("req sname----" + sname);
 
以上第2、3种方法都可以获得HttpServletRequest,通过getParameter方法获取值。
 
4、方法:Map<String, Object> params = ActionContext.getContext().getParameters();
                这个方法我也没用过。在Action中获取request一般用第一种方法。
               只能先做一些测试: getParameters()可以通过map数据中key获得页面提交的参数名。理论上通过遍历key,可以获取value, (得到页面传来的值)。或者通过params.get("name")得到name参数的值。但是输出看到的却是如,[Ljava.lang.String;@1e630208 。(一个String对象!)
               通过测试我发现: param.get("name")是一个String数组(为什么要返回数组不清楚,待查。可能的考虑是value应该保存一个object, 如果是一个对象,应该是有多个值的)。
那要用这种方法输出name的值,应该这样写:     System.out.println(((String[])params.get("name"))[0]);  输出即为传过来的name对应的值。OK!
 
 ActionContext.getContext().getParameters()具体待查,欢迎大家补充!
 
要取页面提交,传过来的值,还是用struts2提供的封装的方法。

【转载】关于ActionContext.getContext().getParameters()获值问题的更多相关文章

  1. ActionContext.getContext().getSession()

    ActionContext.getContext().getSession() 获取的是session,然后用put存入相应的值,只要在session有效状态下,这个值一直可用 ActionConte ...

  2. <s:if>标签与ActionContext.getContext().getSession()

    今天在做<s:if>标签中的属性值从 ActionContext.getContext().getSession().put("WW_TRANS_I18N_LOCALE" ...

  3. ValueStack与ContentMap (ActionContext.getContext().getValueStack().set())

    在方法 <action name="zilei" class="dtreeAction" method="zilei">   & ...

  4. 关于ActionContext.getContext()的用法心得

    转: 为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装, ...

  5. 关于ActionContext.getContext()的用法

    为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装,构造了 ...

  6. 关于ActionContext.getContext()的使用方法心得

    这个也是我在另外一位仁兄的博客中看到的,原博客的有点长,我把它精简了一下,算看起来比較方便吧. 为了避免与Servlet API耦合在一起,方便Action类做单元測试,Struts 2对HttpSe ...

  7. 大约ActionContext.getContext()使用体验

    这是我在另一个人的博客看了,原来博客的时间长一点.我把它简化了一下,运营商,以方便它看起来. 为了避免与Servlet API耦合在一起,方便Action类做单元測试,Struts 2对HttpSer ...

  8. ActionContext.getContext()用法

    为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest.HttpSession和ServletContext进行了封装,构造了 ...

  9. Web版需求征集系统所得2,servlet中request.getParameter获值乱码问题解决

    servlet获值乱码问题解决 解决办法一(最简单有效) request.setCharacterEncoding("utf-8"); 解决办法二 因为乱码问题的产生是因为默认格式 ...

随机推荐

  1. 《服务器的追踪与审计》RHEL6

    在linux系统/etc目录下有两个文件: 服务器的追踪: 当其他人访问我的主机时,通过日志监控到那台主机什么时间通过什么方式登陆,做什么?

  2. 14种网页jQuery和css3特效插件代码演示

    1.网页table增删样式代码 演示和下载地址 2.jQuery左右滑动幻灯片插件 演示和下载地址 3.jQuery文字轮播焦点图 演示和下载地址 4.网页文字焦点图切换 演示和下载地址 5.jQue ...

  3. 使用Eclipse开发,Java Compiler中Annotation Processin不出现的解决方案

    第一步:在Eclipse菜单栏中点击Help,在点击inatall New Software 第二步:在Work with中找到 Juno - http://download.eclipse.org/ ...

  4. RouterOS的MikroTik脚本从DNS更新IPSEC端的IP地址

    #Script for changing IPSEC address when DNS changes. #Script will iterate through all peers looking ...

  5. NodeJS从零开始——NPM的使用

    NPM是一个Node包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准.有了NPM,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. NPM常用的命令有: (1)$ ...

  6. Ubuntu重启网络/etc/init.d/networking restart报错

    Linux版本:Ubuntu 12.04 配置网口后重启网络,提示/etc/init.d/networking restart is deprecated. $ sudo /etc/init.d/ne ...

  7. OC面向对象多态笔记

    面向对象的多态是建立在继承上,可以说没有继承就没有多态: 多态:父类指针指向了子类的对象: int main() { //假设已定义了Animal类和它的子类Dog,那么多态的代码体现就是 Anima ...

  8. C语言基础:数组和字符串

    数组:数组的定义注意点 数组初始化正确写法: int args[5] = {1,23,32,4,5}; int args[5] = {12,23}; int args[5] = {[3]=23, [4 ...

  9. HttpWebRequest,HttpWebResponse的用法和用途

    1.用途:HettpWebRequest,HettpWebResponse用途和webServers的作用差不多,都是得到一个页面传过来的值.HttpWebRequest 2.用法:--------- ...

  10. 学习KnockOut第三篇之List

    学习KnockOut第三篇之List 欲看此篇---------------------------------------------可先看上篇.          第一步,先搭建一个大概的框架起来 ...