后台:编辑器区域的 CSV 上传功能
Backoffice : CSV Upload Functionality in Editor Area
SAP 商务 1811
我有一种自定义类型,例如“CustomType”,它具有一个类型为 MediaModel 的媒体属性。我的要求是在编辑区使用拖放编辑器上传 CSV 媒体。
所以我使用 com.hybris.cockpitng.editor.defaultfileupload.FileUploadResult
类型的 OOTB com.hybris.cockpitng.editor.dndfileupload
并应用于我的媒体属性。
<attribute type="com.hybris.cockpitng.editor.defaultfileupload.FileUploadResult" editor="com.hybris.cockpitng.editor.dndfileupload" qualifier="media">
<editor-parameter>
<name>accept</name>
<value>text/csv</value>
</editor-parameter>
</attribute>
现在我创建了一个自定义后台操作,例如“UploadMedia”并在“CustomType”的 editorareaactions
中配置。
当我上传 csv 媒体并点击我的动作时,在我的动作控制器中,我试图获取上传的 FileUploadResult 媒体,但它总是给出空值。
@Override
public ActionResult<Object> perform(final ActionContext<TargetGroupModel> ctx)
{
final WidgetModel model = (WidgetModel) ctx.getParameter(ActionContext.PARENT_WIDGET_MODEL);
if (model != null)
{
final FileUploadResult result = model.getValue("currentObject.media", FileUploadResult.class);
System.out.println(result.getData()); // result is always NULL
}
return new ActionResult<>(ActionResult.SUCCESS);
}
奇怪的是,在调试时,如果我检查 WidgetModel,我可以看到这个键“currentObject.media”,值在那里。
有帮助吗?
我通过使用 Map
类型转换 ctx.getParameter(ActionContext.PARENT_WIDGET_MODEL)
并使用 currentObject.media
键获取值解决了这个问题。
工作代码
@Override
public ActionResult<Object> perform(final ActionContext<TargetGroupModel> ctx)
{
final Map map = (Map) ctx.getParameter(ActionContext.PARENT_WIDGET_MODEL);
if (map != null)
{
final FileUploadResult result = map.get("currentObject.media");
System.out.println(result.getData());
}
return new ActionResult<>(ActionResult.SUCCESS);
}
SAP 商务 1811
我有一种自定义类型,例如“CustomType”,它具有一个类型为 MediaModel 的媒体属性。我的要求是在编辑区使用拖放编辑器上传 CSV 媒体。
所以我使用 com.hybris.cockpitng.editor.defaultfileupload.FileUploadResult
类型的 OOTB com.hybris.cockpitng.editor.dndfileupload
并应用于我的媒体属性。
<attribute type="com.hybris.cockpitng.editor.defaultfileupload.FileUploadResult" editor="com.hybris.cockpitng.editor.dndfileupload" qualifier="media">
<editor-parameter>
<name>accept</name>
<value>text/csv</value>
</editor-parameter>
</attribute>
现在我创建了一个自定义后台操作,例如“UploadMedia”并在“CustomType”的 editorareaactions
中配置。
当我上传 csv 媒体并点击我的动作时,在我的动作控制器中,我试图获取上传的 FileUploadResult 媒体,但它总是给出空值。
@Override
public ActionResult<Object> perform(final ActionContext<TargetGroupModel> ctx)
{
final WidgetModel model = (WidgetModel) ctx.getParameter(ActionContext.PARENT_WIDGET_MODEL);
if (model != null)
{
final FileUploadResult result = model.getValue("currentObject.media", FileUploadResult.class);
System.out.println(result.getData()); // result is always NULL
}
return new ActionResult<>(ActionResult.SUCCESS);
}
奇怪的是,在调试时,如果我检查 WidgetModel,我可以看到这个键“currentObject.media”,值在那里。
有帮助吗?
我通过使用 Map
类型转换 ctx.getParameter(ActionContext.PARENT_WIDGET_MODEL)
并使用 currentObject.media
键获取值解决了这个问题。
工作代码
@Override
public ActionResult<Object> perform(final ActionContext<TargetGroupModel> ctx)
{
final Map map = (Map) ctx.getParameter(ActionContext.PARENT_WIDGET_MODEL);
if (map != null)
{
final FileUploadResult result = map.get("currentObject.media");
System.out.println(result.getData());
}
return new ActionResult<>(ActionResult.SUCCESS);
}