subsetsource=”myList”count=”2”start=”3”>
iterator>property/>
iterator>
subset>
1.css(覆盖struts2原来的css)
2.覆盖单个文件
$#%的区别
$用于i18n和struts的配置文件
#取得ActionContext的值
%将原来的文本属性解析为OGNL表达式,对本来就是OGNL的属性不起作用
JavaScript
区分大小写,基于对象
JSP注释和HTML注释的区别
HTML注释:
---->
能在客户端显示一个注释,标记内的所有JSP脚本元素、指令和动作正常执行,也就是说编译器会扫描注释内的代码,如:
—这个页面加载于<%=newjava.util.Date().toString()%>-->,在客户端HTML源代码中显示为:
—这个页面加载于SATOct1120:
38:
20CST2011-->
JSP注释:
<%%>
JSP引擎对JSP注释不作任何处理,既不发送到客户端,也不在客户端的JSP页面显示,客户端源代码中是看不到的
JavaScript注释
--
****
//-->
arrayObject.splice(index,howmany,element1,.....,elementX)
Parameter
参数
Description
描述
index
必选项。
指定在哪个位置加入/删除元素,必须是数字
howmany
必选项。
指定有多少元素应该被删除。
必须是数字,可以是"0"
element1
可选。
指定要加入到数组中的新元素
elementX
可选。
可以加入多个元素
如:
vararr=newArray(5)
arr[0]="Jani"
arr[1]="Hege"
arr[2]="Stale"
arr[3]="KaiJim"
arr[4]="Borge"
document.write(arr+"
")
arr.splice(2,0,"Lene")
document.write(arr+"
")
输出结果为:
Jani,Hege,Stale,KaiJim,Borge
Jani,Hege,Lene,Stale,KaiJim,Borge
Window.setTimeout(“function()”,val);表示多少毫秒(val)之后执行function()函数,
Window.status=“*”,用来设置状态列(statusbar)显示的文字内容
正则表达式
正则表达式被定义在一对“/”之间,如varfilter=/a$/可以匹配任意以字母a结尾的字符串
元字符:
在正则表达式中有特殊意义的专用字符,用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式,如“+”、“?
”、“*”
定位符:
用于规定匹配模式在目标对象中的出现位置,如“^”、“$”、“\b”、“\B”
^匹配字符串的开头,在多行检索中,匹配一行的开头
$匹配字符串的结尾,在多行检索中,匹配一行的结尾
/b匹配一个词语的边界。
简而言之,就是位于字符/w和/W之间的位置,或位于字符/w
和字符串的开头和结尾的位置(但注意:
[/b]匹配的是退格符)
/B匹配非词语边界的字符
限定符:
用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配,默认情况下,正则表达式使用最长(也叫贪婪)匹配原则,*、+和?
限定符都是贪婪的,因为它们会尽可能多的匹配文字,在其他限定符(*、+{n}、{n,}、{n,m})之后加上“?
”,就会变成最短(也叫非贪婪)匹配原则。
+
匹配前面的子表达式出现一次或连续多次,如”ab+”与在字母a后连接出现一个或多个b的字符串匹配,+等价于{1,}
*
匹配前面的子表达式出现零次或连续多次,如”ab*”与在字母a后连接出现零个或多个b的字符串匹配,*等价于{0,}
?
匹配前面的子表达式出现零次或一次,如”ab?
”可以匹配’a’或’ab’,+等价于{1,}
{n}
n是一个非负整数,匹配前面的子表达式连续出现n次
{n,}
n是一个非负整数,匹配前面的子表达式至少连续出现n次,“b{1,}”等价于“b+”,“b{0,}”匹配“b*”
{n,m}
m和n是一个非负整数,且n<=m,逗号和数字之间不能有空格,匹配前面的子表达式至少连续出现n次,最多连续出现m次,“b{0,1}”匹配“b?
”
选择匹配符:
只有一个,就是“|”,用圆括号将所有选项括起来,相邻选项之间用“|”分隔,两个选项是“|”两边尽可能最大的表达式。
分组组合符和反向引用符:
分组组合符就是将正则表达式中的某一部分内容组合起来的符号,反向引用符则是用于匹配前面的分组组合所捕获到的内容标识符号
(1)(pattern)将圆括号中的pattern部分组合成一个可统一操作的组合项和子匹配,每个捕获的子匹配项按照它们在正则表达式模式中从左到右出现的顺序存储在缓冲区中.缓冲区从1开始编号,最多可存储99个子匹配捕获的内容.存储在缓冲区中的子匹配捕获的内容,可以在编程语言中被检索,也可以在正则表达式中被反向引用.若要匹配字面意义的括号字符"("和")",在正则表达式中要分别使用"/("和"/)".
(2)/num匹配编号为num的缓冲区所保存的内容,此处的num是一个标识特定缓冲区的一位或两位十进制正整数,这种方式称为子匹配的反向引用.反向引用最有用的应用之一就是能提供表示相同匹配项的能力,例如,要匹配连续的5个数字字符,可以使用/d{5}作为正则表达式文本,它可以匹配12345,但是,要匹配连续的5个相同的数字字符,如55555、11111等,需要使用(\d)\1{4}作为正则表达式文本,\1表示与前面(\d)所捕获的内容一样,\1{4}则表示前面的(\d)所捕获的内容还连续出现4次.又例如,要匹配"Isisthecostofofgasolinegoingupup?
"中所有连续重复的单词部分,可以使用^b([a-z]+)\1\b\gi作为正则表达式文本.
(3)(?
:
pattern)将圆括号中的pattern部分组合成一个可统一操作的组合项,但不把这部分内容当作子匹配捕获,即pattern部分是一个非捕获匹配,它匹配的内容不存储在缓冲区中供以后使用.这对必须进行组合、但又不想让组合的部分具有子匹配特点的情况很有用.
(4)(?
=pattern)称为正向"预测先行"匹配,在被搜索字符串的相应位置必须有pattern部分匹配的内容,但这部分匹配的内容不作为匹配结果处理,更不会被存储在捕获缓冲区中供以后使用.(?
=pattern)必须位于一个正则表达式模式的最前或最后面.如使用“a(?
=b|c)”作为正则表达式模式,只与“ab”和“ac”中的“a”匹配
(5)(?
!
pattern)称为反向"预测先行"匹配,在被搜索的字符串的相应位置不能有pattern部分匹配的内容,除此之外,功能与正向"预测先行"匹配一样.
特殊字符:
\t制位表(/u0009)
\n换行符(/u000A)
\v垂直制位表(/u000B)
\f换页符(/u000C)
\r回车(/u000D)
字符匹配符:
[...]位于括号内的任意字符,[...]中的“\”仍作为转义符,它本身需要使用“\\”
[^...]不在括号之中的任意字符
.除换行符和其他Unicode行中止符之外的任意字符
[a-z][1-9]
/w任何ASCII单字字符,等价于[a-zA-Z0-9_]
/W任何ASCII非单字字符,等价于[^a-zA-Z0-9_]
/s任何Unicode空白符[/f/n/r/t/v]
/S任何Unicode非空白符,注意/w和/S的不同[^/f/n/r/t/v]
/d任何ASCII数字,等价于[0-9]
/D除了ASCII数字之外的任何字符,等价于[^0-9]
g是全局标志,加上会对所有匹配部分起作用,没有这个标志,只会对最早匹配的内容起作用
i是忽略大小写标志
m是多行标志,
CSS
Htmlselector
Classselector
IDselector
#someId{pro:
value}
优先级:
ID选择器>CLASS选择器>HTML选择器
样式属性分类:
●字体
字体
font-family
中文字体要用引号,英文字体不需要
文字大小
font-size
单位有:
px,mm,cm,in(英寸),pt(磅)
文字样式
font-style
Normal,Italic(斜体),Oblique
文字粗细
font-weight
normal,bold,lighter
是否划线
text-decoration
underline,overline,line-through,blink,超链接文体默认是under-line,设置text-decoration:
none;可以去掉其下划线
字母大写
font-variant
small-caps(大写字母),normal
是否大写
text-transform
capitalize(首字母大写),uppercase(所有字母大写),lowercase(所有字母小写),none
字体颜色
color
●背景
背景颜色
background-color
背景图片
background-image
background-image:
url(**);
是否重复
background-repeat
norepeat,repeat-x,repeat-y
图片位置
background-position
●文本
颜色
text-color
对齐
text-align
left,right,center,justify
缩进
text-indent
px;
修饰
text-decoration
●位置
position
absolute,relative,static
left
top
width
height
●布局
visibility
inherit,visible(可见),hidden(隐藏)
display
block(元素前后都换行,单独一行,inline,list-item,none
float
left(其它文本漂浮在该元素左边),right,none(该元素两边不允许有文本)
clear
清除漂浮对象,与float相反
●边缘
margin
边界大小margin-left…
padding
边界与内部内容空隙大小padding-top…
border-width
border-color
●其它
span和div的区别就是div会造成换行,而span则不会
改变整个页面的链接样式
a:
link{}、a:
visited{}、a:
hover{}、a:
active{}
改变局部的链接样式
假如页面导航部分的id是nvbar,该部分的链接可以用如下:
#nvbara:
link{}#nvara:
visited{}…
AJAX
AJAX主要作用是异步调用和局部刷新,核心技术有JavaScript、XMLHttpRequest、DOM、XML
●JavaScript:
使用JavaScript组织要传递给Web服务器的数据,并将这些数据传递给AJAX引擎,在AJAX获得Web服务器返回的数据之后,可以通过JavaScript来选择要在浏览器窗口中的哪个位置显示哪些数据
●XMLHttpRequest:
XMLHttpRequest允许以异步方式从服务器中获取数据
●DOM:
主要作用是刷新局部数据
●XML:
存储数据和文档,让其他程序共享
实验AJAX异步调用和局部刷新的步骤:
●创建XMLHttpRequest对象,根据是否IE浏览器两种创建方式
在实际应用中,为了兼容多种不同版本的浏览器,一般将创建XMLHttpRequest类的方法写成如下形式:
try{
if(window.ActiveXObject){
for(vari=5;i;i--){
try{
if(i==2){
xmlhttp_request=newActiveXObject("Microsoft.XMLHTTP");
}else{
xmlhttp_request=newActiveXObject("Msxml2.XMLHTTP."+i+".0");
xmlhttp_request.setRequestHeader("Content-Type","text/xml");
xmlhttp_request.setRequestHeader("Charset","gb2312");
}
break;
}catch(e){
xmlhttp_request=false;
}
}
}elseif(window.XMLHttpRequest){
xmlhttp_request=newXMLHttpRequest();
if(xmlhttp_request.overrideMimeType