सरल HTML के लिए, इसे सीधे टेक्स्ट के रूप में उत्पन्न करें। धारावाहिक, एक्सएमएल, और परिवर्तन के अन्य सुझाव सभी ओवरकिल हैं।
लेकिन यदि आप वैध HTML की मूल बातें सीखते हैं, तो आप अपनी खुद की दिनचर्या लिख सकते हैं।
गति के लिए, StringBuilder कक्षा तेज स्ट्रिंग मैनिपुलेशन के उद्देश्य के लिए जोड़ा गया था। ट्रेडऑफ कोई सिंक्रनाइज़ेशन नहीं है। इसका मतलब धागा-सुरक्षित नहीं है। आपके प्रोग्राम को कैसे संरचित किया जाता है, इस पर निर्भर करते हुए, आप HTML प्रतिपादन करने वाले कोड के बाहर सिंक्रनाइज़ेशन का उपयोग कर सकते हैं।
यहां एक उदाहरण वर्ग है जिसे मैंने अभी जावा 6 में पकाया है, और इसे चलाने के लिए एक छोटा ऐप है। यह कोड केवल अवधारणा का सबूत है, प्राइम टाइम उत्पादन के लिए तैयार नहीं है।
package com.example;
/**
* @author Basil Bourque
* © 2012 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
*/
public class ListToHtmlTransformer {
/**
* @param collection
* of report titles.
* @return string containing source code for HTML5.
*/
public String render(java.util.Collection<String> reports) {
// This source code is not yet tested or made bullet-proof. Only meant for demonstrating concepts.
// Warning: This code is not thread-safe. Changes must be made before serious use.
// Warning: This code should be modified to produce proper HTML, such as escaping certain characters.
// This code generates minimal HTML5 as suggested here: http://www.brucelawson.co.uk/2010/a-minimal-html5-document/
// Big tip: Note that HTML allows the use of apostrophe (single-quote) in place of double-quote. Mixes better with Java source code.
// The backslash + 'n' is an escape sequence in Java to generate a linefeed (Ascii/Unicode 10) for use here as a NewLine.
// In real life, you woud test your rendered HTML with an HTML validator such as:
// • http://html5.validator.nu/
// • http://validator.w3.org/
StringBuilder html = new StringBuilder();
html.append("<!doctype html>\n");
html.append("<html lang='en'>\n");
html.append("<head>\n");
html.append("<meta charset='utf-8'>\n");
html.append("<title>Report of Reports</title>\n");
html.append("</head>\n\n");
html.append("<body>\n");
html.append("<h1>List of Reports</h1>\n");
// Make a list in HTML
html.append("<ul>\n");
// Loop the list of reports passed as argument.
for (String report : reports) {
html.append("<li>" + report + "</li>\n");
}
html.append("</ul>\n");
html.append("</body>\n\n");
html.append("</html>");
return html.toString();
}
}
और इसे चलाने के लिए एक ऐप।
package com.example;
import java.util.ArrayList;
/**
*
* @author Basil Bourque
* © 2012 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
*/
public class App {
/**
* @param args
*/
public static void main(String[] args) {
ArrayList<String> listOfReports = new ArrayList<String>();
listOfReports.add("Some report #1");
listOfReports.add("Some report #2");
listOfReports.add("Some report #3");
listOfReports.add("Some report #4");
listOfReports.add("Some report #5");
listOfReports.add("Some report #6");
ListToHtmlTransformer renderer = new ListToHtmlTransformer();
String renderedHtml = renderer.render(listOfReports);
System.out.println("The following HTML was rendered: " + new java.util.Date().toString());
System.out.println(renderedHtml);
System.out.println("*** End of HTML ***");
}
}
मैं यहाँ प्रदान की गई एचटीएमएल पोस्ट करने के लिए कोशिश की, लेकिन StackOverflow HTML के रूप में व्याख्या की बजाय इसे प्रदर्शित करने की कोशिश की।
बोनस टिप: आप अपने एचटीएमएल & सीएसएस में डबल-कोट (कोटेशन मार्क यूनिकोड 34) के बजाय एकल-कोट (एपोस्ट्रोफ़ यूनिकोड 34) का उपयोग कर सकते हैं, विशेषता गुणों को सीमित करने के लिए। ब्राउज़र दोनों अच्छी तरह से संभालते हैं। एकल-कोट आपके जावा कोड में कोडिंग को इतना आसान बनाता है, जिससे डबल-कोट अंक से बचने की आवश्यकता समाप्त हो जाती है। ऊपर दिए गए कोड में मेरा उपयोग नोटिस करें, जैसे कि 'en'
और 'utf-8'
।
क्या सभी ग्राहक क्लाइंट-साइड ट्रांसफॉर्मेशन का समर्थन करते हैं? – radai
सब कुछ नहीं। लेकिन आधुनिक वेब ब्राउज़र करते हैं - http://www.w3schools.com/XSL/xsl_browsers.asp –
मैंने एक्सएसएलटी का उपयोग करने के बारे में सोचा, क्या आपको कोई जानकारी है कि रिपोर्ट की सूची से जेनरेट किए गए एक्सएमएल में प्रसंस्करण निर्देश को कैसे शामिल किया जाए javax.xml.bind.annotation.XmlRootElement के साथ एनोटेटेड? – Marmoy