Oracle Commerce Droplets
Droplets
Droplet is a Servlet Bean to dynamically generate HTML from a Java Object. It minimizes the amount of Java code that has to appear in HTML and amount of HTML that has to be hard-coded into Java classes.
DAF (Dynamo Application Framework) comes with a set of out-of-the-box droplets that can be used. The user can also create their own custom droplets based on their need.
Writing a Droplet
- Write a java class extending the atg.servlet.DynamoServlet class.
- Override service() method and write the required logic here.
- Identify appropriate Input parameters that will be passed to droplet and OPARAMS the droplet will render and also various output parameters the droplet will set in the request.
- Write the BeanInfo class and define all the necessary parameters in that.
- Make droplet into a component using the ATG Component Browser.
- Embed droplet in a JSP page using the <dsp:droplet> tag and pass the necessary parameters.
- Use OPARAM tags to mix the HTML content and the dynamic values returned by the droplet.
Below is example of Custom Droplet (Java Code)
class MyDemo extends atg.servlet.DynamoServlet{
private String demo;
public void setDemo(String demo){
this.demo = demo;
}
public String getDemo(){
return this.demo;
}
public void service(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse){
some code....
pRequest.setParameter("outputDemo" , "DemoName: " + this.getDemo());
pRequest.serviceParameter("output", pRequest, pResponse);
}
}
How to use Droplets in a JSP
Below is how we use it.
<dsp:page>
some code...
<dsp:importbean bean="/atg/dynamo/droplet/ForEach"/>
some code...
<body>
<dsp:droplet name="ForEach">
<dsp:param name="array" value="someList">
<dsp:oparam name="output">
<H1><dsp:valueof param="element.demo">
</dsp:oparam>
</dsp:droplet>
</body>
</dsp:page>
Import statements
<dsp:importbean bean=”/atg/dynamo/droplet/ForEach”/>
Use droplet using following tag
<dsp:droplet name=”ForEach”>
Passing parameters to droplet.
<dsp:param name=”array” value=”someList”>