Click to See Complete Forum and Search --> : Dynamic HTML from JavaBean


nedave
09-15-2008, 03:31 AM
Hi all,

I am writing a JavaBean to connect to a JSP page. I have been adding the codes for the following methods in my JavaBean

... [ Below is the JavaBean methods ]...

public String createMenuVar(Vector menu){
String script = "";
for(int i=0;i<menu.size();i++){
MenuItem menuItem = (MenuItem)menu.get(i);
if(!(menuItem.getVector() == null)){
script += "var " + (menuItem.getName() + "_" + menuItem.getDescription()).replace(" ", "_") + " = new Array(" + menuItem.getVector().size() + ");\n" +
createMenuVar(menuItem.getVector());
} // end if
}
return script;
} // end createMenuVar method

public String createMenuData(Vector menu, String parentMenu) {
String script = "";
for(int i=0;i<menu.size();i++){
MenuItem menuItem = (MenuItem)menu.get(i);
String menuVar = (menuItem.getName() + " " + menuItem.getDescription()).replace(" ", "_");
String menuName = menuItem.getName().replace(" ", "_");
String menuParent = parentMenu.replace(" ", "_");

if(!(menuItem.getVector() == null) ) {
script = script + menuVar + ".parent = " + menuParent + ";\n" +
menuVar + ".name = \"" + menuName + "\";\n" +
menuVar + ".size = " + menuItem.getVector().size() + ";\n" +
menuVar + ".index = 0; \n" +
menuVar + ".html = \"" + generateMenuHTML(menuItem.getVector(), menuItem.getName()) + "\"\n" +
createMenuData(menuItem.getVector(), menuVar) + "\n" +
createMenuObject(menuItem.getVector(), menuVar) + "\n";
System.out.println("[createMenuData] IF: " + menuParent);
System.out.println("[createMenuData] IF: " + menuName);
System.out.println("[createMenuData] IF: " + menuItem.getVector());
} // end if

else {
System.out.println("[createMenuData] Else" + menuParent);
}

} // end for
return script;
} // end createMenuData method

public String createMenuObject(Vector menu, String parentMenu) {
String script = "";

for(int i=0;i<menu.size();i++){
MenuItem menuItem = (MenuItem)menu.get(i);
String menuVar = parentMenu.replace(" ", "_");
String submenuName = (menuItem.getName() + " " + menuItem.getDescription()).replace(" ", "_");

if(!(menuItem.getVector() == null)){
script = script + menuVar + "[" + i + "] = new Object();\n" +
menuVar + "[" + i + "].hasData = true;\n" +
menuVar + "[" + i + "].name = \"" + menuItem.getName() + "\";\n" +
menuVar + "[" + i + "].display = \"" + menuItem.getDisplay() + "\";\n" +
menuVar + "[" + i + "].data = " + submenuName + ";\n";
} else{
script = script + menuVar + "[" + i + "] = new Object();\n" +
menuVar + "[" + i + "].hasData = false;\n" +
menuVar + "[" + i + "].name = \"" + menuItem.getName() + "\";\n" +
menuVar + "[" + i + "].url = \"" + menuItem.getUrl() + "\";\n" +
menuVar + "[" + i + "].display = \"" + menuItem.getDisplay() + "\";\n";
if(menuItem.getImage() != ("</image>"))
script = script + menuVar + "[" + i + "].image = \"data:image/png;base64," + menuItem.getImage() + "\";\n";
} // end else
} // end for
return script;
} // end createMenuObject method

public String generateMenuHTML(Vector data, String parentMenu) {
String html = "<ul id=\\\"" + parentMenu.replace(" ", "_") + "\\\" class=\\\"horizontal\\\" style=\\\"list-style-type:none; width: 800px; height: 200px; margin: 0; padding: 0; \\\">";
for(int i=0;i<data.size();i++) {
MenuItem menuItem = (MenuItem)data.get(i);
String display = menuItem.getDisplay();
if( display.equalsIgnoreCase("Image only") ) {
html += "<li id=\\\""+parentMenu.replace(" ", "_")+""+i+"\\\" align=\\\"center\\\" \\\"><img id=\\\""+parentMenu.replace(" ", "_")+"_image"+i+"\\\" alt=\\\"\\\" src=\\\"data:image/png;base64,"+ menuItem.getImage() + " \\\" width=\\\"68\\\" height=\\\"68\\\" \\\"/></li>";
} // end if

else if( display.equalsIgnoreCase("Image and Text") ) {
html += "<li id=\\\""+parentMenu.replace(" ", "_")+""+i+"\\\" align=\\\"center\\\" \\\">"+menuItem.getName()+"<img id=\\\""+parentMenu.replace(" ", "_")+"_image"+i+"\\\" alt=\\\"\\\" src=\\\"data:image/png;base64,"+ menuItem.getImage() + "\\\" width=\\\"68\\\" height=\\\"68\\\" \\\"/></li>";
} // end else if

else {
html += "<li id=\\\""+parentMenu.replace(" ", "_")+""+i+"\\\" align=\\\"center\\\" \\\">" +menuItem.getName()+"</li>";
} // end else

} // end for
html += "</ul>";
return html;
} // end generateMenuHTML method

... [ Below are other JavaBean methods ]...

Can anyone guide me as how can I prevent from generating dynamic HTML into the JSP files using innerHTML property? (No tag libraries or any frameworks can be used though cuz the client doesn't want any of them.

Regards
Nedave

Khalid Ali
09-15-2008, 04:41 PM
dont understand clearly what you are after....see innerHTML is a javascript property so it is out of scope for a jsp page..
Please elaborate/rephrase the issue or the actual question