1.Struts2的作用
一 介绍
Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。
Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。包括最常用的jsp页面,也可以说Velocity和FreeMarker等模板技术中的使用
二.Struts2分类
(1)UI标签:(User Interface, 用户界面)标签,主要用于生成HTML元素标签,UI标签又可分为表单标签非表单标签
(2)非UI标签,主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出ValueStack中的值,完成国际化等功能的)
(3)ajax标签
三.页面使用struts标签
<%@ taglib uri="/struts-tags" prefix="s"%>
四.标签的使用
(1)property标签,用于输出指定的值:
<s:property
value
=
"#userlist"
></s:property>
(2)iterator(循环遍历)和if(条件语句)标签结合使用:
novelList指action中设置的带get()方法的属性
id指novellist的遍历项
<s:iterator value="novelList" id="row" status="st" >
<s:if test="(#st.index)%2==0"><div class='content_list blue'></s:if>
<s:if test="(#st.index)%2==0"><div class="list list_distance"></s:if>
<s:if test="(#st.index)%2==1"><div class="list"></s:if>
<dl>
<dt><a href="${row.link_url} target="_blank"><img src="${row.imgPath}" alt="${row.name}" border="0" /></a></dt>
<dd class="font_14 black"><strong><a href="${row.link_url}" target="_blank">${row.name}</a></strong></dd>
<dd><span class="black">作者:</span><span class="blue list_distance">${row.author}</span><span class="black">人气:${row.clickPoint}</span></dd>
<dd><span class="black">简介:${row.outline}</span></dd>
</dl>
<div class="clear"></div>
</div>
<s:if test="(#st.index)%2==1"><div class="clear"></div></div></s:if>
</s:iterator>
(3)action标签,jsp页面中包含action页面
<s:action name="novel_imgjs" namespace=”/novel“ executeResult="true" ></s:action>
(4)doubleselect标签级联标签城市
<style type="text/css"> .doubleselect br{ display:none; } </style> //横向显示
<s:set name="area" value="#{'请选择':{'请选择'},
'北京':{'北京'},
'天津':{'天津'},
'河北':{'石家庄','唐山','秦皇岛','邯郸','邢台','保定','张家口','承德','沧州','廊坊','衡水'},
'山西':{'太原','大同','阳泉','长治','晋城','朔州','晋中','运城','忻州','临汾','吕梁'},
'内蒙古自制区':{'呼和浩特','包头','乌海','赤峰','通辽','鄂尔多斯','呼伦贝尔','巴彦淖尔','乌兰察布','兴安盟','锡林郭勒盟','阿拉善盟'},
'辽宁':{'沈阳','大连','鞍山','抚顺','本溪','丹东','锦州','营口','阜新','辽阳','盘锦','铁岭','朝阳','葫芦岛'},
'吉林':{'长春','吉林','四平','辽源','通化','白山','松原','白城','延边朝鲜族自治州'},
'黑龙江':{'哈尔滨','齐齐哈尔','鸡西','鹤岗','双鸭山','大庆','伊春','佳木斯','七台河','牡丹江','黑河','绥化','大兴安岭地区'},
'上海':{'上海'},
'江苏':{'南京','无锡','徐州','常州','苏州','南通','连云港','淮安','盐城','扬州','镇江','泰州','宿迁'},
'浙江':{'杭州','宁波','温州','嘉兴','湖州','绍兴','金华','衢州','舟山','台州','丽水'},
'安徽':{'合肥','芜湖','蚌埠','淮南','马鞍山','淮北','铜陵','安庆','黄山','滁州','阜阳','宿州','巢湖','六安','亳州','池州','宣城'},
'福建':{'福州','厦门','莆田','三明','泉州','漳州','南平','龙岩','宁德'},
'江西':{'南昌','景德镇','萍乡','九江','新余','鹰潭','赣州','吉安','宜春','抚州','上饶'},
'山东':{'济南','青岛','淄博','枣庄','东营','烟台','潍坊','济宁','泰安','威海','日照','莱芜','临沂','德州','聊城','滨州','菏泽'},
'河南':{'郑州','开封','洛阳','平顶山','安阳','鹤壁','新乡','焦作','濮阳','许昌','漯河','三门峡','南阳','商丘','信阳','周口','驻马店','济源'},
'湖北':{'武汉','黄石','十堰','宜昌','襄樊','鄂州','荆门','孝感','荆州','黄冈','咸宁','随州','恩施土家族苗族自治州','省直辖县级行政单位'},
'湖南':{'长沙','株洲','湘潭','衡阳','邵阳','岳阳','常德','张家界','益阳','郴州','永州','怀化','娄底','湘西土家族苗族自治州'},
'广东':{'广州','韶关','深圳','珠海','汕头','佛山','江门','湛江','茂名','肇庆','惠州','梅州','汕尾',' 河源','阳江','清远','东莞','中山','潮州','揭阳','云浮'},
'广西壮族自治区':{'南宁','柳州','桂林','梧州','北海','防城港','钦州','贵港','玉林','百色','贺州','河池','来宾','崇左'},
'海南':{'海口','三亚','省直辖县级行政单位'},
'重庆':{'重庆'},
'四川':{'成都','自贡','攀枝花','德阳','绵阳','广元','遂宁','内江','乐山','南充','眉山','宜宾','广安 ','达州','雅安','巴中','资阳','阿坝藏族羌族自治州','甘孜藏族自治州','凉山彝族自治州'},
'贵州':{'贵阳','六盘水','遵义','安顺','铜仁地区','黔西南布依族苗族自治州','毕节地区','黔东南苗族侗族自治州','黔南布依族苗族自治州','辽阳','盘锦','铁岭','朝阳','葫芦岛'},
'云南':{'昆明','曲靖','玉溪','保山','昭通','丽江','普洱','临沧','楚雄彝族自治州','红河哈尼族彝族自治州','文山壮族苗族自治州','西双版纳傣族自治州','大理白族自治州','德宏傣族景颇族自治州','怒江傈僳族自治州','迪庆藏族自治州'},
'西藏自治区':{'拉萨市','昌都地区','山南地区','日喀则地区','那曲地区','阿里地区','林芝地区'},
'陕西':{'西安','铜川','宝鸡','咸阳','渭南','延安','汉中','榆林','安康','商洛'},
'甘肃':{'兰州','嘉峪关','金昌','白银','天水','武威','张掖','平凉','酒泉','庆阳','定西','陇南','临夏回族自治州','甘南藏族自治州'},
'青海':{'西宁市','海东地区','海北藏族自治州','黄南藏族自治州','海南藏族自治州','果洛藏族自治州','玉树藏族自治州','海西蒙古族藏族自治州'},
'宁夏回族自治区':{'银川','石嘴山','吴忠','固原','中卫'},
'新疆维吾尔自治区':{'乌鲁木齐','克拉玛依','吐鲁番地区','哈密地区','昌吉回族自治州','博尔塔拉蒙古自治州','巴音郭楞蒙古自治州','阿克苏地区','克孜勒苏柯尔克孜自治州','喀什地区','和田地区','伊犁哈萨克自治州','塔城地区','阿勒泰地区','自治区直辖县级行政区划'},
'台湾':{'台北','高雄','基隆','台中','台南','新竹','嘉义'},
'香港特别行政区':{'香港'},
'澳门特别行政区':{'澳门'}
}" />
<font><font>选择出生地:</font></font>
</td>
<td style="width:400px">
<div class="doubleselect">
<s:doubleselect formName="userRegisterForm" label="地域" list="#area.keySet()" name="province" doubleName="city" doubleList="#area[top]" theme="simple" />
</div>
</td>
(5)datetimepicker标签
struts2.1.6 把struts2.0中的和ajax相关的,如datetimepicker,tree,treenode 都移动到了dojo中了解决方法如下:
1.jsp中加入如下内容
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
2.<head>中加入下列
<head>
<s:head />
<sx:head />
</head>
3.页面中使用
<sx:datetimepicker name="birthday" label="生日:" displayFormat="yyyy-MM-dd"></sx:datetimepicker>
4.项目中引入struts2-dojo-plugin-2.2.1.1.jar 放在/web-inf/lib下。