Hi,
Further to my earlier message, I have divided the modules as follows:
---Start of MainDam.java (Main program)------
public class MainDam extends ComponentGateway {
private static XMLCFactory xmlcFactory = null;
public Document handleDefault (BComponent root, ViewContext vc,
HttpServletRequest req, HttpServletResponse resp) {
if (xmlcFactory==null) xmlcFactory = new
XMLCStdFactory(this.getClass().getClassLoader(), new StreamXMLCLogger());
XMLObject page =
xmlcFactory.create(test.presentation.MainDamHTML.class);
//create the component and bind it to the view and the model
BTemplate templateComp = new BTemplate();
templateComp.setView(new
DefaultTemplateView(page.getElementById("MainDam")));
templateComp.addModel(new MainDamModel());
templateComp.addModel(new MenuDam());
templateComp.addModel(new HeadFoot());
root.addChild(templateComp);
return page;
}
class MainDamModel extends AbstractTemplateModel {
//register the model by name
public String getName() {
return "MainDam";
}
//provide items by key
public Object getItem(String key) {
ViewContext vc = getViewContext();
if (key.equals("Title")) return "DTS main Page";
else if (key.equals("MainText")) {
XMLObject
mainText=xmlcFactory.create(test.presentation.TextDamHTML.class);
Node mainTextNode = mainText.getElementById("mainText");
return
vc.getElementFactory().getDocument().importNode(mainTextNode, true);
}
else return super.getItem(key);
}
}
}
-----end of MainDam.java ------
=====================================================
---start of HeadFoot.java -------
public class HeadFoot extends AbstractTemplateModel {
private static XMLCFactory xmlcF2 = null;
public String getName() {
return "HeadFoot";
}
public Object getItem(String key) {
ViewContext vc = getViewContext();
if (key.equals("Header")){
XMLObject header =
xmlcF2.create(test.presentation.HeaderHTML.class);
Node headerNode = header.getElementById("header");
return
vc.getElementFactory().getDocument().importNode(headerNode, true);
}
else if (key.equals("Footer")) {
XMLObject footer =
xmlcF2.create(test.presentation.FooterHTML.class);
Node footerNode = footer.getElementById("footer");
return
vc.getElementFactory().getDocument().importNode(footerNode, true);
}
else if(key.equals("Time")){
String
now=DateFormat.getTimeInstance(DateFormat.SHORT).format(new Date());
return now;
}
else return super.getItem(key);
}
}
----end of HeadFoot.java------
=================
------start of MenuDam.java --------------
public class MenuDam extends AbstractTemplateModel {
private static XMLCFactory xmlcF1 = null;
public String getName() {
return "MenuDam";
}
public Object getItem(String key) {
ViewContext vc = getViewContext();
if (key.equals("Menu")){
XMLObject menu =
xmlcF1.create(test.presentation.MenuDamHTML.class);
Node menuNode = menu.getElementById("menu");
return
vc.getElementFactory().getDocument().importNode(menuNode, true);
}
else if(key.equals("DamarMain")){
BLink blink = new BLink(" ", "/mypage", vc);
return blink;
}
else if(key.equals("PattyMain")){
BLink blink=new BLink("","/pattymain", vc);
return blink;
}
else return super.getItem(key);
}
}
----end of menuDam.java ---
==========================End of all Codes ================
With the above codes, I managed to compile and run the application, but
when I access the page, I get the following error message:
Error: 500
Internal Servlet Error:
java.lang.NullPointerException
at HeadFoot.getItem(HeadFoot.java:27)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:293)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:121)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:579)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:121)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:579)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:121)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:579)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:121)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:579)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:121)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:579)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:121)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.getNode(TemplateHelper.java:579)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.copyChildNodes(TemplateHelper.java:121)
at
org.enhydra.barracuda.core.comp.renderer.TemplateHelper.render(TemplateHelper.java:102)
at
org.enhydra.barracuda.core.comp.renderer.html.HTMLTemplateRenderer.renderComponent(HTMLTemplateRenderer.java:113)
at
org.enhydra.barracuda.core.comp.BComponent.renderView(BComponent.java:563)
at
org.enhydra.barracuda.core.comp.BComponent.render(BComponent.java:458)
at
org.enhydra.barracuda.core.comp.BComponent.render(BComponent.java:476)
at
org.enhydra.barracuda.core.comp.BComponent.render(BComponent.java:388)
at
org.enhydra.barracuda.core.comp.helper.ComponentGateway.handleDefault(ComponentGateway.java:274)
at
org.enhydra.barracuda.core.comp.helper.ComponentGateway.doGet(ComponentGateway.java:174)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServiceInvocationHandler.method(Unknown
Source)
at org.apache.tomcat.core.ServletWrapper.handleInvocation(Unknown
Source)
at org.apache.tomcat.core.ServletWrapper.handleRequest(Unknown
Source)
at org.apache.tomcat.core.Context.handleRequest(Unknown Source)
at
org.enhydra.servlet.servletManager.ServletManager.service(Unknown Source)
at
org.enhydra.servlet.connectionMethods.http.HttpHandler.doARequest(Unknown
Source)
at
org.enhydra.servlet.connectionMethods.http.HttpHandler.processRequests(Unknown
Source)
at
org.enhydra.servlet.connectionMethods.http.HttpHandler.run(Unknown Source)
at java.lang.Thread.run(Thread.java:536)
=================
HeadFoot.java line 27 is:
XMLObject header = xmlcF2.create(test.presentation.HeaderHTML.class);
The above line plus the other messages, what I have not done correctly?
Any pointers would be highly appreciated.
Thanks once again, and apology for the lengthy message.
Damar
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.