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
1700485144
/*
1700485145
1700485146
*Map的结构为:
1700485147
1700485148
*key=‘title’,value=‘标题’
1700485149
[
上一页 ]
[ :1.7004851e+09 ]
[
下一页 ]