활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.
활동이 없어 이 대화는 잠겼습니다. 새 게시물을 작성해 주세요.
Hi,
I am trying to create a Video Component, that will look like Image component(just drag and drop the asset).
This is how I build the dialog:
<video
jcr:primaryType="nt:unstructured"
sling:resourceType="cq/gui/components/authoring/dialog/fileupload"
autoStart="{Boolean}false"
class="cq-droptarget"
fieldLabel="Image asset"
fileNameParameter="./fileName"
fileReferenceParameter="./fileReference"
mimeTypes="[video/quicktime]"
multiple="{Boolean}false"
name="./video"
title="Upload Image Asset"
uploadUrl="${suffix.path}"
useHTML5="{Boolean}true"/>
But, I can not return the path from the java model.
해결되었습니다! 솔루션으로 이동.
조회 수
답글
좋아요 수
@AD-EngineerCan you try this:
Remove ValueMapValue annotation and add below method
@PostConstruct protected void initModel() { video = componentResource.getValueMap().get("fileReference", String.class); }
Hi @AD-Engineer
Can you try the dailog field as a path field rather than the fileupload?
Thanks,
Kiran Vedantam
Hi @AD-Engineer ,
You need to used filereference in sling model to access the path of video.
Regards,
Sanjay
@Sanjay_Bangar yes but how?
this is my method:
public String getVideo() { return video; }
It is not returning anything
Hi @AD-Engineer, could you please share part of code responsible for video variable initialization,. How video value is set in you sling model?
Ok, so assuming that video variable represents path to asset, I would suggest to do following change in your code
@ValueMapValue(name = "fileReference") private String video;
Current behavior is correct because video is not representing any specific property in the repository it's defining node name.
@AD-Engineer Could you please share the entire sling model source code?
@Model( adaptables = {SlingHttpServletRequest.class}, adapters = {VideoComp.class}, resourceType = {ResourceType.Constants.VIDEO_COMP}, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL ) @Slf4j public class VideoCompImpl implements VideoComp { @Inject Resource componentResource; @OSGiService private ModelFactory modelFactory; @Self private SlingHttpServletRequest request; @ValueMapValue(name = "fileReference") private String video; @Override public boolean isEmpty() { return false; } @Override public String getVideo() { return video; } }
@AD-EngineerCan you try this:
Remove ValueMapValue annotation and add below method
@PostConstruct protected void initModel() { video = componentResource.getValueMap().get("fileReference", String.class); }