1700485094
1700485095
比如图片放在什么地方,字体大小是什么样子,菜单应该放置在什么地方,这部分工作是由前台人员开发的,不涉及业务逻辑和业务数据。
1700485096
1700485097
❑动态页面元素
1700485098
1700485099
它指的是在一个固定场景下不发生变化但在异构场景中发生变化的元素,其中语言就属于动态页面元素,还有为使用不同浏览器而开发的代码。比如现在浏览器版本太多了,像IE、Firefox、Chrome等等,虽然基本上都是符合HTML,但是还有一些细节差异,特别是在JavaScript的处理方面,稍不注意就可能产生灾难。
1700485100
1700485101
❑动态数据
1700485102
1700485103
由模型产生的数据,它对视图来说是结构固定,并可反复加载。
1700485104
1700485105
在这三部分中,静态页面是完全静态的,动态页面元素是稍微有点动感,动态数据完全是多变的(数据结构不发生变化,否则页面无法展现)。把动态数据融入到静态页面中比较容易,已经在配置文件中指定要把模型中的数据放到哪个页面中,现在的问题是怎么把动态页面元素融入到静态页面中。静态页面有很多,语言类型也有很多,怎么融合在一起提供给浏览器访问呢?
1700485106
1700485107
桥梁模式可以解决用什么笔(圆珠笔、铅笔)和画什么图形(圆形、方形)的问题,我们遇到的问题与此场景类似。先看类图,如图38-7所示。
1700485108
1700485109
1700485110
1700485111
1700485112
图38-7 视图与语言类图
1700485113
1700485114
大家还记得Struts是怎么配置多语言的文件吗?我们采用类似的结构,如代码清单38-18所示。
1700485115
1700485116
代码清单38-18 资源配置文件
1700485117
1700485118
title=标题
1700485119
1700485120
menu=菜单
1700485121
1700485122
英文配置菜单与此类似,它的结构就是一个Map类型,我们把它读入到Map中,抽象类如代码清单38-19所示。
1700485123
1700485124
代码清单38-19 抽象语言
1700485125
1700485126
public abstract class AbsLangData{
1700485127
1700485128
//获得所有的动态元素的配置项
1700485129
1700485130
public abstract Map<String,String>getItems();
1700485131
1700485132
}
1700485133
1700485134
getItems方法是获得一种语言下的所有配置。我们来看中文语言包,如代码清单38-20所示。
1700485135
1700485136
代码清单38-20 中文语言
1700485137
1700485138
public class GBLangData extends AbsLangData{
1700485139
1700485140
@Override
1700485141
1700485142
public Map<String,String>getItems(){
1700485143
[
上一页 ]
[ :1.700485094e+09 ]
[
下一页 ]