![](/img/trans.png)
[英]How to get url request parameter from inside LIferay/IceFaces/JSF portlet backing bean
[英]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.