锁定老帖子 主题:Webwork的参数传递问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-09-06
Map parameters = ActionContext.getContext();.getParameters();; 假如我通过"GET"的方式向action传递一个参数, 例:example.do?url=192.168.0.1 在action中, parameters.get("url")返回的值是一个字符串数组, 而不是我期望的字符串"192.168.0.1", 请问这是怎么回事? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-09-06
根据HTTP的规范,可以传递同名的参数,比如:
example.do?url=192.168.0.1&url=192.168.0.2 这样得到的就是一个数组 另外,在WebWork里面不大可能需要用getParameters()的方法去写代码,十有八九你没有理解WebWork的数据绑定的用途...... |
|
返回顶楼 | |
发表时间:2005-09-06
是这样的, 我希望我的一个action可以接收不确定名称的参数, 我该怎么做?
|
|
返回顶楼 | |
发表时间:2005-09-06
rockis 写道 是这样的, 我希望我的一个action可以接收不确定名称的参数, 我该怎么做?
用户需求是什么样的?描述清楚一些...... |
|
返回顶楼 | |
发表时间:2005-09-06
抱歉, 是这样的. 其实这是一个很简单的功能. 我有一个action类:ExampleAction, 在xwork.xml里我把它映射成了两个上下文:example1.do, example2.do,这两个的需要传入的参数个数是不一样的, example1.do需要传入URL:example1.do?address=192.168.0.1, example2.do需要传入URL:example2.do?address=192.168.0.1&port=8080, 后期很有可能会把ExampleAction映射成example3.do, example4.do, 而不需要修改ExampleAction的代码, 也就是说, ExampleAction里面不需要做什么, 这几个*.do不同的只是返回结果页面. 这样就需要ExampleAction可以get和set不同的参数, 比如说example1的address参数, example2的port参数, 或许之后还有netmask参数等等
|
|
返回顶楼 | |
发表时间:2005-09-06
试试看用一个Map对象,然后输入参数用这样:
example1.do?inputMap['address']=192.168.0.1&inputMap['port']=8080 xwork能够自动填充Map的值。 具体的写法查一下文档把 |
|
返回顶楼 | |
发表时间:2005-09-06
Thanks for your help
![]() |
|
返回顶楼 | |
发表时间:2005-09-06
ActionContext.getContext().getParameters().get("xxx") 返回的确实是个String[],所以可以这样写
Object o = ActionContext.getContext();.getParameters();.get("userId");; if(o instanceof String[]);{ String userId = ((String[]);o);[0]; } so ugly... |
|
返回顶楼 | |
发表时间:2005-09-07
从你的需求上来看,我觉得根本用不到Map映射。你只要在你的Action中多写几个私有变量,暴露他们的get和set方法不就ok了?如果你只传了address,那么mask和其他的值都为null,如果你传了address和mask,那么其他的为null,至于你的Action代码,肯定是一并处理的。在业务逻辑判断就行了。
|
|
返回顶楼 | |
发表时间:2005-10-09
楼上正解
|
|
返回顶楼 | |