java对象转换html元素,如何从Java对象生成html?

本文介绍了如何使用Java将对象转换为HTML,包括推荐的库如jwebutils和Jakarta ECS,以及展示了一个简单的自定义Java类`ListToHtmlTransformer`的示例,该类用于将报告标题集合渲染为HTML列表。代码示例中强调了线程安全性和HTML验证的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Basil Bourqu..

9

对于简单的HTML,直接将其生成为文本.序列化,XML和转换的其他建议都是过度的.

有一些Java库可以帮助生成HTML,例如:

jwebutils

使用Java创建HTML 5标记的库.它还包含对创建JSON和CSS 3标记的支持.

Jakarta Element Construction Set(ECS)

用于为各种标记语言生成元素的Java API,它直接支持HTML 4.0和XML.现在退休了,但有些人真的喜欢它.

但是,如果您了解有效HTML的基础知识,您可以编写自己的例程.

至于速度,添加StringBuilder类是为了更快地进行字符串操作.权衡是不同步的.这意味着不是线程安全的.根据程序的结构,您可以在执行HTML呈现的代码外部使用同步.

这是我刚刚在Java 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( "\n" );

html.append( "\n" );

html.append( "

\n" );

html.append( "\n" );

html.append( "

Report of Reports\n" );

html.append( "\n\n" );

html.append( "

\n" );

html.append( "

List of Reports

\n" );

// Make a list in HTML

html.append( "

  • \n" );

// Loop the list of reports passed as argument.

for ( String report : reports ) {

html.append( "

" + report + "\n" );

}

html.append( "

\n" );

html.append( "\n\n" );

html.append( "" );

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 ***" );

}

}

我试图在这里发布渲染的HTML,但StackOverflow试图将其解释为HTML而不是显示它.

额外提示:您可以在HTML和CSS中使用单引号(APOSTROPHE Unicode 39)而不是双引号(QUOTATION MARK Unicode 34)来分隔属性值等.浏览器处理得很好.单引号使您的Java代码编码变得更加容易,无需转义双引号.请注意我在上面的代码中的用法,例如'en'和'utf-8'.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值