Java 如何在WebSphereCommerceBean中获取Url参数?
我正在尝试获取URL,尝试了以下两种方法,但得到了'null'commandContext。也尝试了其他方法,但每次都为空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
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"));
然后是您的业务逻辑。希望这有帮助