如何在websphere commerce bean中获取Url参数?

时间:2016-03-02 17:05:48

标签: java request websphere-commerce

我正在尝试获取网址,尝试了两种方法,但得到了“无法”#39; commandContext。尝试过其他一些,但每次都是空的。

  Object req = commandContext.getRequest();
 com.ibm.commerce.webcontroller.HttpControllerRequestObject req1 = (com.ibm.commerce.webcontroller.HttpControllerRequestObject) req;
javax.servlet.http.HttpServletRequest httpReq = req1.getHttpRequest();
ses = httpReq.getSession();


 HttpServletRequest request =
 ((com.ibm.commerce.webcontroller.HttpControllerRequestObject) this 
 .getCommandContext()
 .getRequest())
 .getHttpRequest();

不太明白我做错了什么,请大家帮忙吗?

我想捕获用户在特定场景中遇到的网址中存在的参数。

例如,

https://webAddress/MyForm?item=someitem&qty=1

我需要得到' item'和' qty'。

2 个答案:

答案 0 :(得分:3)

有点晚了,但我觉得这会对别人有所帮助 要从URL获取控制器命令中的查询参数,您可以按照此tutorial 中提到的方法之一进行操作 或者你可以尝试如下,获取请求属性并使用查询参数名称

获取值
TypedProperty requestProp = getRequestProperties();
String item = requestProp.getString("item");
int itemQty = Integer.parseInt(requestProp.getString("qty"));

然后是你的业务逻辑 希望这会有所帮助。

答案 1 :(得分:0)

您没有提及需要参数值的上下文,因此我假设您正在为控制器命令编写业务逻辑。

当运行时框架实例化控制器命令时,它将调用setRequestProperties()方法,传入TypedProperties实例,其中包含请求参数(无论是作为GET还是POST参数传递,映射来自XML消息,或通过REST层)。

此默认实现(在com.ibm.commerce.commands.ControllerCommandImpl中)只会将其存储在requestProperties属性中,然后您可以在该属性中访问performExecute()

我通常建议人们覆盖setRequestProperties()来挑选他们想要的值并将它们存储在实例变量中。

不要忘记验证validateParameters()中的参数。

请参阅知识中心的Creating business logic教程,以获得更全面的演练。