打字猴:1.7004851e+09
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 ]  [ 下一页 ]