How to bind custom servlet in asset metadata schema for dynamic dropdown?? | Community
Skip to main content
Level 4
March 8, 2018

How to bind custom servlet in asset metadata schema for dynamic dropdown??

  • March 8, 2018
  • 4 replies
  • 10756 views

Anyone bind custom servlet in asset metadata schema for dynamic dropdown? We are able to fetch the dynamic values from JSON file, but not sure how it work with servlet.

http://blogs.adobe.com/contentmanagement/2018/01/03/using-a-json-file-with-the-dropdown-widget-on-the-metadata-schema/

I am getting the same response mention in the blog from servlet but not getting what need to pass in JSON PATH field of metadata schema to call servlet

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

4 replies

navinkaushal
Level 4
March 8, 2018

If I understand correctly you want servlet to provide the metadata instead of JSON file (as mentioned in blog)?

An1-3Author
Level 4
March 8, 2018

Yes Navin. If you see the image available in blog has one property JSON PATH which is pointing to one .json file which is avaible in aem and providing yuu response . Instead of that i want to give servlet path which will provide the response

An1-3Author
Level 4
March 8, 2018

I am not sure how to provide that path of servlet to get the response . Even you will see the blog comments, someone have asket the same quetion. I had tried to give the servlet path eg: /bin/dummyservlet.json  or /bin/dummyservlet.options.json or /bin/dummyservlet, but noting work for me. i am getting response servlet in below format

{"options":[{"value":"US","text":"United States"},{"value":"UK","text":"United Kingdom"}]}

navinkaushal
Level 4
March 8, 2018

You need to give servlet path and it should return the JSON data.

Also please make sure your content-type header should be set as application/json data type while returning the output.

khamat_bn
Level 4
June 10, 2019

Hi Buddy,

Did you got the answer of this.

Level 2
February 4, 2021

Hi, I am replying on an old thread. But I had the similar problem and not found any solution so tried some custom approach and able to achieve this.

Solution:

1. overlay/customise default  metadataschema using metadataschema editor.(http://www.sgaemsolutions.com/2017/02/overrideoverlay-dam-asset-metadata-in.html )

2. Add custom dropdown field using datasource object to populate dropdown.

https://helpx.adobe.com/experience-manager/using/aem65_coral_resourcetypes.html#UseaDataSourceObjecttopopulateaSelectfield 

 

For Example: I have added below dropdown in my metadataschema dialog xml to dynamically populate dropdown from my servlet

 <_x0031_612365521559
                                        jcr:primaryType="nt:unstructured"
                                        sling:resourceType="dam/gui/components/admin/schemafield"
                                        emptyText="Select Option"
                                        fieldLabel="Collections"
                                        name="./jcr:content/metadata/test"
                                        resourceType="granite/ui/components/coral/foundation/form/select">
                                    <granite:data
                                            jcr:primaryType="nt:unstructured"
                                            choicesCascading="default"
                                            cq-msm-lockable="./metadata/test"
                                            metaType="dropdown"
                                            requiredCascading="default"
                                            visibilityCascading="default"/>
                                    <datasource
                                            jcr:primaryType="nt:unstructured"
                                            sling:resourceType="<servlet resourceType>"
                                            addNone="{Boolean}true"/>
                                    <cascadeitems
                                            jcr:primaryType="nt:unstructured"
                                            sling:resourceType="dam/gui/coral/components/admin/schemaforms/formbuilder/cascadeitems"/>
                                </_x0031_612365521559>