公告

导航

最新更新

新回复

留言

blog信息

链接















 


welcome to the John blog world
涂亮需要的资料
tuming 发表于 2006-12-27 16:04:16

*****************
一本:西南大学
二本:大连大学 宁夏大学 湖南工业大学 齐齐哈尔大学
     兰州交通大学 广东海洋大学 天津财经大学 南京财经大学
*****************


“211工程”学校名单
http://www.eol.cn/article/20030911/3090736.shtml

-------------------------西南大学---------------------------------

学校网址: http://www.swnu.edu.cn/index.jsp
学校美术学院网址: http://cyber.swnu.edu.cn/msx/

---是不是211或者985工程
是211工程

---在湖北招生人数
2006西南大学(美术学院)招生简章的网址:
http://artist.io/art_school/6/3/1/200601/17039.html
http://cyber.swnu.edu.cn/msx/zhaoshengxinxi.asp
西南大学美术学院 2006 年共有 美术教育(师范)、
艺术设计(非师范) 及 雕塑(非师范)
三个本科专业面向四川、重庆、浙江、山东、广东、湖南、湖北、
江西、云南、贵州、福建、江苏等 12 个省(市)招生。
本科招生计划总数 235 人,其中美术学(师范) 94 人、艺术设计 116 人、雕塑 25 人。

---面积
学校占地面积约9000亩,校舍面积近150万平方米

---大学文化课要求

---往年录取分数
美术分数网上查好象是 美 术 305分

 

-------------------------大连大学---------------------------------
学校网址: http://www.dlu.edu.cn/

---是不是211或者985工程
??
---在湖北招生人数
2006年艺术类招生信息:
http://www.artedu-cn.com/Article/zhaoshengxinxi/zhaoshengjianzhang/200601/808.html
美术专业只招20,艺术方面的30-50之间

---面积

---大学文化课要求

---往年录取分数
此学校一般,而且非常远,资料不多,不推荐报此学校!!!

 

-------------------------宁夏大学--------------------------------- 
哥推荐此宁夏大学!!!

学校网址:http://www.nxu.edu.cn/

---是不是211或者985工程
宁夏大学,2007年正式进入211工程


---在湖北招生人数
2006湖北省艺术类招生信息网址为:
http://zs.nxu.edu.cn/Article/ShowArticle.asp?ArticleID=86
更加详细的网址为:
http://xsc.nxu.edu.cn/l02/l02_index.asp
宁夏大学2006年艺术类普通本科招生简章
http://www.67ms.com/zhaos/xn/200601/545.html

---面积
校园占地面积2060亩,校舍建筑面积63.9万平方米。在校教职工2800人

---大学文化课要求

---往年录取分数
美术类专业考试成绩预选线:240分 录取人员名单
序号 考生号 准考证号 姓名 性别 素描 速写 色彩 总成绩
1 06420102131301 420193 陈静 女 85.0 92.3 93.5 270.8
2 06422325130020 420055 汪小慧 男 80.8 93.5 92.0 266.3
3 06420803170004 420141 许雪玲 女 85.8 86.3 92.5 264.5
4 06420105130057 420239 刘琴 女 85.5 88.0 90.3 263.8
5 06420602170181 420182 任姝亭 女 85.5 87.0 90.5 263.0
6 06420881130460 420235 刘盼 女 86.0 90.8 85.3 262.0
7 06429401130030 420166 严璐 女 90.5 85.3 86.0 261.8
8 06422325130022 420057 张娜 女 91.8 82.5 87.3 261.5
9 06420902130036 420282 黄文东 男 86.8 85.5 87.3 259.5
10 06420602130272 420317 汤莉 女 91.3 91.3 76.8 259.3
11 06421122130038 420131 邹翠萍 女 87.3 86.5 85.3 259.0
12 06420602131219 420043 张书 男 72.3 92.0 94.3 258.5
13 06420802130069 420133 张旋 男 85.5 85.0 86.8 257.3
14 11119999990290 420047 徐超 男 82.0 90.8 83.3 256.0
15 06420222130032 420305 杨恒 男 82.0 86.8 87.0 255.8
16 06421003130741 420189 袁冰 女 91.8 80.3 83.8 255.8
17 06420821130149 420250 袁明子 女 86.0 78.3 91.3 255.5
18 06420684170032 420106 黄玲 女 76.8 85.3 93.3 255.3
19 06421126130479 420097 何苗 女 83.3 91.3 80.3 254.8
20 06421102130069 420284 吕培 男 86.0 91.3 77.3 254.5
21 06420583130386 420297 周婵 女 91.3 85.0 78.0 254.3
22 06420602131273 420203 王浩 男 82.0 86.0 85.8 253.8
23 06420201130184 420118 吴兵 男 91.0 90.8 71.5 253.3
24 06420583130401 420290 王洋洋 女 85.5 76.8 90.8 253.0
25 06420881130433 420233 王雅鹏 女 85.8 84.8 82.0 252.5
26 06422325130042 420335 丁加云 女 85.3 81.3 86.0 252.5
27 06421003131205 420158 涂娅 女 82.0 86.3 83.3 251.5
28 06420325130064 420373 任舒红 男 92.5 76.5 82.3 251.3
29 06421003130455 420163 杨燕 女 91.0 86.0 74.0 251.0
30 06429601130854 420137 王康 男 82.0 81.3 87.3 250.5
31 06421126130480 420076 吴涛 男 81.3 91.8 77.0 250.0
32 06429601130554 420159 钱潜 女 78.0 86.0 85.5 249.5
33 06420881130393 420227 潘月 女 76.3 86.3 86.5 249.0
34 06420602170064 420382 张雪玲 女 91.8 71.0 86.0 248.8
35 06420602130138 420331 胥华 女 90.8 75.8 82.0 248.5
36 06421121130029 420220 朱文彪 男 92.8 80.0 75.5 248.3
37 06420602131444 420304 李艳丽 女 86.3 85.8 76.0 248.0
38 06420684170019 420013 蒋东京 男 81.0 71.8 94.0 246.8
39 06420521130075 420198 蔡婕 女 87.0 76.3 83.0 246.3
40 06420602170065 420369 毕志强 男 86.0 73.5 86.3 245.8
41 06421003170150 420148 彭长文 男 71.0 86.0 88.3 245.3
42 06420281130153 420039 李小珊 女 86.3 86.5 71.0 243.8
43 06420802130552 420268 邓慧慧 女 77.3 90.0 76.5 243.8
44 06420803170050 420089 杨风雨 男 86.3 71.3 86.0 243.5
45 06420124130501 420347 程君玉 女 66.5 87.3 87.8 241.5
46 06429601130444 420254 周玉 女 86.0 72.8 82.0 240.8
47 06420124130503 420349 夏伟 男 73.3 86.0 81.3 240.5
48 06421023130343 420242 彭春艳 女 71.3 82.0 87.0 240.3
49 06421126130369 420350 陈浩 男 91.3 82.8 66.3 240.3
50 06420201130610 420265 吴菲 女 76.3 71.3 92.5 240.0
51 06420701130229 420061 万婷 女 75.5 82.8 81.8 240.0
52 06420802130280 420012 李小莹 女 90.8 72.8 76.3 239.8
53 06420501130508 420371 谢健敏 女 77.0 75.8 86.5 239.3
54 06421003130086 420161 刘露 女 85.5 81.0 72.8 239.3
55 06421003130584 420153 王敏 女 92.5 64.3 82.5 239.3
56 06420124170073 420374 高志林 男 86.5 66.3 86.3 239.0
57 06420581130141 420213 张闽 女 71.8 76.0 91.3 239.0
58 06429601130863 420134 汪臻 男 67.3 90.8 81.0 239.0
59 06421003130067 420197 车友爱 女 75.5 72.5 90.8 238.8
60 06429101130017 420316 何腾 女 63.8 86.8 88.0 238.5
61 06420923130011 420139 李宏 男 76.3 80.3 81.5 238.0
62 06420104130340 420031 李小菁 女 75.3 86.5 76.0 237.8
63 06420103130283 420206 宋维 女 61.8 94.5 81.3 237.5
64 06420602131502 420362 梁艳 女 76.5 73.0 88.0 237.5
65 06420701130216 420048 冯郁 女 82.0 83.5 72.0 237.5
66 06420124130073 420035 罗荣 女 82.8 77.0 76.0 235.8
67 06420112130107 420246 乐婷 女 72.3 76.5 86.8 235.5
68 06420527130033 420067 赵剑锋 男 85.8 83.3 66.3 235.3
69 06421004130047 420027 朱天洋 男 90.3 54.0 91.0 235.3
70 06420124130171 420372 童敏 女 76.3 82.3 76.5 235.0
71 06420321130101 420190 叶祥波 男 72.8 91.5 70.8 235.0
72 06421003130431 420228 秦君 男 80.3 83.3 71.5 235.0
73 06429103130130 420186 邓金平 男 80.8 77.8 76.5 235.0
74 06420923130099 420140 喻小丽 女 91.8 85.3 57.8 234.8
75 06422828130012 420020 覃鑫 男 75.3 83.3 76.3 234.8
76 11119999990282 420056 杨帆 男 83.3 64.8 86.8 234.8
77 06420222130019 420276 林婕 女 86.3 94.0 54.3 234.5
78 06420684170017 420351 李芬芳 女 80.8 78.0 75.8 234.5
79 06420527130123 420009 杨玉成 女 72.5 76.0 85.5 234.0
80 06422325130036 420279 田立径 男 76.3 72.5 85.3 234.0
81 06421003130535 420231 李珊珊 女 73.3 83.3 77.3 233.8
82 06420124130094 420348 熊万方 男 82.8 63.5 87.3 233.5
83 06421121130001 420222 林坤 男 91.5 76.5 65.3 233.3
84 06420583130389 420291 何莲 女 71.3 85.3 76.3 232.8
85 06420602130761 420181 周丹 女 71.5 85.5 75.5 232.5
86 06421022130327 420026 刘格 男 81.8 78.3 72.5 232.5
87 06420321130057 420060 夏贵敏 男 66.8 91.0 73.8 231.5
88 06420621130322 420294 沈志宇 女 81.8 72.3 77.5 231.5
89 06421126130412 420162 姜才栋 男 77.0 73.3 81.3 231.5
90 06421125170007 420377 郭建芳 女 86.5 81.0 63.8 231.3
91 06421003170078 420051 邓伟 男 85.8 71.3 74.0 231.0
92 06421003130260 420008 闫君芳 女 85.8 72.3 72.8 230.8
93 06420222130167 420217 成家猛 男 85.3 54.0 91.0 230.3
94 06420321170027 420059 秦波 男 77.3 86.5 66.5 230.3
95 06420602131247 420202 朱琳 女 83.0 85.8 61.5 230.3
96 06420527130047 420100 向艾梨 女 71.5 72.5 86.0 230.0
97 06420602131424 420178 徐翠翠 女 71.0 86.0 73.0 230.0
98 06420521130014 420224 韩婧娉 女 81.8 61.5 86.3 229.5
99 06420602130339 420389 辛昕 女 75.5 76.3 77.8 229.5
100 06420802130238 420309 牟冬霜 女 82.3 72.3 75.0 229.5
101 06421002132901 420150 李茜 女 71.0 81.5 77.0 229.5
102 06420602130763 420019 王冠雲 女 75.5 75.8 78.0 229.3
103 06420881130367 420053 高潇潇 女 66.5 85.5 77.3 229.3
104 06420684130043 420360 何文文 男 71.3 71.8 86.0 229.0
105 06421003130302 420075 熊光勇 男 77.0 86.3 65.5 228.8
106 06420583130373 420370 陈晓华 男 65.5 80.3 82.8 228.5
107 06420602130590 420368 袁小娇 女 71.5 80.8 76.3 228.5
108 06420625130047 420214 尤双莉 女 70.3 76.0 82.3 228.5
109 06421002131530 420333 孟文 女 82.8 64.3 80.8 227.8
110 06420981130038 420357 詹芳 女 86.8 64.0 76.5 227.3
111 06421003130358 420191 杨静 女 73.3 63.0 90.5 226.8
112 06420501130597 420332 张威 男 86.5 64.0 76.0 226.5
113 06420602131199 420188 刘燕 女 71.8 83.0 71.8 226.5
114 06420602131499 420365 姜凯歌 女 76.8 71.8 77.8 226.3
115 06422801130209 420336 敖文静 女 76.0 66.5 83.8 226.3
116 06420802130009 420122 周鹏 男 64.5 75.8 85.8 226.0
117 06421003130394 420226 唐双喜 女 85.3 65.0 75.8 226.0
118 06421022130330 420045 甘聪 女 72.3 87.0 66.5 225.8
119 06420981170021 420249 田少高 男 65.5 77.8 81.8 225.0
120 11119999990287 420072 闫维林 男 82.0 71.0 72.0 225.0
121 06420602130323 420361 乔鹏 男 82.3 87.0 55.5 224.8
122 06421122130034 420130 刘丽 女 86.3 82.0 55.8 224.0
123 06429601130641 420010 黄祥祥 男 81.8 71.0 71.3 224.0
124 06421125130024 420295 陶钧 男 76.8 80.5 66.5 223.8
125 06420701130301 420054 张鸿 男 66.5 90.5 66.5 223.5
126 11119999990808 420241 游薇 女 77.0 71.5 75.0 223.5
127 06420621130321 420289 张萌 女 54.8 77.8 90.8 223.3
128 06420802170003 420121 周雷 男 64.8 72.0 86.5 223.3
129 06420684130077 420359 潘艳平 男 75.8 80.8 66.0 222.5
130 06420683170034 420342 王迎 男 71.3 64.8 86.0 222.0
131 06420902130457 420172 刘薇 女 82.5 77.8 61.8 222.0
132 06420321130146 420015 张敏 女 76.5 72.5 72.0 221.0
133 06420802130374 420142 孙颖群 女 72.0 76.0 73.0 221.0
134 06421023130344 420238 杨倩 女 72.3 67.8 81.0 221.0
135 06429601130433 420256 付秀生 男 85.3 54.3 81.5 221.0
136 11119999990809 420240 程玉芳 女 72.3 67.0 81.0 220.3
137 06429102130126 420251 李小艳 女 86.3 76.8 57.0 220.0
138 06420684130046 420383 柴皓雪 女 83.0 80.8 56.0 219.8
139 06421003130327 420138 陈敏 女 66.5 71.8 81.5 219.8
140 06420521130081 420199 杜鹏程 男 63.0 85.5 70.8 219.3
141 11119999990378 420109 于世卢 男 77.8 88.8 52.5 219.0
142 06420902130293 420218 胡志威 男 81.0 56.8 80.5 218.3
143 06421121130019 420221 易浩杰 男 75.3 62.8 80.3 218.3
144 06421002132905 420232 李群成 女 93.3 38.8 86.0 218.0
145 06420528130018 420236 曹维 女 65.3 76.0 76.5 217.8
146 06420626130072 420014 王丽 女 62.8 76.3 78.8 217.8
147 06421003130047 420091 李卿 男 82.3 81.8 53.8 217.8
148 06429601130560 420200 齐小兵 男 76.3 66.0 75.3 217.5
149 06421003130619 420154 谢小熳 男 64.5 75.5 76.8 216.8
150 06421125130064 420325 王玉 女 85.5 76.0 55.3 216.8
151 06420602130365 420390 张文靖 女 54.5 80.8 81.3 216.5
152 06420602170112 420327 周璇 女 76.0 63.5 77.0 216.5
153 06421126130496 420299 陈滨 男 82.5 76.0 57.8 216.3
154 06420981130028 420380 陈立伟 男 76.3 63.5 75.8 215.5
155 06420104130630 420355 刘诗蔚 女 76.3 67.3 71.8 215.3
156 06420602170048 420068 蒋晓 女 76.0 75.0 64.3 215.3
157 06420683130095 420145 齐丽 女 65.3 76.0 73.5 214.8
158 06421126130388 420117 张进 男 63.8 82.8 67.8 214.3
159 06420222130043 420306 卢志鑫 男 63.8 80.0 70.3 214.0
160 06421003130980 420253 孙芳芳 女 66.5 71.8 75.8 214.0
161 06421125130017 420293 毕琪 女 71.0 86.0 57.0 214.0
162 06420281130034 420315 刘文静 女 71.0 75.8 67.0 213.8
163 06420583130057 420385 贾峰 男 86.8 72.3 54.8 213.8
164 06420602131225 420066 张义恒 男 81.3 70.8 61.8 213.8
165 06421126130401 420391 马兆中 男 45.3 91.5 77.0 213.8
166 06420104130079 420098 桂婷 女 66.3 65.8 81.5 213.5
167 06420124130161 420345 庞马琳 女 75.3 66.0 72.3 213.5
168 06420621130137 420114 姜飞 男 63.0 66.3 84.0 213.3
169 06420881170019 420270 周波 男 71.3 54.8 86.3 212.3
170 11119999990277 420096 马敬迪 女 64.0 76.0 72.3 212.3
171 06421126130272 420156 陈湘 男 78.0 76.8 57.3 212.0
172 06421003130259 420209 王盼 男 76.3 54.3 81.3 211.8
173 06420684130071 420143 鲁文风 男 71.5 76.0 64.0 211.5
174 06421003130301 420147 卢念 女 53.8 82.3 75.5 211.5
175 06421022130319 420050 张贝贝 女 76.5 92.0 43.0 211.5
176 06420684170029 420052 张剑 男 70.0 54.3 87.0 211.3
177 06421002131563 420285 姬林 男 72.0 66.8 72.5 211.3
178 06421003130020 420088 徐思思 女 66.8 82.5 62.0 211.3
179 06421126130403 420194 王忠 男 81.8 58.0 71.0 210.8
180 06421003130269 420207 张小飞 女 62.8 72.0 75.3 210.0
181 06420281130146 420046 熊丽 女 65.5 71.5 72.5 209.5
182 11119999990280 420062 牟佳 女 82.5 55.3 71.8 209.5
183 06420602131597 420104 安静 女 76.0 66.0 67.3 209.3
184 06420684170087 420175 苗华云 男 64.5 72.8 72.0 209.3
185 06420881170018 420269 樊芸芸 女 55.3 73.3 80.8 209.3
186 06420881130112 420074 曾佳 男 77.8 57.8 72.8 208.3
187 06420621170013 420187 马姗 女 81.0 54.8 72.3 208.0
188 06420981130062 420381 喻晟 男 77.8 76.0 54.3 208.0
189 06421022170042 420273 姚祖成 男 76.0 57.0 75.0 208.0
190 06420602130305 420364 孟彦 男 76.5 55.8 75.5 207.8
191 06420621130128 420204 徐爱红 女 52.5 64.5 90.8 207.8
192 11119999990830 420185 光杰 女 76.0 70.3 61.5 207.8
193 06420683170037 420343 杨雪霜 女 85.0 53.8 68.5 207.3
194 11119999990281 420058 万珊珊 女 81.3 72.8 53.3 207.3
195 06421003130515 420215 周健 男 76.3 54.5 76.0 206.8
196 06420102131135 420195 陈晶 女 71.8 63.0 71.5 206.3
197 06421081130055 420278 王鹏程 男 72.3 57.0 76.5 205.8
198 06422823170003 420123 张珊珊 女 71.0 80.3 54.3 205.5
199 06422325130025 420287 程崎 男 81.0 41.5 82.8 205.3
200 06420501130575 420212 胡明敏 女 53.3 76.8 75.0 205.0
201 06420602170072 420367 张浩 男 76.3 56.5 72.3 205.0
202 06421181130158 420086 肖春华 男 67.0 67.0 71.0 205.0
203 06420684130119 420277 石园园 女 73.8 39.3 91.8 204.8
204 06429601170119 420135 肖忠海 男 62.8 85.5 56.5 204.8
205 06420103130181 420160 李武东 男 65.3 87.3 51.8 204.3
206 06420802130405 420144 王江 女 65.3 72.5 66.5 204.3
207 06420881130400 420229 曹茫茫 女 71.8 77.3 55.3 204.3
208 06420528130026 420248 江涛 男 72.5 54.5 76.8 203.8
209 06420621170020 420111 白爽 男 73.3 77.5 53.0 203.8
210 06420104130943 420029 何静 女 75.3 55.8 72.5 203.5
211 06420625130030 420302 李俊丽 女 77.0 72.0 54.3 203.3
212 06422325130035 420326 陈文颖 男 76.0 55.5 71.8 203.3
213 06420602170047 420069 余进芬 女 71.5 73.8 57.8 203.0
214 06420802130255 420307 严彦 男 82.0 43.8 77.3 203.0
215 06420881130382 420376 蔡敏 女 62.5 64.5 75.8 202.8
216 06420103130423 420263 喻自强 男 53.8 73.0 75.5 202.3
217 06420222130034 420275 柯丽梅 女 71.5 76.8 54.0 202.3
218 06420321130031 420087 罗慧 女 61.3 76.8 64.3 202.3
219 06421003130271 420007 肖金莲 女 62.5 57.8 82.0 202.3
220 06429103130128 420211 陈雪峰 男 54.8 75.3 72.3 202.3
221 06420602130304 420363 石菲 男 85.8 82.3 34.0 202.0
222 06420112130184 420247 徐彰 男 66.0 48.5 87.3 201.8
223 06421125130088 420272 熊得海 男 53.5 77.5 70.8 201.8
224 06422325130030 420281 陈导 男 72.8 63.5 65.5 201.8
225 06429102130097 420132 冯萍 女 72.8 76.3 52.5 201.5
226 06420112130032 420082 刘言 女 76.5 43.5 80.8 200.8
227 06421003130434 420223 胡诚程 男 72.5 71.5 56.5 200.5
228 06421126130482 420099 徐丽平 女 64.0 72.0 64.5 200.5
229 06420111130847 420102 陈晶晶 女 66.0 73.5 60.5 200.0
230 06420102130752 420107 邹文昊 男 54.0 65.3 80.5 199.8
231 06420124130520 420112 周敏 女 71.3 64.0 64.3 199.5
232 06420803170055 420085 靳莉娜 女 62.3 65.5 71.3 199.0
233 11119999990279 420079 丁海薇 女 63.8 72.0 63.0 198.8
234 06420701170005 420192 孟长河 男 61.5 65.8 71.3 198.5
235 06420902130028 420210 高文娟 女 63.0 71.8 63.8 198.5
236 06421126130477 420078 张钱 男 75.8 71.3 51.3 198.3
237 06421003130616 420155 张小华 女 76.0 68.5 53.5 198.0
238 06420112130522 420318 杨蓉 女 53.5 66.5 77.8 197.8
239 06420281130157 420044 殷浩 男 71.8 72.3 53.3 197.3
240 06420621170002 420184 陈静 女 72.8 53.5 71.0 197.3
241 06421022130288 420030 彭滟 女 39.8 70.8 85.8 196.3
242 06421023130392 420312 胡娟 女 65.0 60.5 70.0 195.5
243 06420222130008 420386 熊永进 男 61.0 82.0 52.3 195.3
244 06420981170011 420379 甘伟 男 64.8 64.5 65.5 194.8
245 06421003170153 420151 孙奎 男 75.5 64.3 55.0 194.8
246 06429601170032 420065 康亚 男 75.3 72.8 46.8 194.8
247 06420521130100 420077 颜攀 男 55.0 86.5 53.0 194.5
248 06422801130208 420334 高登菊 女 75.3 65.5 53.8 194.5
249 06420621170018 420101 谢文涛 男 75.8 54.8 63.8 194.3
250 06421022130303 420037 朱红 女 45.8 77.3 71.3 194.3
251 06420602131381 420183 李雷 男 54.8 65.3 73.8 193.8
252 06422828170029 420296 覃威 男 73.0 82.3 38.5 193.8
253 06420324130009 420125 袁慎勇 男 56.8 72.0 64.8 193.5
254 06420683130154 420339 张勤 女 63.5 64.0 65.8 193.3
255 06421126170067 420310 易龙 男 64.5 65.0 63.5 193.0
256 06420802130180 420308 杨继龙 男 92.0 53.5 47.0 192.5
257 06420602170049 420070 彭惠 女 44.8 72.0 75.5 192.3
258 06420803130231 420004 王蓓 女 45.3 72.8 73.0 191.0
259 06421023130117 420124 羿凡 男 76.5 81.5 33.0 191.0
260 11119999990517 420003 汪帷 女 39.8 65.0 85.8 190.5
261 06421022130304 420021 谢涛 男 41.3 76.8 72.0 190.0
262 06421023130327 420116 夏梦 女 72.5 54.5 63.0 190.0
263 11119999990283 420093 唐敬涛 男 71.5 63.5 54.8 189.8
264 06422825130074 420259 杜玢璃 女 53.5 71.0 64.8 189.3
265 06422823130089 420196 马钰苗 女 52.3 66.8 70.0 189.0
266 06420501130592 420300 郑超 男 57.5 85.0 45.5 188.0
267 06421126130377 420115 王婷婷 女 54.3 71.5 62.3 188.0
268 06422326130026 420146 陈媛媛 女 52.3 80.8 54.8 187.8
269 06420501130238 420288 肖湘 女 63.8 71.0 52.8 187.5
270 06420902130397 420168 张帆 男 53.3 62.5 71.8 187.5
271 06420124130114 420110 汪超 男 51.5 64.3 71.0 186.8
272 06420803130047 420216 许鹏 男 63.3 62.3 61.3 186.8
273 06421122130023 420071 梁臻 男 72.5 72.5 41.8 186.8
274 11119999990289 420073 张晨 女 72.5 75.0 39.3 186.8
275 06429102130257 420264 王慧 女 53.3 56.0 77.0 186.3
276 06420583170008 420358 苏忠曼 男 56.8 75.5 53.8 186.0
277 06420602131407 420258 孙敏 女 53.3 56.0 76.3 185.5
278 06421002132902 420230 潘明洋 女 62.5 41.0 82.0 185.5
279 06421002132906 420234 袁梅 女 63.5 40.5 81.5 185.5
280 06420683130150 420344 袁建丽 女 53.8 54.3 77.0 185.0
281 06422823130091 420261 宋敏 女 54.3 76.3 54.5 185.0
282 06429102130069 420243 黄巧珍 女 53.0 56.3 75.8 185.0
283 06421003130553 420092 谢孝媛 女 71.0 39.0 73.8 183.8
284 06429103130123 420330 秦婷婷 女 48.0 64.0 71.8 183.8
285 06422301130247 420002 兰涛涛 男 53.0 76.0 54.5 183.5
286 06420802130209 420173 全正娇 女 80.8 65.0 37.5 183.3
287 06420923130141 420176 李鑫 男 71.5 41.3 70.5 183.3
288 06421023130342 420286 孙伟 男 71.5 56.3 55.0 182.8
289 06420803170028 420084 杨慧玲 女 62.3 63.0 57.3 182.5
290 06420112130172 420323 黄梦思 女 63.3 75.5 43.3 182.0
291 06420104130633 420356 袁陈 女 54.5 65.0 62.3 181.8
292 06420583130109 420042 周慧 女 83.0 41.8 56.5 181.3
293 06421003130245 420081 万小雪 女 54.8 71.0 55.5 181.3
294 06420902130376 420165 池秀娟 女 40.3 64.5 76.0 180.8
295 06429601170012 420064 梅龙呈 男 71.3 54.3 55.3 180.8
296 06420201130788 420179 陈兆龙 男 36.8 81.8 61.5 180.0
297 06420281130155 420038 李泽 男 53.3 55.3 70.8 179.3
298 06420803170031 420105 郑晶晶 女 52.8 64.8 61.8 179.3
299 06420381130055 420338 高慧子 女 65.8 76.3 37.0 179.0
300 06421023130355 420311 杨雯 女 57.3 75.0 45.8 178.0
301 06421003130249 420208 余鹏飞 男 71.0 42.5 64.3 177.8
302 06422825130025 420257 莫长儒 男 52.5 54.8 70.5 177.8
303 06420381130037 420219 费娜 女 46.0 75.0 56.3 177.3
304 06421102130071 420127 尹婷 女 40.8 54.3 81.5 176.5
305 06421003130818 420149 刘丹 女 65.8 55.0 55.3 176.0
306 06420281130110 420314 周青松 男 44.8 53.3 76.3 174.3
307 06420301130597 420001 李璐 女 39.0 72.8 61.8 173.5
308 06420201130790 420170 黄静 女 52.3 54.0 66.5 172.8
309 06420621130191 420033 何琳琳 女 35.0 75.3 62.5 172.8
310 06420625170049 420011 盛海波 男 62.3 39.3 71.3 172.8
311 06421023130381 420313 李青青 女 56.3 41.0 75.0 172.3
312 06421003170155 420152 田贵 男 52.5 78.0 39.5 170.0
313 06420881130436 420319 杨雪 女 54.0 64.5 51.3 169.8
314 06420981130053 420354 张小琦 男 44.0 64.0 61.8 169.8
315 06429103130119 420328 唐琦 男 64.8 64.5 39.3 168.5
316 06429601130472 420255 黄莉 女 75.8 54.0 38.8 168.5
317 06420501130589 420298 吕小龙 男 39.5 72.8 54.5 166.8
318 06420521130025 420225 陈国威 男 71.0 52.8 42.0 165.8
319 06420621130192 420032 野田田 女 45.0 56.5 64.3 165.8
320 06420902130588 420164 徐耀召 男 41.3 52.3 72.3 165.8
321 06420281130165 420129 吴桑 女 53.0 40.8 71.8 165.5
322 06429102130111 420244 李芳芳 女 53.5 47.8 63.5 164.8
323 06420501130079 420180 余敏 男 76.5 47.0 40.8 164.3
324 06421022130329 420024 赵俊 女 36.3 55.5 72.3 164.0
325 06421022130315 420023 韦虎 男 37.5 53.3 73.0 163.8
326 06420112130144 420322 王欢 女 54.5 75.0 33.8 163.3
327 06421121130061 420353 霍彩 女 42.5 56.0 64.0 162.5
328 06421022130340 420041 熊瑶 女 53.5 55.3 53.5 162.3
329 06421125130055 420384 程二雄 男 54.3 56.3 51.5 162.0
330 06420112130264 420324 高丹丹 女 52.3 46.0 62.8 161.0
331 06420902130015 420283 姜澜 男 61.3 56.8 43.0 161.0
332 11119999990799 420128 李义 男 54.5 52.5 53.8 160.8
333 06429601130488 420245 熊磊 女 55.3 43.3 61.8 160.3
334 06420602131422 420177 徐钰菲 女 53.5 55.5 51.0 160.0
335 06421022130278 420028 杨菲 女 70.8 36.5 52.5 159.8
336 06421127170003 420108 洪建锋 男 63.5 55.8 40.5 159.8
337 06420381130051 420340 张浩宇 男 85.0 38.8 33.8 157.5
338 06420103170049 420016 姚茜 女 31.3 72.0 54.0 157.3
339 06421003130258 420083 杨霄 男 51.5 44.0 61.0 156.5
340 06420103130473 420017 刘连 女 42.0 77.3 35.5 154.8
341 06420602131263 420337 金程 女 86.0 37.5 31.3 154.8
342 06421126170082 420266 谈维义 男 37.5 55.5 61.0 154.0
343 06422823130068 420260 向黎 女 33.3 75.8 44.5 153.5
344 06421126130242 420157 龚礼 男 54.3 54.5 42.0 150.8
345 06429102130209 420262 倪军军 男 37.5 37.3 75.8 150.5
346 06421023130331 420113 樊华 女 53.5 46.0 50.8 150.3
347 06420621170003 420063 李阳 女 54.3 55.0 40.3 149.5
348 06421003130854 420005 钟山 男 44.0 41.3 63.5 148.8
349 06421121130067 420352 李牵 女 72.0 41.3 35.5 148.8
350 06420281130156 420040 鲁清 男 43.8 42.3 61.8 147.8
351 06429102130127 420252 杨武 男 54.3 54.3 37.8 146.3
352 06420581130032 420280 杜圣丽 女 53.3 51.5 38.8 143.5
353 06429601170124 420136 吴斌 男 35.8 55.5 51.3 142.5
354 06421003130858 420006 夏君慧 男 37.3 40.3 64.3 141.8
355 06420103130236 420201 黄海 男 33.8 75.0 32.8 141.5
356 06421125170008 420378 任林林 女 54.0 53.8 32.5 140.3
357 06420881130437 420237 肖宇 女 37.5 72.5 30.0 140.0
358 06420881130441 420320 袁文朋 男 54.5 45.3 39.0 138.8
359 06420683130148 420341 李传略 男 53.8 44.3 39.3 137.3
360 06421003131009 420095 赵佳 男 53.3 40.3 43.3 136.8
361 06421022130293 420022 邵雪芹 女 34.3 39.5 62.5 136.3
362 06421102130441 420169 徐恒 女 38.0 37.0 60.5 135.5
363 06420602131565 420103 张介立 男 36.0 43.5 55.8 135.3
364 06422825130075 420292 张涛 男 37.3 62.5 34.3 134.0
365 06420922130018 420018 吴娟 女 36.3 56.5 37.0 129.8
366 06420881130383 420375 杨慧 女 54.5 45.0 30.0 129.5
367 06421022130294 420049 代红艳 女 37.8 37.3 53.3 128.3
368 06421022130302 420025 吴映洁 女 31.5 41.3 53.0 125.8
369 06420201130789 420174 高祥 男 37.5 52.0 35.5 125.0
370 06420602131538 420271 李郑明 男 41.5 40.8 41.3 123.5
371 06420321130058 420171 胡海礁 男 42.0 36.5 38.0 116.5
372 06420124130020 420267 罗靖杰 男 42.5 36.0 35.8 114.3
373 06420583130379 420366 张云 女 41.0 39.8 32.5 113.3
374 06420602130463 420329 旋云翔 男 34.5 39.0 38.8 112.3
375 06421127130031 420387 欧金勇 男 41.5 38.3 32.5 112.3
376 06420881130381 420301 陈晓峰 男 31.3 38.3 42.5 112.0
377 06421003130059 420126 燕向强 男 37.3 36.3 36.3 109.8
378 06421022130317 420036 唐静 女 37.0 36.5 32.5 106.0
379 06420881130440 420321 郑伟 男 32.5 40.5 30.0 103.0
380 06421022130309 420034 齐晶 女 30.8 40.3 31.3 102.3
381 06421121130071 420274 杨梅 女 33.3 34.0 35.0 102.3
382 06421003130246 420090 张德智 男 31.3 37.8 32.0 101.0
383 06420124130103 420346 吴勇 男 74.8 0.0 0.0 74.8
384 06420602131515 420080 王哲 男 32.0 0.0 32.5 64.5
385 11119999990868 420205 王光赢 男 0.0 0.0 35.3 35.3
386 06420881130369 420388 黄灿 女 32.3 0.0 0.0 32.3
387 06420105170030 420119 李俊 男 0.0 0.0 0.0 0.0
388 06420107130433 420167 王珏 男 0.0 0.0 0.0 0.0
389 06420301130398 420303 孟姗姗 女 0.0 0.0 0.0 0.0
390 06420322130007 420120 王世潇 男 0.0 0.0 0.0 0.0
391 06421003131006 420094 但磊磊 男 0.0 0.0 0.0 0.0

 

-------------------------湖南工业大学---------------------------------

学校网址:http://www.zhuzit.edu.cn/cn/

---是不是211或者985工程
都不是

---在湖北招生人数
湖南工业大学(原株洲工学院)2006年艺术类专业招生简章
http://zsb.hut.edu.cn/ysbm/over.asp
2006年湖南工业大学(原株洲工学院)艺术类专业招生简章已经公布;
请进入湖南工业大学招生办公室网址:http://zsb.hut.edu.cn/ysbm/ 可以直接查询下载。

2006年分省市分专业招生计划
省份  专业     学制     科类    人数      说明
湖北 艺术设计 四年    艺术(文)   410    不分来源省市的招生计划 
湖北 艺术设计 四年    艺术(理)   47     不分来源省市的招生计划 


---面积
学校占地面积3700亩,分为东、西两校区

---大学文化课要求

---往年录取分数


-------------------------齐齐哈尔大学---------------------------------

学校网址:http://www.qqhru.edu.cn/

---是不是211或者985工程
都不是

---在湖北招生人数
2006齐齐哈尔大学湖北省艺术类招生考试日程安排
http://www.mscun.com/msgk/42.html
我校在黑龙江、河北、山东、江西、湖南、湖北、安徽、
江苏省招收艺术设计230人,绘画90人,音乐表演90人,舞蹈编导15人。

 

---面积
占地面积115万平方米,建筑面积72万平方米


---大学文化课要求

---往年录取分数
2003年艺术类单考录取分数线:
网址:http://www.90ms.com/Article/Class6/Class90/SS/719.html

2006年艺术专业录取分数(湖北省):
专业      专业最高分      专业最低分
绘画         87.2            77.1
艺术设计     89.2            84.6
网址:http://www.allart.com.cn/jiaoyu/peixun/200609/16864.html

 


-------------------------兰州交通大学---------------------------------

学校网址:http://www.lzjtu.edu.cn/
招生信息:http://zsjyc.lzjtu.cn/zsb/

---是不是211或者985工程
都不是

---在湖北招生人数
2007年艺术类招生简章:
http://zsjyc.lzjtu.cn/zsb/Html/zsxx/095209418.html

---面积
学校占地面积达 1452 亩,校舍建筑面积 55. 7 万平方米


---大学文化课要求

---往年录取分数
兰州大学2006年美术音乐专业录取分数线
http://www.artedunet.cn/b/bkzn/lqfs/content_49628.shtml
但是没有湖北的参考数据

2006年艺术类术科成绩合格线
我校2006年艺术类术科成绩合格线:

湖北:251分   山西:248分   湖南:248分

陕西:254分   山东:240分   甘肃:242分

网址:http://zsjyc.lzjtu.cn/zsb/Html/ysl/105423959.html


-------------------------广东海洋大学---------------------------------

学校网址:http://www.gdou.edu.cn/

---是不是211或者985工程
都不是

---在湖北招生人数
艺术类总数可能二三十个左右
艺术类专业招生计划:http://www1.gdou.edu.cn/jyw/news/2006yszsjihua.htm

---面积
占地4200亩

---大学文化课要求

---往年录取分数
2005年部分省份录取分数统计(普通类)
省、市 计划数 录取数 省定最低分数线 最高分 最低分 平均分
湖北    30     32        492          524    493    506
网址:
http://www1.gdou.edu.cn/jyw/school_information_datail.asp?type=recruit&id=102

 

-------------------------天津财经大学---------------------------------

学校网址:http://www.tjufe.edu.cn/

---是不是211或者985工程
都不是

---在湖北招生人数
面向全国各省、市、自治区招生。
具体招生名额按下列办法确定:
各省、市、自治区招生计划=(该省、市、自治区填报天津财经大学第一志愿总数/--(此杠代表除)
全国各省、市、自治区填报天津财经大学第一志愿总数)×天津财经大学2006年艺术类招生计划数。

2006年艺术类招生简章
http://www.tjufe.edu.cn/view.php?tbl=zhaosheng&id=489
http://www.tjufe.edu.cn/view.php?tbl=zhaosheng&id=488

---面积
学校现占地1500亩,建筑总面积45.56万平方米


---大学文化课要求

---往年录取分数
天津财经大学往年在各省市录取分数线
http://edu.qq.com/a/20050317/000168.htm
(此网址都是文科理科的录取分数线,没有艺术特长生的)

 

-------------------------南京财经大学---------------------------------

学校网址:http://www.njue.edu.cn/or_index.asp

---是不是211或者985工程
都不是

---在湖北招生人数
信息发布时间为:2006/01/18
南财大艺术设计系今年计划面向江苏、
上海、安徽、浙江、山东、河南、湖南、湖北、
江西、河北、福建十省一市招收艺术类本科生150名,
其中江苏、上海考生一律参加所在省市艺术类专业统一加试。

根据规定,今年报考艺术类专业的考生的统考数学成绩全部计入其文化考试成绩总分
英语单科成绩不低于50分
网址:http://edu.sina.com.cn/exam/2006-01-18/154127003.html

2006年艺术类招生简章:http://www.chinarts.net/Article_Show.asp?ArticleID=10630

---面积
占地面积3004亩,校舍建筑面积80万平方米

---大学文化课要求

---往年录取分数



struts标签
tuming 发表于 2006-10-30 3:00:29

这是一篇转载的文章(还好是中文的)
原文地址为: http://www.solol.org/technologic/java/j-struts/
 
您使用过旅游指南吗?它总是能让我们快速的找到目的地。我对此有深刻的印象,希望这篇指南也能使您快速的完成Struts标签相关的任务。我深入细致的总结了日常使用Struts的一些经验,感觉Struts标签的用途非常广泛并且功能强大,但是学起来还是比较费时间的。我认为学习Struts标签最好的方式就是参考良好的示例,幸运的是这些示例您可以在下面找到。

Struts是Apache Jakarta的一个著名的开源项目,目标是为构建基于Java的web应用程序提供一个框架。

Struts提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:

  • Bean Tags:该标签库包含的标签可以用来创建bean、访问bean和访问bean的属性。同时提供了依据cookies、headers和parameters的值创建相关bean的能力。
  • HTML Tags:该标签库包含的标签可以用来创建Struts输入表单。
  • Logic Tags:该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。
  • Nested Tags:该标签库建立在前三个标签库的基础上,具有前三个标签库的所有功能,只是允许标签间的嵌套。
  • Tiles Tags:该标签库包含的标签可以用来创建tiles样式的页面。

这篇指南主要介绍前三个标签库中的标签。如果您对后两类标签也感兴趣可以查阅参考资料中的Struts的用户指南。

cookie最早是由Netscape公司提出来的,用来存储客户的少量状态信息。如果您对cookie的具体细节感兴趣可以查阅参考资料中的cookie spec。

bean:cookie标签取回请求中名称为name的cookie的值。如果没有指定multiple属性则依据刚取回的值创建一个Cookie类型的bean。如果指定了multiple属性则依据刚取回的值创建一个Cookie[]类型的数组。然后用id属性值将Cookie或Cookie[]绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。

下面的代码片段示例了如何使用bean:cookie标签读取名为JSESSIONID的cookie的值,并且使用了两种方式进行了输出:

<logic:present cookie="JSESSIONID">
  <bean:cookie id="jSession" name="JSESSIONID"/>
  <!-- 其它标签通过绑定到page作用域中的属性使用该值 -->
  这个cookie的名称是<bean:write name="jSession" property="name"/>,
  值为<bean:write name="jSession" property="value"/>。<br/>
  <!-- JSP脚本通过scripting变量使用该值 -->
  <%
    String name = jSession.getName();
    String value = jSession.getValue();
    out.println("这个cookie的名称是"+name+",值为"+value+"。<br/>");	
  %>
</logic:present>

bean:define标签在toScope(如果没有指定值就使用page作用域)指定的作用域中创建一个新属性,同时创建一个scripting变量。我们可以通过id值使用它们。新创建的属性可以由其它标签使用,而新创建的scripting变量可以由JSP脚本使用。

我们可以使用三种方式为新创建的属性和scripting变量赋值:

  • 通过该标签的name、property和scope取回值,并且保持类型的一致性,除非取回的值为Java的原始类型,这时会使用适合的包装器类对这些值进行包装。
  • 通过该标签的value指定值,这时新创建的属性和scripting变量的类型为java.lang.String。
  • 通过在该标签的体中嵌入值,这时新创建的属性和scripting变量的类型为java.lang.String。

下面的代码片段示例了如何使用bean:define标签创建新属性values和新scripting变量values,它将listForm中persons的值取出来赋给values:

<bean:define id="values" name="listForm" property = "persons" 
	type="java.util.List"/> 

下面给出ListForm的代码片段以帮助您更好的理解,其中Person是一个只有id和name两个属性的简单bean:

public class ListForm extends ActionForm {
  private List<Person> persons = null;
  public List<Person> getPersons() {
    return persons;
  }
  public void setPersons(List<Person> persons) {
    this.persons = persons;
  }
  public void reset(ActionMapping mapping, 
      HttpServletRequest request) {
    persons = null;
  }
} 

下面的代码片段示例了logic:iterate标签如何使用bean:define标签创建的新属性values:

<logic:iterate id="person" name="values">
  <bean:write name="person" property="id"/><br/>
</logic:iterate>

下面的代码片段示例了JSP脚本如何使用bean:define标签创建的新scripting变量values:

<%
  Person p = new Person();
  for(int i=0;i<values.size();i++){
    p = (Person)values.get(i);
    out.println(p.getId());
    out.println("<br/>");
  }		
%>

bean:header标签取回请求中名称为name的header的值。如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean。如果指定了multiple属性则依据刚取回的值创建一个String[]类型的数组。然后用id属性值将String或String[]绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。

下面是我的浏览器发送的header的内容,这些内容和浏览器有关,因此您的浏览器发送的内容可能和下面列出的不同。不过这没有关系,因为要理解bean:header标签您只要对这些内容有一个大概的认识就足够了。

accept: */* 
accept-language: zh-cn 
accept-encoding: gzip, deflate 
user-agent: Mozilla/4.0 (compatible; MSIE 6.0; //应该在同一行
  Windows NT 5.1; SV1; .NET CLR 1.1.4322) 
host: localhost:8080 
connection: Keep-Alive 

下面的代码片段示例了如何使用bean:header标签读取名为User-Agent的header的值,并且使用了两种方式进行了输出:

<logic:present header="User-Agent">
  <!-- 其它标签通过绑定到page作用域中的属性使用该值 -->
  您的浏览器是<bean:header id="userAgent" name="User-Agent"/>
  <bean:write name="userAgent"/>。<br/>
  <!-- JSP脚本通过scripting变量使用该值 -->
  <%
    out.println("您的浏览器是"+userAgent+"。<br/>");	
  %>
</logic:present>

bean:include标签对指定url(由forward、href或page确定)处的资源做一个请求,将响应数据作为一个String类型的bean绑定到page作用域,同时创建一个scripting变量。我们可以通过id值访问它们。

下面的代码片段示例了bean:include标签的用法,其中include.txt文件包含要include的内容,然后将这些内容输出:

<bean:include id="value" page="/include.txt"/>
<!-- 其它标签通过绑定到page作用域中的属性使用该值 -->
<bean:write name="value"/><br/>
<!-- JSP脚本通过scripting变量使用该值 -->
<%
  out.println(value);	
%>

bean:message标签用来从指定的locale中取回国际化的消息并输出,在这个过程中我们还可以传递五个以内的参数。message key可以通过key直接指定,也可以通过name和property间接的指定。

bean:message标签有两种指定message key的方式,一是通过key属性直接指定;二是通过name和property属性间接的指定,其中message key是在message resources文件中定义的。

我们可以在struts-config.xml文件中使用<message-resources>来设置message resources文件。

为了介绍该标签我使用了三个message resources文件,三个文件的名字分别为Resources.properties、Resources_en.properties和Resources_zh.properties。在struts-config.xml文件中的设置(这里不用设置三个,struts会依据locale自动找到对应的文件)如下:

<message-resources parameter="Resources" />

三个message resources文件中定义的message key为:

<!-- Resources.properties -->
resource=Resources.properties.
from=Resources.properties.
<!-- Resources_en.properties -->
from=Resources_en.properties.
<!-- Resources_zh.properties 
  因为文件的编码被限制为ISO8859所以要有汉字必须用jdk的native2ascii提前转换 
-->
from=Resources_zh.properties.

下面的代码片段示例了bean:message标签的用法:

<bean:message key="from"/><br/>
<bean:message key="resource"/><br/>
<html:link action="/locale?language=en">English</html:link>
<html:link action="/locale?language=zh">Chinese</html:link>

上面的代码中含有改变locale的两个html:link标签,要使它们工作您的struts-config.xml文件中必须含有下面定义的form和action:

<form-bean name="localeForm" 
    type="org.apache.struts.action.DynaActionForm">
  <form-property name="language" type="java.lang.String" />
  <form-property name="country" type="java.lang.String" />
  <!--action成功后要跳到那里-->
  <form-property name="page"  type="java.lang.String" 
    initial="/message.jsp"/>
</form-bean>
	
<action path="/locale" type="org.apache.struts.actions.LocaleAction"
  name="localeForm" scope="request">
</action>

在不同的locale下我们得到了如下的两个结果:

在locale为zh时的结果:
Resources_zh.properties.
Resources.properties.
在locale为en时的结果:	
Resources_en.properties.
Resources.properties.

让我们来看一下在locale为zh时如何得到的是上面的结果。因为locale为zh所以<bean:message key="from"/><br/>先找Resources_zh.properties这个文件从中得到form键的值。而<bean:message key="resource"/><br/>也会先找Resources_zh.properties这个文件但这次没有找到resource键,这时Struts会到Resources.properties这个文件中找,很幸运这里找到了。如果还没有找到,或message resource文件不存在就会抛出异常。当locale为en时类似,您可以自己试试。

bean:page标签将页上下文中的application、config、request、response 或 session取出,然后用id属性值将它们绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。

下面的代码片段示例了bean:page标签取出response,然后使用bean:write标签将response的characterEncoding和contentType属性输出:

<bean:page id="res" property="response"/>
<!-- 其它标签通过绑定到page作用域中的属性使用该值 -->
<bean:write name="res" property="characterEncoding"/><br/>
<bean:write name="res" property="contentType"/><br/>
<!-- JSP脚本通过scripting变量使用该值 -->
<%
  String characterEncoding = res.getCharacterEncoding();
  String contentType = res.getContentType();
  out.println(characterEncoding+"<br/>");	
  out.println(contentType+"<br/>");	
%>

您可以用和上面类似的代码访问application、config、request 或 session中的任何一个对象。

bean:parameter标签取回请求中的参数值。如果没有指定multiple属性则依据刚取回的值创建一个String类型的bean。如果指定了multiple属性则依据刚取回的值创建一个String[]类型的数组。然后用id属性值将String或String[]绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。

下面的两个代码片段使用相同的url传递参数,url的形式为http://127.0.0.1:8080/struts-demo/parameter.jsp?param=1&param=2&param=3。前面的代码片段中没有指定multiple属性,因此p是String类型而且仅仅读取了参数的第一个值。后面的代码片段中指定了multiple属性的值,因此ps是String[]类型的包含所有参数的值。

<bean:parameter id="p" name="param"/>
<bean:write name="p"/>
<bean:parameter id="ps" multiple="true" name="param"/>
<logic:iterate id="p" name="ps">
  <bean:write name="p"/><br/>
</logic:iterate>

bean:resource标签取回指定的web应用程序的资源,以InputStream或String的形式保存到page作用域中并且创建scripting变量。采用什么形式取决于标签的input属性,如果指定input则以InputStream的形式保存,如果没有指定input则以String的形式保存。

下面的两个代码片段示例了bean:resource标签,其中resource.txt是要使用的资源文件。前面的代码片段中没有指定input属性,因此以String的形式处理资源文件,bean:write标签输出资源文件的内容。后面的代码片段中指定了input属性的值,因此以InputStream的形式使用资源文件,两个bean:write标签分别输出InputStream对象的实例名(如java.io.ByteArrayInputStream@16dadf9)和类名(如class java.io.ByteArrayInputStream)。

<bean:resource id="str" name="/resource.txt"/>
<!-- 其它标签通过绑定到page作用域中的属性使用该值 -->
<bean:write name="str"/><br/>
<!-- JSP脚本通过scripting变量使用该值 -->
<%
  out.println(str+"<br/>");
%>
<bean:resource id="is" input="true" name="/resource.txt"/>
<!-- 其它标签通过绑定到page作用域中的属性使用该值 -->
<bean:write name="is"/><br/>
<bean:write name="is" property="class"/>
<!-- JSP脚本通过scripting变量使用该值 -->
<%
  out.println(is+"<br/>");
  out.println(is.getClass()+"<br/>");
%>

bean:size标签创建一个java.lang.Integer类型的bean,这个bean的值为该标签指定的Collection或Map中所含元素的个数。 这可以和logic:iterate标签配合使用,因为logic:iterate标签不能得到所叠代的集合的元素的个数,这有时候很不方便。

下面的代码片段示例了bean:size标签取出persons中还有元素的个数,其中listForm和persons的定义参见bean:define标签部分:

<logic:notEmpty name="listForm" property = "persons">		
  <bean:size id="size" name="listForm" property = "persons"/>
  <bean:write name="size"/>		
</logic:notEmpty>  

bean:struts标签取回Struts的内部对象formBean、forward或mapping的值,然后用id绑定到page作用域中(这种绑定是为了其它标签能够使用该值),并创建对应的scripting变量(这种变量是为了JSP脚本能够使用该值)。

下面的代码片段示例了bean:struts标签取出listForm对象,让我们先来看一下listForm的定义在读代码:

<!-- listForm的定义<form-bean name="listForm" 
  type="org.solo.struts.form.ListForm" /> -->
<bean:struts id="listFormBean" formBean="listForm"/>
name:<bean:write name="listFormBean" property="name"/><br/>
type:<bean:write name="listFormBean" property="type"/><br/>
dynamic:<bean:write name="listFormBean" property="dynamic"/><br/>

上面代码运行的结果为:

name:listForm 
type:org.solo.struts.form.ListForm
dynamic:false 

bean:write标签将指定的bean的属性值写到当前的JspWriter中,并且可以对输出进行格式化。

下面的代码片段示例了bean:write标签输出User-Agent:

<logic:present header="User-Agent">
  <bean:header id="header" name="User-Agent"/>
  <bean:write name="header"/>
</logic:present>

下面的代码片段示例了bean:write标签格式化输出当前日期,其中now是在DataForm中定义的一个java.util.Date类型的域(值为new Date()),format.date.standard是在资源文件中的一个键(format.date.standard=yyyy-MM-dd):

<bean:define id="date" name="dataForm" property="now"/>
<br/><bean:write name="date"/>
<br/><bean:write name="date" format="MM/dd/yyyy"/>
<br/><bean:write name="date" formatKey="format.date.standard"/>

上面代码运行的结果为:

Sun Jun 04 17:04:05 CST 2006
06/04/2006
2006-06-04

虽然这里的标题是html:base标签,但是这里也是这篇指南要介绍的第一个Struts html标签。因此我想在这里从整体上简单的介绍一下,最后给出一个对照表。其中的绝大多数标签就不一一介绍了,要介绍的也不会在这里介绍,而是将其独立出来以显重要性。

从用户处收集数据是动态web应用非常重要的一个方面,因此构建输入表单也就自然而然的成为struts框架的一个重要内容。Struts html标签库含有创建Struts输入表单的标签,和其它标签库(bean、logic、nested和tiles)中的标签一起协作就可以产生基于html的用户界面。

下面的对照表会使您对Struts html标签库有一个整体的印象:

图示 1. Struts HTML标签和HTML元素对照表

html:cancel标签生成一个取消按钮。当点击该按钮后action servlet会绕过相应的form bean的validate()方法,同时将控制权交给相应的action。在该action中可以使用Action.isCancelled(HttpServletRequest)方法判断是否被取消了。如果返回true表示这个action被取消了,否则表示这个action没有被取消。

请注意,如果您修改了html:cancel标签的property属性值,那么struts提供的cancel探测机制就失效了,您自己必须提供类似的机制。

下面是可取消的action的配置文件,注意<set-property property="cancellable" value="true"/>这一行,如果不添加Struts会抛出org.apache.struts.action.InvalidCancelException异常。这是我在完成本指南的过程中发现的唯一向下不兼容的地方。

<action path="/cancel" 
  type="org.solo.struts.action.CancelAction" name="cancelForm" 
    scope="request">
  <set-property property="cancellable" value="true"/>
  <forward name="success" path="/cancel.jsp" />
</action>

下面是html:cancel标签的代码:

<html:cancel>取消</html:cancel>

下面是对应的action中的代码:

if(isCancelled(request)){			
  //action被取消时要做的事情写在这里
  return mapping.findForward("cancel");
}else{
  //action没有被取消时要做的事情写在这里
  return mapping.findForward("success");
}

html:select标签生成一个select元素。是单选还是多选取决于该标签的multiple属性。如果指定了multiple="true"则为多选,此时对应的属性应该是一个数组。如果没有指定multiple="true"则为单选,此时对应的属性应该是标量。

注意:为了正确的处理没有做任何的选择的情况,在ActionForm中的reset()方法中必须将标量属性设置为默认值而将数组的长度置为0。

另外的一个重要问题就是struts如何生成option元素了,这个任务struts交给了html:option、html:options和html:optionsCollection三个标签。

html:option标签

html:option标签生成一个HTML的option元素。该标签必须嵌在html:select标签中。它的显示文本来自其标签体,也可以来自于资源文件。它的value属性用来指定什么值将要被提交。

<html:option value="one">one</html:option>
<html:option value="two">two</html:option>

html:options标签

html:options标签生成多个HTML的option元素。该标签必须嵌在html:select标签中。而且工作方式有些特殊,它的name与property属性和其它标签的name与property属性意义不一致,让我们具体看一下它的工作方式。

  • 指定collection属性
  • 没有指定collection属性

指定collection属性

让我通过示例来介绍在指定collection属性时该标签的工作方式,首先要说明selectForm中的persons和listForm中的persons完全一致。请参见bean:define标签。

下面的代码先利用bean:define标签将selectForm中的persons取到page作用域中,然后html:options标签再依据collection="personCollection"选中这个persons并将其中的每一个对象(Person类型)生成一个option元素。该标签的property="id"表示persons中的对象(Person类型)的id属性将作为option元素的value值。该标签的labelProperty="name"表示persons中的对象(Person类型)的name属性将作为option元素的label值。

当这个select提交时所选择的值将被提交到selectForm(name="selectForm")中的person对象(这是在SelectForm中声明的一个Person类型的域专门用来接收提交的值)的id属性中(property="person.id")。

<bean:define id="personCollection" name="selectForm" 
  property="persons"/>
<html:select name="selectForm" property="person.id" size="1">
  <html:options collection="personCollection" property="id" 
    labelProperty="name"/> 
</html:select>

没有指定collection属性

让我通过示例来介绍没有指定collection属性时该标签的工作方式,先来看看ids和names的定义:

  private List<String> ids = null;
  private List<String> names = null;

上面的代码来自SelectForm,其中ids是一个String的列表,names也是一个String的列表。我们暂时假定这两个列表含有相同数目的元素。有了这些让我们开始介绍下面的代码。html:options标签用ids中的第i个值作为option元素的value值同时使用names中相同位置的值(第i个值)作为option元素的label值。如果ids比names长那么多出的ids中的值将即作为option的value又作为option的label。如果ids比names短那么多出的names的值会被丢掉。

当这个select提交时所选择的值将被提交到selectForm(name="selectForm")中的person对象(这是在SelectForm中声明的一个Person类型的域专门用来接收提交的值)的id属性中(property="person.id")。

<html:select name="selectForm" property="person.id" size="1">
  <html:options property="ids" labelProperty="names"/> 
</html:select>

html:optionsCollection标签

html:optionsCollection标签生成多个HTML的option元素。该标签必须嵌在html:select标签中。它的功能和html:options标签的相同,但是它的name与property属性和其它标签的name与property属性意义一致,理解起来比较自然。

让我通过示例来介绍html:optionsCollection标签的用法。首先依据name="selectForm"和property="persons"取到selectForm中的persons列表,然后将列表中的对象(Person类型)的id属性作为option元素的value值(value="id"),将列表中的对象(Person类型)的name属性作为option元素的label值(label="name")。

<html:select name="selectForm" property="person.id" size="1">
  <html:optionsCollection name="selectForm" property="persons" 
  label="name" value="id"/> 
</html:select>

下面是一个多选的示例,虽然示例中使用了html:options标签,但是html:option和html:optionsCollection也能够用来多选。而且您还必须意识到html:option、html:options和html:optionsCollection这三个标签可以同时使用。代码中的personIds是SelectForm中声明的一个String[]类型的数组用来接收提交的多个值。

<html:select name="selectForm" property="personIds" 
    multiple="true" size="2">
  <html:options property="ids" labelProperty="names"/> 
</html:select>

html:check标签生成一个checkbox。这里的value值可以是true,yes或on。如果您要提交其它的值(如某种形式的标识)应该考虑使用html:multibox标签。

注意:为了正确的处理没有选中的checkbox您必须在reset()中设置对应的属性为false。

下面的代码示例了html:checkbox标签的用法,其中CheckboxForm中声明了三个boolean类型的域,如下:

  
            	
  private boolean one = false;
  private boolean two = false;
  private boolean three = false;
<html:checkbox name="checkboxForm" property="one">
  One
</html:checkbox>
<html:checkbox name="checkboxForm" property="two">
  Two
</html:checkbox>
<html:checkbox name="checkboxForm" property="three">
  Three
</html:checkbox>

如果选中后被提交则相应的属性的值为true。

html:radio标签生成一个radio。主要的用法有两种,下面我们通过代码来示例。

下面的代码示例了html:radio标签的一般用法,如果被提交则选中的radio的value值将被提交到radioForm中的id中。

<html:radio name="radioForm" property="id" value="00001">
  One
</html:radio>
<html:radio name="radioForm" property="id" value="00002">
  Two
</html:radio>

下面的代码示例了html:radio标签的典型用法,其中的persons和bean:define标签中的一致,您可以参考bean:define标签。我只介绍这个<html:radio idName="person" property="id" value="id">,idName指定html:radio要使用的bean(这里为person),value="id"表示person的id属性将作为radio元素的value值而property="id"表示提交时选中的radio的值将被提交给radioForm中的id属性。

<logic:notEmpty name="radioForm" property="persons">		
  <logic:iterate id="person" name="radioForm" property="persons">
    <html:radio idName="person" property="id" value="id">
      <bean:write name="person" property="name"/>
    </html:radio> 
  </logic:iterate>		
</logic:notEmpty>

html:multibox标签生成多个checkbox。当您要使用大量的checkbox时使用这个标签非常方便,可以使您避免在ActionForm中声明大量的boolean类型的变量,带之以一个数组就行了。

注意:为了正确的处理没有选中的checkbox您必须在reset()中设置数组的长度为0。

下面的代码示例了html:multibox标签的一般用法,如果被提交则选中的所有checkbox的value值将被提交到multiboxForm中的selectedItems中,这是一个String[]数组。

<html:multibox name="multiboxForm" property="selectedItems" 
  value="00001"/>
<html:multibox name="multiboxForm" property="selectedItems" 
  value="00002"/>

下面的代码示例了html:multibox标签的典型用法:

<logic:iterate id="person" name="multiboxForm" property="persons"> 
  <html:multibox property="selectedItems">
    <bean:write name="person" property="id"/>
  </html:multibox> 
  <bean:write name="person" property="name"/> 
</logic:iterate>

html:link标签生成一个锚点(<a>)元素。我从html:link标签如何构造基本url和如何构造query参数两个方面来介绍这个标签。

构造基本url是依据该标签的如下四个属性进行的,这四个属性一次只能出现一个。让我们看看它们:

  • forward,指定一个全局ActionForward的名称。另外如果forward是module相关的则该forward必须指向一个action而不能是一个页面。
  • action,指定一个Action的名称。
  • href,struts会直接使用这个值而不会对其进行任何处理。
  • page,指定一个页面的路径,必须以/开始。

构造query参数,下面列举了可能的形式,其中baseurl只是一个占位符:

  • baseurl?p=00001(单参单值)
  • baseurl?p1=00001&p2=00002&p3=00003(多参单值)
  • baseurl?p=00001&p=00002&p=00003(单参多值)
  • baseurl?p1=00001&p2=00002&p=00001&p=00002&p=00003(混合)

下面我们以代码示例来说明每一种html:link的用法,首先让我们花点时间看看相关action中的代码:

<!-- 下面所有代码的数据都是在这里构造的 -->
public ActionForward execute(ActionMapping mapping,ActionForm form,
    HttpServletRequest request,HttpServletResponse response) {

  DataForm dataForm = (DataForm) form;

  dataForm.setParam("00001");

  HashMap paramSingleMap = new HashMap();
  paramSingleMap.put("p1","00001");
  paramSingleMap.put("p2","00002");
  paramSingleMap.put("p3","00003");		
  dataForm.setParamSingleMap(paramSingleMap);

  HashMap paramMultiMap = new HashMap();
  paramMultiMap.put("p",new String[]{"00001","00002","00003"});		
  dataForm.setParamMultiMap(paramMultiMap);

  HashMap paramSMMap = new HashMap();
  paramSMMap.put("p1","00001");
  paramSMMap.put("p2","00002");
  paramSMMap.put("p",new String[]{"00001","00002","00003"});		
  dataForm.setParamSMMap(paramSMMap);

  List<Person> persons = new ArrayList<Person>();		
  Person person1 = new Person();
  person1.setId("00001");
  person1.setName("赵辰");		
  Person person2 = new Person();
  person2.setId("00002");
  person2.setName("李为芳");		
  Person person3 = new Person();
  person3.setId("00003");
  person3.setName("王微");		
  persons.add(person1);
  persons.add(person2);
  persons.add(person3);		
  dataForm.setPersons(persons);

  return mapping.findForward("success");
}
<!-- 这用来设置一个位置 -->
<html:link linkName="top"/>
<!-- 这用来定位到上面的那个位置 -->
<html:link page="/link.do" anchor="top">Go Top</html:link>
<html:link page="/link.do" paramId="p" paramName="dataForm" 
    paramProperty="param">
  单参单值
</html:link><br/>
<html:link page="/link.do" name="dataForm" property="paramSingleMap">
  多参单值
</html:link><br/>
<html:link page="/link.do" name="dataForm" property="paramMultiMap">
  单参多值
</html:link><br/>
<html:link page="/link.do" name="dataForm" property="paramSMMap">
  混合
</html:link>

下面的代码示例了html:link标签的indexed属性和indexId属性的用法,这两个属性只有html:link标签嵌套在logic:iterate标签中时才可用。

<logic:iterate id="person" name="dataForm" property="persons">
  <html:link action="/link.do" paramId="person" paramName="person" 
	  paramProperty="id" indexed="true" indexId="number">
    person
  </html:link>
  <br/>
</logic:iterate>
<!-- 下面是上面代码的运行结果(产生的html)
  <a href="/struts-demo/link.do?person=00001&number=0">赵辰</a><br/>
  <a href="/struts-demo/link.do?person=00002&number=1">李为芳</a><br/>
  <a href="/struts-demo/link.do?person=00003&number=2">王微</a><br/> 
  其中的number是由indexId="number"确定的,而该参数的值为元素在集合中的位置。
-->

html:rewrite标签和html:link标签类似只是不生成锚点(<a>),而是简单的输出字符串。

html:errors标签和html:messages标签的功能相似,所以我们放到一起来介绍。

html:errors标签将由name属性指定的ActionMessages、ActionErrors、String和String[]直接输出到页面中。

html:messages标签将用由name属性(注意message属性值对它的影响)指定的ActionMessages、ActionErrors、String和String[]创建一个新的属性和scripting变量,使用id属性值作为名称。

html:errors标签和html:messages标签的property属性是用来为errors和messages分类的。我们可以给这两个标签指定property属性,以便只显示某一类的错误或消息。

在资源文件增加了如下的内容:

# -- standard errors --
errors.header=<ul>
errors.prefix=<li>
errors.suffix=</li>
errors.footer=</ul>

error=error with none value .
error1=error1 with one value is {0} .
error2=error2 with two values are {0} , {1} .
error3=error3 with three values are {0} , {1} , {2} .
error4=error4 with four values are {0} , {1} , {2} ,{3} .

下面的代码示例了actionErrors的构造:

public ActionErrors validate(ActionMapping mapping, 
    HttpServletRequest request) {
  ActionErrors actionErrors = new ActionErrors();
  actionErrors.add("property1",
  new ActionMessage("error"));
  actionErrors.add("property2",
  new ActionMessage("error1","value0"));
  actionErrors.add("property2",
  new ActionMessage("error2","value0","value1"));
  actionErrors.add("property3",
  new ActionMessage("error3","value0","value1","value2"));
  actionErrors.add("property3",
  new ActionMessage("error4","value0","value1","value2","value3"));

  actionErrors.add("property4",
  new ActionMessage("error1",new Object[]{"value0"}));
  actionErrors.add("property4",
  new ActionMessage("error2",new Object[]{"value0","value1"}));
  actionErrors.add("property4",
  new ActionMessage("error3",new Object[]{"value0","value1",
    "value2"}));
  actionErrors.add("property5",
  new ActionMessage("error4",new Object[]{"value0","value1",
    "value2","value3"}));

  actionErrors.add("notBundle",
  new ActionMessage("not a bundle key",false));
  return actionErrors;
}	

errors标签代码示例:

<html:errors/>
<br/>	
<html:errors property="property4"/>

messages标签代码示例:

<logic:messagesPresent>
  <ul>
  <html:messages id="message">
    <li><bean:write name="message"/></li>
  </html:messages>
  </ul>
</logic:messagesPresent>
<br/>
<logic:messagesPresent>
  <ul>
  <html:messages id="message" property="property4">
    <li><bean:write name="message"/></li>
  </html:messages>
</ul>
</logic:messagesPresent>

图示 2. 上面的两段代码示例运行结果相同,如下所示:

html:javascript标签生成用于校验的javascript脚本代码。

下面的代码片段示例了html:javascript标签的基本用法,其中formName属性的值是在validation.xml文件的<formset>中定义的form的名称。有一点值得注意的是在确定<formset>时要使用合适的language属性值。

<html:javascript formName="dataForm"/>

html:xhtml标签在页面中一出现就是告诉该页的所有其它的Struts html标签以XHTML1.0兼容的形式输出。这和将html:html标签的xhtml属性值指定为true有些类似。如果上述情况都没有出现,Struts html标签将以html4.01兼容的形式输出。

logic:iterate标签用来迭代集合,您可以使用如下方式来为这个标签指定其要叠代的集合:

  • 使用一个运行时表达式,这个表达式的值是一个集合。
  • 用name属性引用一个JSP Bean,这个JSP Bean本身就是一个集合。
  • 用name属性引用一个JSP Bean,这个JSP Bean的一个属性是一个集合,这时可以联合使用property来指定这个集合。

上面所提到的集合可以是:

  • 对象类型或原子类型的数组(Array)。
  • java.util.Collection的实现,包括ArrayList,Vector。
  • java.util.Enumeration的实现。
  • java.util.Iterator的实现。
  • java.util.Map的实现,包括HashMap,Hashtable和TreeMap。

如果您叠代的集合中含有null的值,这时需要采取一定的措施,因为这时logic:iterate不会在page作用域中创建对象。一般是使用<logic:present>标签或<logic:notPresent>标签来判断一下。

下面是logic:iterate叠代ArrayList的示例的对象引用关系和部分代码:

图示 3. logic:iterate中对象的引用关系

图中的persons列表是在ListAction中填充的,在这里只是简单的加入了三个Person对象,在实际的应用中这些数据应该取自数据库。具体的代码如下:

public ActionForward execute(ActionMapping mapping,ActionForm form,
    HttpServletRequest request,	HttpServletResponse response) {

  ListForm listForm = (ListForm) form;
	
  List<Person> persons = new ArrayList<Person>();
	
  Person person1 = new Person();
  person1.setId("00001");
  person1.setName("赵辰");
	
  Person person2 = new Person();
  person2.setId("00002");
  person2.setName("李为芳");
	
  Person person3 = new Person();
  person3.setId("00003");
  person3.setName("王微");
	
  persons.add(person1);
  persons.add(person2);
  persons.add(person3);
	
  listForm.setPersons(persons);
	
  return mapping.findForward("success");
}

标签输出的结果为:

00001-->赵辰 
00002-->李为芳 
00003-->王微

如果指定的值出现该标签就会创建其标签体内的内容。该标签用于以下情况:

  • 检查具有指定名称的cookie是否出现。
  • 检查具有指定名称的header是否出现。
  • 检查具有指定名称的JSP Bean是否出现 或 检查具有指定名称的JSP Bean中的property属性是否出现。
  • 检查request中指定名称的参数是否出现。
  • 检查当前的认证用户是否与指定的安全角色相关联。
  • 检查当前认证的主体是否具有指定的名字。

下面的代码示例了logic:present标签检查具有指定名称User-Agent的header是否出现:

<logic:present header="User-Agent">
  您的浏览器是<bean:header id="userAgent" name="User-Agent"/>
    <bean:write name="userAgent"/>。<br/>
</logic:present>

logic:notPresent标签的应用正好和logic:present标签相反。

logic:messagesPresent标签用于以下情况:

  • 在request作用域中存在一个ActionMessages对象,标签的property属性和ActionMessages中的property对应。
  • 在request作用域中存在一个ActionErrors对象,标签的property属性和ActionErrors中的property对应。
  • 存在一个String对象,将其转换(构造)成ActionMessage然后在添加到ActionMessages中。
  • 存在一个String Array对象,将数组中的每一个String转换成一个ActionMessage,在将其添加到ActionMessages中。

标签的message属性值为true时将以Globals.MESSAGE_KEY为key在request作用域中查找Message,其它情况下,将name的值作为key查找,如果name 没有出现,默认值为Globals.ERROR_KEY。

下面的代码示例了logic:messagesPresent标签的典型用法:

<logic:messagesPresent>
  <ul>
  <html:messages id="message">
    <li><bean:write name="message"/></li>
  </html:messages>
  </ul>
</logic:messagesPresent>	

标签logic:messagesNotPresent的应用正好和logic:messagesPresent的应用相反。

logic:empty标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。该标签用于以下情况:

  • 当Java对象为null时
  • 当String对象为""时
  • 当java.util.Collection对象中的isEmpty()返回true时
  • 当java.util.Map对象中的isEmpty()返回true时

下面的代码示例了logic:empty标签判断集合persons是否为空:

<logic:empty name="listForm" property = "persons">
  <div>集合persons为空!</div>			
</logic:empty> 	

logic:notEmpty标签的应用正好和logic:empty标签相反。

logic:match标签用来处理子串匹配问题。

如果指定的值匹配该标签就会创建其标签体内的内容。该标签用于以下情况:

  • 检查具有指定名称的cookie是否与该标签的value匹配。
  • 检查具有指定名称的header是否与该标签的value匹配。
  • 检查具有指定名称的JSP Bean是否与该标签的value匹配 或 检查具有指定名称的JSP Bean中的property属性值是否与该标签的value匹配。
  • 检查request中指定名称的参数值是否与该标签的value匹配。

下面的代码示例了logic:match标签的典型用法:

<logic:present header="User-Agent">
  <logic:match header="User-Agent" value="MSIE 6.0">
    MS IE 6.0
  </logic:match>
</logic:present> 	

logic:notMatch标签的应用正好和logic:match标签相反。

这里要介绍的不只是logic:equal(=)标签,而是要介绍一类标签,这类标签完成比较运算,包括:

  • logic:equal(=)
  • logic:notEqual(!=)
  • logic:greaterEqual(>=)
  • logic:lessEqual(<=)
  • logic:graterThan(>)
  • logic:lessThan(<)

该类标签的用法类似,我们只介绍logic:equal标签,其它的留给您自己去完成。

logic:equal是用来判断是否相等的。如果相等,该标签体中嵌入的内容就会被处理。该标签用于以下情况:

  • 比较由该标签的cookie属性指定的cookie的值是否与该标签的value属性值相等。
  • 比较由该标签的header属性指定的header的值是否与该标签的value属性值相等。
  • 比较由该标签的name属性指定的JSP Bean是否与该标签的value属性值相等(property属性不出现)或比较由该标签的name属性指定的JSP Bean中的property属性值是否与该标签的value属性值相等。
  • 比较由该标签的parameter属性指定的参数值(request中)是否与该标签的value属性值相等。

我觉得将forward和redirect这两个动作放到一起对比着介绍更加有利于理解,基于此原因也就将logic:forward和logic:redirect这两个标签也拿到这里一起介绍了。

让我们看看这两个动作的区别:

  • forward是在servlet内部执行,浏览器完全不会感知到这个动作,原始的url也不会改变,浏览器重新装载的话也只是对原始的请求进行简单的重复。
  • redirect则分成两个步骤:第一步是web应用程序告诉浏览器第二个url,然后浏览器向第二个url发送请求。

redirect比forward慢,因为浏览器要做二次请求。还有就是要注意,在第一次的请求作用域(request作用域)内的bean对于第二次请求是不可见的。

理解了上面描述的区别也就知道了什么时候该选用logic:forward标签什么时候该选用logic:redirect标签了。logic:forward标签完成PageContext.forward()或HttpServletResponse.sendRedirect(),如何选择由控制器决定。logic:redirect标签完成HttpServletResponse.sendRedirect()。

在使用logic:redirect标签时我们可以向使用html:link一样构造baseurl和query参数。如果您感兴趣可以参考html:link标签。

这篇指南的背景是Struts-1.2.9,其中的所有的代码示例也都是在这个版本下调试通过的。目前Struts仍然在快速的发展中,但是从开发者应用的角度来讲还是比较稳定的。因此我有理由相信其中的代码示例也可以很好的运行在其它的版本之上。最后希望这篇指南能够让您心情愉快!

参考资料
solo L 一位有些理想主义的软件工程师,创建了solol.org。他常常在这里发表一些对技术的见解。


struts-tiles框架
tuming 发表于 2006-10-30 2:58:04

单纯使用<tiles:insert>开发,用它来代替<jsp:include>

      <jsp:include page="indexContent.jsp"/>

<tiles:insert page="indexContent.jsp" flush="true"/>

tiles:insert标签取代JSP include指令来创建复合式页面,代码仅有稍微的差别,两者的利弊也很相似。单纯使用tiles:insert标签来创建复合式页面,还没有充分发挥Tiles框架的优势。

 

  使用模版开发

       开发一个模版的jsp页面

       就是包含有<tiles:insert attribute=.

       开发一个使用模版的页面,此jsp页面仅包含以下内容

(此jsp页面是用来被别人访问的,而它显示的是模版的内容)

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

       <tiles:insert page=模版页.jsp flush=true>

            <tiles:put name=模版页指定的attribute属性 value="/blog/xx.jsp/>

             …………….

       </tiles:insert>

采用Tiles模板机制,大大提高了代码的可重用性和可维护性,模板中包含了网页共同的布局。如果布局发生变化,只需要修改模板文件,无需修改具体的网页文件。不过,从例程16-13和16-14可以看出,尽管index.jsp和product.jsp文件的长度都缩短了,但是两者还是存在重复代码。

 

 


  
使用tiles组件开发

1.在tiles-defs.xml中配置好一个或多个tiles组件(要先配好模版页layout.jsp)

<tiles-definitions>
   <definition  name="index-definition"  path="/layout.jsp">
      <put name="sidebar" value="/blog/sidebar.jsp"/>
      <put name="header"  value="header.jsp"/>   
      <put name="content" value="/blog/indexContent.jsp"/>   
      <put name="footer"  value="footer.jsp"/>   
   </definition>

………….

</tiles-definitions>

 

2.在struts-config.xml中配置好tiles插件

<plug-in className="org.apache.struts.tiles.TilesPlugin" >
  <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
  <set-property property="definitions-parser-validate" value="true" />

</plug-in>

definitions-parser-validate参数:指定XML解析器是否验证Tiles配置文件,可选值包括true和false,默认值为true。所以第二个可以不写

 

然后在jsp页面中,哪些地方要用到,就用一句

<tiles:insert definition=" index-definition "/>

一个jsp页面还可以配置任何别的jsp元素,如table, form,

也可以在适当的地方插入多个tiles组件<tiles:insert definition=..

组件必需先在tiles-defs.xml中定义

 

如果一个页面仅由tiles-defs.xml中定义的一个tiles组件组成

可以将导航直接到此tiles组件

<action-mappings>
<action   path="/index"
          type="org.apache.struts.actions.ForwardAction"
          parameter="index-definition">
 </action>

</action-mappings>

 

与模版开发不同的是模版开发在jsp页面中直接调用模版(不写别的jsp代码)

Tiles组件开发是将定义tiles组件(它来调用模版),然后将它插入到相应的jsp中

当然在Action配置的导航到一个tiles组件和使用模版开发有点类似

它们的共同点是,都需要构造模版页

 

 

通过Struts Action来调用Tiles组件,可以充分发挥Struts框架负责流程控制的功能。此外,可以减少JSP文件的数目。例如,如果直接通过Struts Action来调用名为"index-definition"的Tiles组件,就不必再创建index.jsp文件。

 

 

Tiles组件的组合与扩展

由于tiles组件定义在tiles-defs中,所以相关的组合与扩展都在这个xml文件中完成

组合

<definition  name="sidebar-definition"   path="/sidebar-layout.jsp">
      <put name="top"  value="flags.jsp"/>
      <put name="bottom" value="/blog/sidebar-links.jsp"/>
   </definition>
   
   <definition  name="index-definition"   path="/layout.jsp">
      <put name="sidebar" value="sidebar-definition" type="definition"/>
      <put name="bottom" value="/blog/siderbar.jsp"/>
 
可以看到第二个tiles组件有不同于第一个tiles组件的模版页(path=)
插入到第二个tiles组件的模版某一个地方,用了第一个tiles组件(把它当成了一个jsp文件往里插,唯一不同的是给put多加一个属性 type="definition")
 
扩展

在定义一个tiles组件时定义一个空的引入

<put name="content" value=""/>

紧接着在下面定义很多个组件扩充它,每一个组件唯一的不同就是这个content

   <definition  name="index-definition"  extends="base-definition">
      <put name="content" value="/blog/indexContent.jsp"/>   
   </definition>
   <definition  name="product-definition"  extends="base-definition">
      <put name="content" value="productContent.jsp"/>   
   </definition>

由于它是扩充基本的模版,所以它有了extends属性后,就用了基本tiles组件的模版,这里不能再用path给它指定一个模版了



首页 上一页 下一页 尾页 页次:1/12页  3篇日志/页 转到:
Powered by Oblog.