铁手剑谱

上善若水
数据加载中……

Oracle的JSF和EJB3策略

 

在JavaOne 2005大会上,Oracle的资深副总裁Thomas Kurian进行了一次主题演讲,展示了Oracle在构建和维护面向服务架构(SOA)方面的观点和解决方案。

Kurian表示,Oracle的“新应用蓝图”将采用JSF实现用户界面,用BPEL(业务流程执行语言)描述业务流程,用EJB 3.0开发业务逻辑。该计划还将借助web service和Java业务整合规范来整合遗留系统。

Kurian表示在这个应用蓝图中,JSF和EJB 3.0(主要用于对象持久化)将扮演非常重要的角色。

全文请看:http://www.javaworld.com/javaworld/jw-06-2005/jw-0629-iw-oracle_p.html

希望ADF Faces早些正式发表。不过JD免费之后,希望Oracle再将ADF的许可搞得友好一些。

posted @ 2005-07-04 17:31 铁手 阅读(1657) | 评论 (0)编辑 收藏
Struts秘籍之第2段:第3.10式:过滤文本输入

第3.10式. 过滤文本输入

问题

你想要渲染包含HTML标记的数据,并且希望该数据被浏览器当作HTML标记解释和处理。

动作要

很简单,可以使用:

<bean:write name="myForm" property="freeText" filtered="false"/>

 

在使用JSTL时,你也可以使用未过滤的值:

<c:out value="${myForm.freeText}" escapeXml="false"/>

 

动作变化

在你使用Struts bean:write标签来产生文本时,默认情况下任何对HTML处理敏感的字符都要被它们的对等实体代替。例如,大于号字符(>) 将被替代为&gt;字符实体。这种特征称为是响应过滤( response filtering),默认情况下是激活的。在大多数情况下,过滤正是希望的行为,因为未经过滤的文本可能被浏览器误解释。Table 3-4 列出了被bean:write标签过滤的字符和它们的对应实体。

Table 3-4. 被过滤的字符

字符名称

字符值

替代实体

大于

&lt;

小于

&gt;

&符号

&

&amp;

双引号

"

&quot;

反斜杠

\

&#39;

 

但是有时候,你希望被渲染的文本中包括HTML 标签。假设你有一个在线日志应用,允许用户输入将要显示在一个页面中的文本。允许使用HTML 标签将使得用户可以那些可以格式化文本的标记。文本中可能包含超链接,不同的字体,以及图像等等。在其他情形下,你的应用可能可能还会从其他来源,比如另一个URL,一个XML文件,一个Web Service或者数据库中,获得HTML模板文本。

通过将bean:write标签的filtered属性设置为false,你就可以告诉Struts标签不要使用相应的实体替换 tag not to 特殊字符。首先,我们来看一下过滤是如何工作的。假设一个用户在表单中输入了下面的文本:

Apache Struts Web Framework <b>rocks</b>!

 

现在这个文本将被bean:write标签来渲染显示。当filtered 属性设施为true时,特殊字符将被其对等物替换,这样文本看起来就会是:

Apache Struts Web Framework &lt;b&gt;rocks&lt;/b&gt;!

这很有可能不是用户所想要的。他想要的是"Apache Struts Web Framework rocks!"。但是,因为意图是想要允许用户输入装饰文本的HTML标签,那么将filtered属性设置为false 就会得到正确的渲染:

Apache Struts Web Framework <b>rocks</b>!

 

浏览器将认识这个标签,并且按其所愿正确的应用HTML 标记。

这在渲染一个Web页面时式一个有用的机制。但是,在使用这个方法时必须足够小心。如果数据是没有过滤的,那么就可能会危及渲染后的 HTML页面的布局,整个页面可能会看起来遭到破坏。例如,假定下面的文本被输入:

Apache Struts Web Framework <b>rocks<b>!

 

咋看起来,这没什么问题。但是,注意到b元素的后面一个关闭标签的斜杠缺失了。这个错误很容易发生,而且这可能会使得页面中后面的所有文本都是粗体。

不幸的是,要避免这类错误是很困难的。最好还是试图确保输入的数据都是正确有效的HTML。还有个选择就是通过XML 解析器来处理输出。它会检测诸如标记不匹配之类的问题。你还可以通过一些能够试图纠正问题的解析器来完成,比如Jtidy。最后,如果数据是来自于非受控的来源,你可以选择完全不允许HTML。如果你还想使用一些文本装饰功能的话,还可以考虑使用WikiText 或者UBB Code之类的格式表示来替代。

相关动作

JTidy 提供了一个命令行接口和Java API 来解析和整理HTML。关于JTidy 的细节请访问http://jtidy.sourceforge.net

UBBCode 是PHP本身支持的一种标记格式。也可以在Java中处理UBBCode。一个解析UBBCode 的PHP函数,有人在Java中重写了,地址可见:http://www.firegemsoftware.com/other/tutorials/ubb.php.

posted @ 2005-07-01 09:57 铁手 阅读(2336) | 评论 (2)编辑 收藏
《JavaServer Faces in Action中文版》

本书翻译工作已经完成,正在修订和联系出版事宜。
样章可以在这里下载
请大家在这里留下意见。也欢迎发送给您的朋友。

posted @ 2005-06-30 18:32 铁手 阅读(23143) | 评论 (138)编辑 收藏
Struts秘籍之第2段,第 3.9式,产生动态选择列表项目

     摘要: 最近忙,好久没来这里写东西了。今天抽点时间继续。上周去北京,坐火车去,在火车上阅读《Core J2EE Patern》,想起再上一次去北京,也是坐火车,也是阅读这本书,不过那次是第1版。还有巧的是,去时铺位是16车16号,来时居然又买到16车16号,不过是上铺。真是有点意思。     Recipe 3.9. 产生动态选择列表项目 问题 你想要基于同一个表单中的另一个字...  阅读全文

posted @ 2005-06-29 10:05 铁手 阅读(3679) | 评论 (9)编辑 收藏
Struts秘籍之第2段:第3.8式:使用JavaScript动态改变选择项

     摘要: 第3.8式. 使用JavaScript动态改变选择项 问题 你希望使用JavaScript 来根据从应用模型中获得的数据来动态设置显示在一个HTML select元素中的条目。 动作要领 使用Struts logic:iterate标签来为不同的选项集创建JavaScript 数组。然后使用JavaScript 的onchange事件句柄来在运行时修改options集。Example 3-...  阅读全文

posted @ 2005-06-08 12:34 铁手 阅读(5988) | 评论 (4)编辑 收藏
仅列出标题
共26页: First 上一页 14 15 16 17 18 19 20 21 22 下一页 Last