Struts2标签库使用:i18n与text标签实战

需积分: 20 1 下载量 12 浏览量 更新于2024-08-18 收藏 935KB PPT 举报
"本文主要介绍了Struts2框架中使用的`in`和`text`标签以及OGNL表达式语言的应用。" 在Struts2框架中,`in`和`text`标签是用于处理国际化(i18n)和文本显示的重要组成部分。首先,要设置`text`标签工作,我们需要确保Action类继承自`ActionSupport`,因为这个基类提供了对国际化的支持。创建一个名为`TextTagAction`的类,并让它继承自`ActionSupport`。在示例中,`TextTagAction`类无需额外代码,只要能够返回`Action.SUCCESS`,以便能够跳转到使用`text`标签的结果页面。 `in`和`text`标签的工作原理是,它们会查找与Action类名匹配的资源包(properties文件)。资源包通常包含各种语言的字符串,使得应用可以根据用户的地区设置显示相应的文本。`text`标签可以用来显示这些资源包中的文本,从而实现多语言支持。 接下来,我们讨论一下OGNL(Object-Graph Navigation Language)。OGNL是一种强大的表达式语言,它允许开发者以简洁的方式访问和操作对象的属性。例如,如果根对象是`user1`,那么`person.address[0].province`这样的OGNL表达式就能获取`user1`的`person`属性中的第一个`address`对象的`province`属性。OGNL的强大之处在于它可以遍历对象的结构图,执行方法,甚至进行类型转换。 在Struts2中,OGNL被广泛用于界面数据绑定。这意味着我们可以直接将界面元素(如文本框、隐藏域等)与模型层对象的属性关联起来,使得界面的修改和显示能与后端数据自动同步。相比于Struts1.x中的FormBean,使用OGNL无需为每个页面单独创建FormBean,而是直接利用对象层的对象。例如,如果有`User`和`Person`两个对象,且一个注册页面需要填写这两个对象的信息,可以使用`user.person.xxx`和`user.xxx`这样的OGNL表达式进行绑定。 Struts2的`in`和`text`标签是实现国际化的关键,而OGNL作为强大的表达式语言,使得数据绑定和对象属性的访问变得更加灵活和高效。理解并熟练运用这些概念,对于开发高质量的Struts2应用至关重要。