Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

How to get node properties from path in a multifield

Avatar

Level 1

I am using a multi field where pathfield is the input of the dialog....From this path i need to fetch its node properties to get its jcr:title,jcr:description......

Please help me ASAP.....

<%@ page import="org.apache.sling.commons.json.JSONObject" %>

<%@ page import="java.io.PrintWriter" %>

<%@include file="/libs/foundation/global.jsp" %>

<%@page session="false" %>

<div style="display: block; border-style: solid; border-width: 1px; margin: 10px; padding: 10px">

<b>Multi Field Sample Dashboard</b>

<br><br>

///Code for multifield

<%

    try

{

        String[] dashboards = { "iItems", "uItems" } ;

for(String dash : dashboards)

{

            Property property = null;

if (currentNode.hasProperty(dash))

{

property = currentNode.getProperty(dash);

}

if (property != null)

{

JSONObject obj = null;

Value[] values = null;

          if (property.isMultiple())

{

values = property.getValues();

}

else

{

values = new Value[1];

                    values[0] = property.getValue();

               }

                for (Value val : values)

{

obj = new JSONObject(val.getString());

%>

/////This is my code to convert path to node...

<%

    String componentPath = "<%=obj.get("path")%>/jcr:content"; //path to component

    Node node = resourceResolver.getResource(componentPath).adaptTo(Node.class);

    String title = node.getProperty("jcr:title").getString();

    String text = node.getProperty("jcr:primaryType").getString();

           %>

                   

<br><br>

<%

                    }

         

      } else {

%>

         

         

       

            <br><br>

<%

                }

   

    }

    }

catch (Exception e)

{

        e.printStackTrace(new PrintWriter(out));

 

  }

%>

</div>

After giving my code inside the loop ,,,the whole loop is getting error .what changes do i need to make in this code to get the path from dialog and fetch its node properties.........

1 Accepted Solution

Avatar

Correct answer by
Level 5

Hi praveen,

<%=<variable>%> so this tag is used for

  • Expression tag evaluates the expression placed in it.
  • It accesses the data stored in stored application.
  • It allows create expressions like arithmetic and logical.
  • It produces scriptless JSP page.

For more information https://www.guru99.com/jsp-elements.html

In this line

    String componentPath = "<%=obj.get("path")%>/jcr:content"; //path to component

without closing the script tag you are putting <%= ..%> this cause of problem their is no need of this.It make the syntax error in your code

Write in this way

String componentPath = obj.get("path") + "/jcr:content";

will work.

Try this and let me know this is Helpful

View solution in original post

2 Replies

Avatar

Community Advisor

Need more details...

-Which version of AEM are you working on? JSONObject is not available in 6.3...

-What is the exception you are getting?

- Can share sample package with issue

Avatar

Correct answer by
Level 5

Hi praveen,

<%=<variable>%> so this tag is used for

  • Expression tag evaluates the expression placed in it.
  • It accesses the data stored in stored application.
  • It allows create expressions like arithmetic and logical.
  • It produces scriptless JSP page.

For more information https://www.guru99.com/jsp-elements.html

In this line

    String componentPath = "<%=obj.get("path")%>/jcr:content"; //path to component

without closing the script tag you are putting <%= ..%> this cause of problem their is no need of this.It make the syntax error in your code

Write in this way

String componentPath = obj.get("path") + "/jcr:content";

will work.

Try this and let me know this is Helpful