Java 如何在WebSphereCommerceBean中获取Url参数?

Java 如何在WebSphereCommerceBean中获取Url参数?,java,request,websphere-commerce,Java,Request,Websphere Commerce,我正在尝试获取URL,尝试了以下两种方法,但得到了'null'commandContext。也尝试了其他方法,但每次都为空 Object req = commandContext.getRequest(); com.ibm.commerce.webcontroller.HttpControllerRequestObject req1 = (com.ibm.commerce.webcontroller.HttpControllerRequestObject) req; javax.servl

我正在尝试获取URL,尝试了以下两种方法,但得到了'null'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();
我不太明白我做错了什么,有人能帮忙吗

我想捕捉用户在特定场景中点击的url中存在的参数

比如说,

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

我需要获取'item'和'qty'。

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

当运行时框架实例化控制器命令时,它将调用
setRequestProperties()
方法,传入一个
TypedProperties
实例,该实例包含请求参数(作为GET或POST参数传递,从XML消息映射,或通过REST层)

默认的实现(在
com.ibm.commerce.commands.ControllerCommandImpl
中)只需将其存储在
requestProperties
属性中,然后您就可以从该属性访问它,比如说,
performExecute()

不过,我通常建议人们重写
setRequestProperties()
,从中选择所需的值并将其存储在实例变量中

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


请参阅知识中心中的教程,以获得更全面的了解。

虽然有点晚了,但我认为这将对其他人有所帮助。
要从url获取控制器命令中的查询参数,您可以遵循本文中提到的任何一种方法 或者您也可以像下面这样尝试,获取请求属性并使用查询参数名称获取值

TypedProperty requestProp = getRequestProperties();
String item = requestProp.getString("item");
int itemQty = Integer.parseInt(requestProp.getString("qty"));
然后是您的业务逻辑。
希望这有帮助