繁体   English   中英

如何在Websphere Commerce bean中获取Url参数?

[英]How to get Url Parameter in websphere commerce bean?

我正在尝试获取URL,尝试了以下两种方法,但命令上下文为'null'。 也尝试过其他方法,但每次都无效。

  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

我需要获取“项目”和“数量”。

已经有点晚了,但是我认为这对其他人会有帮助。
要从url获取控制器命令中的查询参数,您可以按照本教程中提到的任一种方法进行操作,也可以尝试如下所示,使用查询参数名称获取请求属性并获取值

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

其次是您的业务逻辑。
希望这可以帮助。

您没有提到需要参数值的上下文,因此我假设您正在为Controller Command编写业务逻辑。

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

此方法的默认实现(在com.ibm.commerce.commands.ControllerCommandImpl )将仅将其存储在requestProperties属性中,然后您可以从该属性中访问它,例如performExecute()

我通常建议人们重写setRequestProperties()以选择他们想要的值并将它们存储在实例变量中。

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

请参阅知识中心的“ 创建业务逻辑”教程,以获取更全面的演练。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM