Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

<c:forEach var=”modules” items=”${SES_powers.modules}” varStatus=”status”>
?????
? </c:forEach>

SES_powers.modules 会自动调用SES_powers的getModules()方法,(即使没有modules这个变量),这样避免了在页面中引用JAVA代码


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

EI是jsp-2.0规范的一部分,tomcat-5.x版本以上都已经能够支持jsp-2.0规范,
<%@ page isELIgnored=”true” %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。

.语法结构(1)使用el的时候,默认会以一定顺序搜索四个作用域,将最先找到的变量值显示出来。

??? ${expression}

1,与页面元素的操作:
??

如果我们有${username}这样一个正则表达式,它回去依次调用pageContext.getAttribute(“username”) -> request.getAttribute(“username”) -> session.getAttribute(“username”) -> application.getAttribute(“username”),只要找到某一个不为空的值就立刻返回。

?(2)指定具体的域

??????

el中的作用域 对应关系
pageContext(1) 当前页的pageContext对象
pageScope 把page作用域中的数据映射为一个map对象
requestScope(2) 把request作用域中的数据映射为一个map对象
sessionScope 把session作用域中的数据映射为一个map对象
applicationScope 把application作用域中的数据映射为一个map对象
param 对应request.getParameter()
paramValues(3) 对应request.getParameterValues()
header(4) 对应request.getHeader()
headerValues 对应request.getHeaderValues()
cookie(5) 对应request.getCookies()
initParam(6) 对应ServletContext.getInitParamter()

?? session.getAttribute(“username”)?? 等同于 ${sessionScope:username}

?? request.getParameter(String name)? 等同于 ${param:name}

(3)EI运算符

???? ${ 1 + 2 }? 结果:3

???? ${ 1 <= 2 } 结果: true

??? ${ true && false } 结果:false

??? ${ empty 2 } 结果:false //判断对象是否为空

??? ${ not empty 2 }结果:true

?? ${ 2>1 ? “yes” : “no” }

? 对string类型进行操作:

? ${fn:substring(booking.orderId,0,6)}

?? fn:contains(string, substring)? fn:endsWith(string, suffix)?? fn:length(item)? fn:split(string, separator)? fn:trim(string)

(4)调用对象方法

<c:forEach var=”modules” items=”${SES_powers.modules}” varStatus=”status”>
?????
? </c:forEach>

SES_powers.modules 会自动调用SES_powers的getModules()方法,(即使没有modules这个变量),这样避免了在页面中引用JAVA代码

注:向方法中传参http://tech.ddvip.com/2009-04/1238857014113535.html

一般最好在程序中就将数据取出,在JSP页面只进行读取数据的操作

(5)集合操作

Map
Map mapValue? = new HashMap();
?? mapValue.put(“key1”, “value1”);
?? mapValue.put(“key2”, “value2”);

request.setAttribute(“mapvalue”, mapValue);
———————————————El表达式获取
<li>输出map,采用.进行导航,也称存取器</li><br>
mapvalue.key1:${mapvalue.key1 }<br>
mapvalue.key2:${mapvalue.key2 }<br>

?List

${userlist[4].username }

(6)数组

? User[] users = new User[10];

${users[2].username }


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,创建变量 <c:set>
<c:set>标签具有以下一些属性:
var:所定义或者使用的变量的名称。
scope:该变量的作用域,缺省值为page。
value:变量的值。
target :javabean名称,若存在必须指定property属性
property:javabean实例名称
例:
<c:set var=”i”? value=”0″/>
应用: ${i}

<c:set value=”xiaoT” target=”${User}” property=”userName”>
相当于:User u = new User(); u.setUserName( “xiaoT” );

2, 输出? <c:out>????? 如<c:out value=”${i}”>? 等同于 ${i}

3, 分支语句
<c:if test=”${1<2}”>????? <a href=”index.action”>index</a>??? <c:if>
在满足条件时输出 <a href=”index.action”>index</a>
因没有<c:else> 多重分支为:
<c:choose>
<c:when test=”${1<2}”>?????? </c:when>??????????????? 等同于<c:if> 为 if
<c:otherwise>?????????????????????????????????????????????????????? 等同于?????????
</c:choose>

4, 数据格式化函数

格式化日期
<fmt:formatDate value=”${isoDate}” type=”both”/>

-定制数字格式时,# 表示按照默认格式来
:<fmt:formatNumber value=”1234567890″ type=”number” pattern=”#,#00.0#” />?

将字符串转化到正确的数字
<fmt:parseNumber type=”number” >123.02a</fmt:parseNumber>


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

得到action, request, session传来的数据
action? #property
<s:property value=”#session[‘key’]”/>?? 或 <s:property value=”#session.key”/>?

<s:select list=”#request.allModules” listKey=”every” listValue=”name” name=”powerInfo.fid”/>

${sessionScope.key}?? //注:struts2.0标签中若用EI表达式,可能会得不到值

Struts2.0标签 实现了JSTL + EI? 功能

非UI
1,选择
<s:if test=””></s:if>
<s:elseif test=””></s:elseif>
<s:else></s:else>—–这3个标签一起使用,表示条件判断
<s:if test=”#session[‘key’]==null”>?

2,循环
<s:iterator id=”book” value=”books” status=”index”>?

<!—输出当前元素的属性–>?
<s:property value=”property”/>?

<!—输出当前迭代元素的索引–>?
<s:property value=”#index.index”/>?

<!—输出当前迭代了几个元素–>?
<s:property value=”#index.count”/>??

<!—返回当前迭代元素的索引是否为奇数–>?
<s:property value=”#index.odd”/>??

<!—返回当前迭代元素的索引是否为偶数–>?
<s:property value=”#index.event”/>?

<!—返回当前元素是否为第一个–>?
<s:property value=”#index.first”/>?

<!—返回当前元素是否为最后一个–>?
<s:property value=”#index.last”/>?

</s:iterator>?
UI
1,URL
(1)? <s:url value=”editGadget.action”/>????????????? 区别于:<s:a href=”index.jsp”> <s:a href=””></s:a>—–超链接,类似于html里的<a></a>

(2)?? <s:url action=”showBook”>
??? <s:param name=”author” value=”‘yeeku'” />
</s:url>

(3)?? <s:url id=”url” action=”preModifyCategoryName” includeParams=”get” namespace=”/category”>
??? <s:param name=”categoryId” value=”%{categoryId}”/>
?</s:url>

注:<s:actionerror/>—–如果action的errors有值那么显示出来
<s:actionmessage/>—–如果action的message有值那么显示出来

2,下拉框
(1) <s:combobox label=”请选择您喜欢的图书” theme=”css_xhtml” labelposition=”top”
list=”{‘Spring2.0宝典’ , ‘轻量级J2EE企业应用实战’ , ‘基于J2EE的Ajax宝典’}”
size=”20″ maxlength=”20″ name=”book”/>

与<s:select …/>标签不同的是,对于下面的下拉列表,无需指定listKey和listValue属性,因为此处的下拉列表,不再用于发送请求参数,而仅仅是用于辅助输入,因此该下拉列表的value没有任何意义
(2) Select
?List
<s:select name=”b” label=”请选择您喜欢的图书” labelposition=”top” multiple=”true”
??? list=”#bs.books”
??? listKey=”author”
??? listValue=”name”/>
Map
<s:select name=”b” label=”请选择您想选择出版日期” labelposition=”top”
??? list=”#{‘Spring2.0宝典’:’2006年10月’ , ‘轻量级J2EE企业应用实战’:’2007月4月’ , ‘基于J2EE的Ajax宝典’:’2007年6月’}”
??? listKey=”key”
??? listValue=”value”/>

<tr>
??? <td align=”center”>父权限</td>
??? <td align=”center”>
??? <s:select theme = “simple” label = “父权限”? list=”#request.allModules” listKey=”id” listValue=”name” name=”powerInfo.fid”/>
???? </td>???
?</tr>???????? //加theme = “simple”代表只生成一个简单的select,不用其自动生成<tr>之类, label就是在自动生成的情况下指示前td名称
????????????????? 注:listKey代表<option value>中的value值,?????? listValue 为<option>listValue</option>之间的数据

3,多个checkbox
(1) List
<s:checkboxlist name=”a” label=”请选择您喜欢的图书” labelposition=”top”
list=”{‘Spring2.0宝典’ , ‘轻量级J2EE企业应用实战’ , ‘基于J2EE的Ajax宝典’}”/>

<s:checkboxlist name=”b” label=”请选择您喜欢的图书” labelposition=”top”
list=”#bs.books”
listKey=”name”
listValue=”author”/>
(2)Map
<s:checkboxlist name=”b” label=”请选择您想选择出版日期” labelposition=”top”
list=”#{‘Spring2.0宝典’:’2006年10月’ , ‘轻量级J2EE企业应用实战’:’2007月4月’ , ‘基于J2EE的Ajax宝典’:’2007年6月’}”
listKey=”key”
listValue=”value”/>

4, s:radio生成多个单选框
<s:radio name=”c” label=”请选择您喜欢的图书” labelposition=”top”
list=”#bs.books”
listKey=”author”
listValue=”name”/>

5 s:optiontransferselect来生成可移动列表项的下拉列表框 , s:optgroup生成下拉选择框的选项组
s:updownselect生成可上下移动选项的下拉选择框 ,?????????????? s:doubleselect生成级联下拉列表框
s:tree和s:treenode标签生成静态树 ,

<s:tree label=”计算机图书” id=”book” theme=”ajax”
showRootGrid=”true” showGrid=”true” treeSelectedTopic=”treeSelected”>
<s:treenode theme=”ajax” label=”李刚” id=”yeeku”>
<s:treenode theme=”ajax” label=”Spring2.0宝典” id=”spring”/>
<s:treenode theme=”ajax” label=”轻量级J2EE企业应用实战” id=”lightweight”/>
<s:treenode theme=”ajax” label=”基于J2EE的Ajax宝典” id=”ajax”/>
</s:treenode>
<s:treenode theme=”ajax” label=”David” id=”David”>
<s:treenode theme=”ajax” label=”JavaScript: The Definitive Guide” id=”javascript”/>
</s:treenode>
<s:treenode theme=”ajax” label=”Johnson” id=”Johnson”>
<s:treenode theme=”ajax” label=”Expert One-on-One J2EE Design and Development” id=”j2ee”/>
</s:treenode>
</s:tree>

7, s:append标签拼接两个集合
<s:append id=”newList”>
<s:param value=”{‘Spring2.0宝典’,’轻量级J2EE企业应用实战’,’基于J2EE的Ajax宝典’}” />
<s:param value=”{‘新东方IT培训’, ‘东方标准职业教育’}” />
</s:append>

8, 使用s:generator生成集合
使用generator标签可以将指定字符串按指定分隔符分隔成多个子串,临时生成的多个子串可以使用iterator标签迭代输出。可以这样理解:generator将一个字符串转化成一个集合。在该标签的标签体内,整个临时生成的集合将位于ValueStack的顶端,但一旦该标签结束,该集合将被移出ValueStack。

<s:generator val=”‘Spring2.0宝典,轻量级J2EE企业应用实战,基于J2EE的Ajax宝典'”
separator=”,” id=”books” count=”2″/>
${books} 代表一个Iterator?? s:iterator>

<s:generator val=”‘Spring2.0宝典,轻量级J2EE企业应用实战,基于J2EE的Ajax宝典'” separator=”,”>
<s:iterator status=”st”>
<tr <s:if test=”#st.odd”>style=”background-color:#bbbbbb”</s:if>>
<td><s:property/></td>
</tr>
</s:iterator>
</s:generator>

9,<s:datetimepicker></s:datetimepicker>—–日期输入框,
<s:file></s:file>—–文件上传
<s:form action=””></s:form>—–获取相应form的值
<s:text name=””></s:text>—–I18n文本信息
<s:textarea></s:textarea>—–文本域输入框
<s:textfield></s:textfield>—–文本输入框


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,分区注意:
(1)一个挂载点? 为”/” ,自动分配boot,home等,挂载点 格式为ext3
(2)一个挂载点为”swap” 大小为内存的2倍
只要这两个挂载点即可,格式为swap
2, 若先装xp,之后安装的linux,在分区时注意的是不要将xp格掉或丢失其它盘的信息,一般下, hd1为c盘,hd5为d盘待,格式为fat或nfts
不要在关键盘上安装linux,要先空出一个盘来装linux
3, 装完linux后中,又装xp,会将linux的引导程序覆盖掉,造成开机直接进入xp,不能进入linux,解决方法:
(1)从光盘启动,在安装初始画面输入:linux rescue 进行修复区
(2)选择语言,网络等一直进入命令行,输入:
???????? chroot /mnt/sysimage
???????? grub -install /dev/hax? (可先用fdisk -l 确定linux在哪个盘上,从而确定x)
(3)之后若进入grub grub>? 输入:find /boot/grub/grub.conf 或find /boot/grub/menu.lst? 确定(hd0,1)
???? root (hd0,1)? (要有空格)
???? setup (hd0)?
???? quit 退出
???? reboot 重启
4,设置开机等待时间及显示开机画面的内容
/etc/grub.conf???????????? timeout = 10

5,linux下安装windows下软件:虚拟环境??WINE


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,bdf :查看磁盘容量使用情况。 clear: 清屏?? w :分组显示用户。
2,pwd:显示当前所在上当。
3,ls:显示目录信息。
ls -a: 显示所有文件,如隐藏文件
ll:显示目录权限。 等同于 ls -l
4,cd:回到用户目录
5,rmdir:删除空目录
6,chmod:更改文件/目录存取权限
7,chgrp:更改用户组别
8,mv:移动文件或重命名文件??? (当文件同是文件或同是目录时)
9,cp:复制???? cp-i: 覆盖前询问 cp -r dir1 dri2 拷目录
10,rm:删除文件??? rm -f :强制删除
rm -r:删除目录包括子目录
rm -i:删除前询问
11,mkdir:建立系统目录
12,ps:查看进程
13,who:查看谁在线上??? who -u??????? whoami:查看当前用户身份
14,pg:以页为单位查看文件内容 pg ..|more 一行一行显示
15,grep “zxs” /etc/user
16,r:重复上一次命令
17,ln -s /u1/huapin???????? hp:创建快捷方式
18,history:最近n条记录
19,alias v= “vi? ato4d.4gl”??? unalias v 取消别名
20,通配符:? 一个 * 任意多个? []指定的一个
ls a[123] a1,a2,a3??? ls a[1-9] a1,a2,….a9
21,ls |more 分屏显示
22,排序:sort -d (字典顺序)
23,./ 当前目录? ../? 父目录下?? /? 根目录
24,mkdir -m 755 4gl???????? chmod 755 a.txt????????? r:4,w:2,e:1
25,cd:回到用户目录? cd / 回到根目录 cd – 回到上次打开目录?????? cd ~用户名??? (home下用户目录)
26,/bin (binary) 常用命令???????? /boot? 启动程序?????? /dev 设备???????? /etc 配置文件
/sbin (system binary 系统管理程序)??? /home 用户集中地??? /lib 库文件
/mnt 挂临时文件,移动设备? /proc 系统信息?????? /root? 超级用户目录??? /tmp 临时文件??? /usr 存用户应用程序的文件
27,rpm -ivh ……??? i 使用rpm安装模式 v 显示安装过程??? h 进度以#显示
rpm -* 卸载
tar cvf? … 压缩?? c 创建 v 显示信息 f 必不可少
tar xvf …? 解压

28,ls;fd?? 连续执行多条命令,用分号隔开
29,查命令所在? whereis cp
30,who, w, whoami
31,. 重复上次操作
32,find /u1/asong -name “a*” -print? 搜索
33,bath编写??
(1) 文件以#!/bin/sh开头
(2) 编写unix命令
(3) chmod 777 myshell
(4)? 运行: ./myshell
34,设置文件所有者
chown -R hp[:tpic] .wine
35,设置文件权限
chmod -R 777 .wine


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
1, vi filename 编辑或建立档案
2,vi +18 filename 开启文本到第18行
3,enter 向下一行
backspace 向左移一个字元
spacebar   向右移动一个字元
4,ctrl + F 向前滚动一个屏幕
ctrl + D 向前滚动半个屏幕
ctrl + B 向后滚动一个屏幕
ctrl + U 向后滚动半个屏幕
ctrl + E 向下一行
ctrl + Y 向上一行
5,a 在游标右方插入字元
A 在行尾游标右方插入字元
i   在游标左方插入字元
I   在行首游标左方插入字元
o  在游标下方插入一行
O 在游标上方插入一行
x  删除字元   
X  向前删除字元
dd 删除行 大:5,10d删除第5-10行
G  最后一行 21G 到第21行
/string 搜索字符串  ?string 向上     N:上一个 n:下一个 
r: 以另一字元代替游标所在字元 
R 连续修正字元,会一直处于输入模式 
q! exit 但不save          w:save                  wq: 保存退出 
nyy 复制n行 
u  撤消上次输入 
D  删除自游标起到行尾的字元 
d^ 删除自游标起到行首的字元 
dw 删除一个单词 
ndd: 删除自当前光标所在行以下的n行 
s     删除游标所在之字元,并由命令模式进入输入模式 
S  删除游标所在列,并由命令模式进行输入模式 
h 左 l 右 j 下 k 上       
J 删除下一行所有空格并提升一行。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
煮八宝粥,将难煮的豆子和米放进普通的保温瓶中,加入开水,防置十几个小时,即可倒出用普通锅煮,煮出来的粥粘粘糯懦?


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

,拆线图

//数据,JSON
var murl = ‘data.aspx’;
var store = new Ext.data.JsonStore({
url: murl,
autoLoad:true,
root: ‘images’,
fields: [‘name’, ‘visits’, ‘views’]
});

//显示
new Ext.Panel({
iconCls:’chart’,
title: ‘ExtJS.com Visits Trend, 2007/2008 (Simple styling)’,
frame:true,
renderTo: ‘container’,
width:500,
height:300,
layout:’fit’,

items: {
??? xtype: ‘linechart’,
??? store: store,
??? url: ‘../ExtLib/resources/charts.swf’,
??? xField: ‘name’,
??? yField: ‘visits’,
??? yAxis: new Ext.chart.NumericAxis({
??????? displayName: ‘Visits’,
??????? labelRenderer : Ext.util.Format.numberRenderer(‘0,0’)
??? }),
??? tipRenderer : function(chart, record){
??????? return Ext.util.Format.number(record.data.visits, ‘0,0’) + ‘ visits in ‘ + record.data.name;
??? }
}
});


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,引入文件:应用extjs 需要在页面中引入extjs 的样式及extjs 库文件,样式文件为resources/css/extall.css,extjs 的js 库文件主要包含两个,adapter/ext/ext-base.js 及ext-all.js,其中ext-base.js 表示框架基础库,ext-all.js 是extjs 的核心库

2, 提示框调用:Ext.Msg.alert(“提示”,”须提供订单号!”);? 需要注意的是 MessageBox 对象是异步的。不同于 JavaScript中原生的alert(它会暂停浏览器的执行),显示 MessageBox 不会中断代码的运行。由于这个原因,如果代码需要在用户对 MessageBox 做出反馈之后执行,则必须用到回调函数 Ext.Msg.alert(“提示”,”须提供订单号!”, myfunction);
Ext.Msg.show({
title:’Save Changes?’,
msg: ‘You are closing a tab that has unsaved changes. Would you like to save your changes?’,
buttons: Ext.Msg.YESNOCANCEL,
fn: processResult,? //执行完之后要调用的函数
animEl: ‘elId’,
icon: Ext.MessageBox.QUESTION
});
function processResult(){
alert(‘bbb’);
}
相应的还有:confirm,prompt

3,创建组件:
var obj={title:”hello”,width:300,height:200,html:’Hello,easyjf open source’};
var panel=new Ext.Panel(obj); panel.render(“hello”);? //hello控件的ID,将在ID为hello的控件上创建一个面板,或直接在obj内用renderTo指定。
<div id=”hello”>&nbsp;</div>

在api中找到要用的控件,用new创建,要传的参数用obj建立,里面即是api指示的属性。最后通过render输出。
如:new Ext.Button({id:”btn”,text:”myButton”}).render(“hello”);
new Ext.form.TextField({id:”btn”,value:”first”,width:200}) .render(“hello”);

4,事件
Ext.get(“btnAlert”).addListener(“click”,a);
//为ID为btnAlert的控件增加click事件 a等同于:document.getElementById(“btnAlert”).onclick=a;
延迟处理:Ext.get(“btnAlert”).on(“click”,a,this,{delay:2000});? //为btnAlert增加a方法,延迟2秒执行

5,面板
面板由以下几个部分组成,一个顶部工具栏、一个底部工具栏、面板头部、面板尾部、面板主区域几个部分组件。

6,窗口
var i=0;
function newWin()
{
var win=new Ext.Window({title:”窗口”+i++,
width:400,
height:300,
maximizable:true});
win.show();
}
Ext.onReady(function(){
Ext.get(“btn”).on(“click”,newWin);
});

7,布局
ExtJS 的容器组件包含一个layout 及layoutConfig 配置属性,这两个属性用来指定容器使用的布局及布局的详细配置信息,如果没有指定容器组件的layout 则默认会使用ContainerLayout 作为布局,该布局只是简单的把元素放到容器中,,常用的布局有border、column、fit、form、card、tabel等布局。
使用方式:指定布局方式,指定位置(可选)
Ext.onReady(function(){
new Ext.Panel({
renderTo:”hello”,
width:400,
height:200,
layout:”column”,
items:[{columnWidth:.5,
title:”面板1″},
{columnWidth:.5,
title:”面板2″}
]
});
注:items:传入的单独一个项,应直接传入一个对象的引用( 如items: {…})。多个项应以数组的类型传入(如items: [{…}, {…}])。
如:items:[
{fieldLabel:”请输入姓名”,name:”name”,xtype:”button”,text:”hello”},
//用xtype指定使用的控件,控件类型为Ext.Componentxtype
{fieldLabel:”请输入地址”,name:”address”}] //默认为textbox

1)Column布局:layout:”column” 在items中用ColumnWidth指定占据的宽度即可
2)Border区域布局 。该布局把容器分成东南西北中五个区域,分别由east,south, west,north, cente来表示
layout:”Border” 在items中用region:”east” 指定位置。
3)fit布局:自动用子填充父容器,以第一个子为主,其它加上也是无用。
4) Form 布局是一种专门用于管理表单中输入字段的布局,这种布局主要用于在程序中创建表单字段或表单元素等使用,在实际应用中,Ext.form.FormPanel 这个类默认布局使用的是Form 布局,而且FormPanel还会创建与<form> 标签相关的组件,因此一般情况下我们直接使用FormPanel 即可。
new Ext.form.FormPanel({
renderTo:”hello”,? //指定输出
title:”容器组件”,
width:300,
labelAlign:”right”,
height:120,
defaultType: ‘textfield’,
items:[
{fieldLabel:”请输入姓名”,name:”name”},
{fieldLabel:”请输入地址”,name:”address”},
{fieldLabel:”请输入电话”,name:”tel”}
] }
);
});
5)Accordion 布局由类Ext.layout.Accordion 定义,名称为accordion,表示可折叠的布局,也就是说使用该布局的容器组件中的子元素是可折叠的形式,有个动态的上下卷动效果。在窗口属性 layoutConfig 中指定布局配置参数animate 为true,表示在执行展开折叠时是否应
用动画效果。
6)Table 布局,该布局负责把容器中的子元素按照类似普通html 标签排列
Ext.onReady(function(){
var panel=new Ext.Panel({
renderTo:”hello”,
title:”容器组件”,
width:500,
height:200,
layout:”table”,
layoutConfig: {
columns: 3?? //指定列数
},
items:[{title:”子元素1″,html:”这是子元素1中的内容”,rowspan:2,height:100}, //指定每个占用的td
{title:”子元素2″,html:”这是子元素2中的内容”,colspan:2},
{title:”子元素3″,html:”这是子元素3中的内容”},
{title:”子元素4″,html:”这是子元素4中的内容”}
] }
);
});

8,表格控件:表格由类Ext.grid.GridPanel 定义,继承自Panel,其xtype 为grid。ExtJS 中,表格Grid必须包含列定义信息, 并指定表格的数据存储器Store 。表格的列信息由类Ext.grid.ColumnModel 定义、而表格的数据存储器由Ext.data.Store 定义,数据存储器根据解
析的数据不同分为JsonStore、SimpleStroe、GroupingStore 等。
1),显示数据,故要指定数据,在属性中有一store,用来指定数据,此外还有有列名,列名用cm定义
Ext.onReady(function(){
//指定数据
var data=[ [1, ‘EasyJWeb’, ‘EasyJF’,’www.easyjf.com’],
[2, ‘jfox’, ‘huihoo’,’www.huihoo.org’],
[3, ‘jdon’, ‘jdon’,’www.jdon.com’],
[4, ‘springside’, ‘springside’,’www.springside.org.cn’] ];
var store=new Ext.data.SimpleStore({data:data,fields:[“id”,”name”,”organization”,”homepage”]});

//指定列名
var colM=new Ext.grid.ColumnModel([{header:”项目名称”,dataIndex:”name”,sortable:true},
{header:”开发团队”,dataIndex:”organization”,sortable:true},
{header:”网址”,dataIndex:”homepage”}]);

//创建
var grid = new Ext.grid.GridPanel({
renderTo:”hello”,
title:”中国Java开源产品及团队”,
height:200,
width:600,
cm:colM,
store:store,
autoExpandColumn:2
});
});

9,可编辑表格控件EditorGridPanel,可编辑表格是指可以直接在表格的单元格对表格的数据进行编辑,ExtJS 中的可编辑表格由
类Ext.grid.EditorGridPanel 表示,xtype 为editorgrid。使用EditorGridPanel 与使用普通的GridPanel 方式一样,区别只是在定义列信息的时候,可以指定某一列使用的编辑即可。
var colM=new Ext.grid.ColumnModel([{
header:”姓名”,
dataIndex:”name”,
sortable:true,
editor:new Ext.form.TextField()},
{header:”性别”,
dataIndex:”sex”
},
。当对一个单元格进行编辑完之后,就会触发afteredit 事件,可以通过该事件处理函数来处理单元格的信息编辑,把编辑后的数据保存到服务器。

10,数据存储Stroe
1),record ,一个Record 可以理解为关系数据表中的一行,也可以称为记录。Record 对象中即包含了记录(行中各列)的定义信息(也就是该记录包含哪些字段,每一个字段的数据类型等),同时又包含了记录具体的数据信息(也就是各个字段的值)。
Ext.onReady(function(){
var MyRecord = Ext.data.Record.create([?? //指定列
{name: ‘title’},
{name: ‘username’, mapping: ‘author’},
{name: ‘loginTimes’, type: ‘int’},
{name: ‘lastLoginTime’, mapping: ‘loginTime’, type: ‘date’}
]);
var r=new MyRecord({?? //赋值
title:”日志标题”,
username:”easyjf”,
loginTimes:100,
loginTime:new Date()
});
alert(MyRecord.getField(“username”).mapping);
alert(MyRecord.getField(“lastLoginTime”).type);
alert(r.data.username);
alert(r.get(“loginTimes”));
});
2) store:一个Store 包含多个Record,同时Store 又包含了数据来源,数据解析器等相关信息,Store 通过调用具体的数据解析器(DataReader)来解析指定类型或格式的数据(DataProxy),并转换成记录集的形式保存在Store 中,作为其它控件的数据输入。
数据存储器由Ext.data.Store 类定义,一个完整的数据存储器要知道数据源(DataProxy)及数据解析方式(DataReader)才能工作
DataReader:
ArrayReader Ext.data.ArrayReader-数组解析器,用于读取二维数组中的信息,并转换成记录集Record对象
JsonReader? Ext.data.JsonReader-Json 数据解析器,用于读取JSON 格式的数据信息,并转换成记录集Record 对象
XmlReader??? Ext.data.XmlReader-XML 文档数据解析器,用于把XML 文档数据转换成记录集Record对象
DataProxy: DataProxy 字面解释就是数据代理,也可以理解为数据源,也即从哪儿或如何得到需要交给DataReader 解析的数据。

11 、TreePanel
Ext.onReady(function(){
var root=new Ext.tree.TreeNode({
id:”root”,
text:”树的根”});

root.appendChild(new Ext.tree.TreeNode({
id:”c1″,
text:”子节点1″
}));

var tree=new Ext.tree.TreePanel({
renderTo:”hello”,
root:root,
width:100? //可用loader: new Ext.tree.TreeLoader({url:”treedata.js”}), 来动态加载数据,此时root要用AsyncTreeNode类型
});
});


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1, EXTJS:UI全部帮你搞定,不用费劲去弄样式! 浏览器兼容性好,在各各浏览器下测试都OK! 和后台代码无关,不管后面用C#也好 JAVA也好 还是PHP 都和它没关系。 动画效果,EXTJS的动画效果做得很不错,提高了用户的感知度。
缺点: 开发周期延长(要先学习才能灵活使用)
2,ExtJS是一个Ajax框架,是一个用javascript写的,用于在客户端创建丰富多彩的web应用程序界面。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

session是用户信息的共享区域,在一个类中放数据到session中时,意味着这些数据要让多个页面共享,那么在命名的时候一定要特殊,
避免变量名相同,造成数据重叠!


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

若允许用户在没有权限的情况下可以看到后台的页面,则可通过分析后台页面文件来生成新用户,进而进入后台。
如:一后台页面可以看到,当然不能操作。找到其增加用户的页面,选择好数据,在地址栏中进行插入:
http://www.telishou.com/manage/admin/insert.action?admin.name=123&password=123&power=管理员
完成用户的增添。即使权限不在插入页面中设置,可找到update页面也利用地址栏方式修改。
地址栏传参方式可避开页面中设置的验证条件,向数据库中插入一些非法的数据。

向数据库中插入一些非法的数据对应方法:
?????????????????????????????????? 1,禁止没有权限的用户得到权限页面文件,对insert,update,delete,select操作加上必要的身份识别:没有权限?? 者不可执行操作。
?????????????????????????????????? 2,验证要在服务器上进行,而不是在客户前端通过js验证。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,搜索引擎的蜘蛛再怎么爬,能找到的无非是文字和连接

2,关键字覆盖范围并不是越宽越好,因为一旦搜索引擎发现关键字与网站内容不符,则认为是在舞弊,这样网站就极有可能被屏蔽,尽可能选择与网页目标市场相尽的关键词。

3,title里一般是网站的核心关键词,即目标关键词,也是搜索引擎比较注重的部分,不要堆积关键字。

description是比较重要的,一般他会和title一起出现在搜索结果里,所以description里不仅要包含你的目标关键词,还要是一段简单的话,向目标客户说明你网站的主题,你网站是做什么的,有什么优势。

注意文章的正文前100字,因为搜索引擎的关注顺序为:title?-description?-正文前100字

Title : 内容关键字(文章标题)热门关键字

<META NAME =”keywords” CONTENT=” “>

Keywords : 内容关键字,热门关键字,(多个)

<META NAME=”description” CONTENT=”关键字 页面主要内容”>

注:先在页面内容上尽可能多的加入热门关键字,之后再做title,keywords,description. 这三个要加入的内容主要来自内容所引用的热门关键字。一般:title:一句话或两个,keywords:三到五个 description:不多于80个字符。这三个内容要统一。开头要高度近似。选择关键字时要考虑的是用户会不会用此词来进行搜索,若不会,加入意义也不大


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

WindySky 个人图书倌 ? ? ? ? ? ? ? ? ? ? ? ?? http://www.360doc.com/forumfocus.aspx??????

?Java基础例子 ?????????? ? ? ? ? ? ? ? ? ? ? ? ?? ? http://www.exampledepot.com/egs/

?据类找JAR包?????????? ? ? ? ? ? ? ? ? ? ? ? ?? ? http://www.findjar.com/

?java在线API??????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html

?Hibernate3.2 API?????????? ? ? ? ? ? ? ? ?? ? ? http://www.hibernate.org/hib_docs/v3/api/

?Spring Framework API 2.5 ? ? ? ? ? ? ???? http://static.springframework.org/spring/docs/2.5.x/api/index.html

?Struts 1.3.8 API?????????????????????????? ? ?? http://struts.apache.org/1.3.8/apidocs/index.html

?Struts 2 Core 2.0.11.1 API ? ? ? ? ?? ?? ? http://struts.apache.org/2.0.11.1/struts2-core/apidocs/index.html

?Struts 2 标签API????????????????????????????? http://struts.apache.org/2.0.14/docs/tag-reference.html

?JSTL 标签 API? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html

JSTL?? 实现标签的类库 ? ? ? ? ? ? ? ? ? ?? http://java.sun.com/products/jsp/jstl/1.1/docs/api/index.html

Web Service API ???????????????????????????? http://java.sun.com/webservices/reference/apis-docs/index.jsp

JavaScript???? API???????????????????????????? http://krook.org/jsdom/????

???????????????????????????????????????????????????? http://www.gotapi.com/html

CSS,HTML在线学习??????????????????????? http://www.w3schools.com/

?据类名查看其方法???? ? ? ? ? ? ? ? ? ? ? ? http://www.docjar.com/

?看书????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? http://book.csdn.net/
?
?维基百科???????????????? http://zh.wikipedia.org/w/index.php?title=Wikipedia:%E9%A6%96%E9%A1%B5&variant=zh-cn

?ajax?????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? http://www.okajax.com/

?jquery ?????????????????????????????????????????? http://bbs.jquery.org.cn/index.php? goodasong 8a
?????????????????????????????????????????????????????
?jquery api ?????????????????????????????????????????????????? http://docs.jquery.com/

jquery 例子????????????????????????????????????? http://visualjquery.com/

正则表达式???????????????????????????????????? http://www.regexplib.com?? 在线测试:http://regexpal.com/

源程序????????????????????? http://sourceforge.net/index.php http://www.codeplex.com/???? 国内.net源码 http://www.51aspx.com/
???
服务器配置应用查询 ??http://tomcat.apache.org/

各种连接字符串:????? http://www.connectionstrings.com/

google api???????????????? http://code.google.com/intl/zh-CN/

JS?????????????????????????? http://www.ijavascript.cn/

博客园?????????????????? http://dotnet.cnblogs.com/
c#开发工具?? ??? ??? ??http://msdn.microsoft.com/zh-cn/vcsharp/aa336818.aspx
.NET开源网站 ? ? ? ?? http://www.openforge.cn/opendotnet/


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1,和纯数字实现订单号,因为要保持唯一性,故一般按时间来生成果如:09 04 23 08 26 12 + 随机数字 12 56
优势在于快速,简单, 不利处在于生成的单号长度过长,不便于记录,宜出错。

2,数字加字母方式: 数字0~9,字母a~Z, 共62个字符,对于1种方式生成的单号,可以两位对应一个字符来实现。
实现方式:
? (1)定义一个数组,s[62] :s[0] =”A”, …s[25]=”Z”, s[26]=”0″…s[35]=”9″,s[36]=”a”,…s[61]=”z”
? (2)对应 09 04 23 08 26 12 12 56
????????????????? J?? E? X?? I??? 0?? M? M u
????????? 这样16位长度的订单号就转为8位就可完成表示。
????????? 09 04 23 08 26? 年,月,日,时,分,秒因最大都小于61,故以上可完全表示(ps:年的话,要考虑一个系统?? 很少可能从09年用到61年)
???????? 对于加的四位随机数, 按两位对应一个字符的方式,它的范围从00-99,可能就会随机出大于61的数字,
这样的话可以用? | a – 61? | 因0 < a < 99, 故 | a – 61 | <= 61 ( ps:有可能随机数字相同,不过在同天同时同分同秒随机出相同数字字符的概率非常之小,可忽略不计。 )


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

空格、Shift + 空格:上下翻一篇文章或者一页

  • ?
    • j/k ??? ?item down/up ??? ?上一个条目/下一个条目
    • v:查看原文
    • s ??? ?toggle star ??? ?标记所选择的条目星号(取消标记)
    • m?? ?mark as read/unread ?? ?标记为已读或未读
    • shift+a ??? ?mark all as read ??? ?标记所有条目为已读
    • ga ??? ?go to all items ??? ?显示所有条目
    • gs ?? ?go to starred items ?? ?显示已标记星号的条目
    • gt ?? ?go to tag ?? ?打开标签选择(这个很炫!)
    • gu ?? ?go to subscription ?? ?打开已订阅的RSS(一样很炫!)
    • Shift + x:折叠、展开文件夹


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
类 Runtime
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。 

应用程序不能创建自己的 Runtime 类实例。 

1, 打开文件:Runtime.getRuntime().exec("vs.net.exe");

2, 执行ping命令

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 


public class JavaPing{ 

public static void main(String[] args) {    
try {  
Process p = Runtime.getRuntime().exec("ping 192.168.1.86"); 
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));  //获取执行结果
String line = "";  
while ((line = br.readLine()) != null) {  
System.out.println(line);  
}  
br.close();  
} catch (IOException e) {  
e.printStackTrace();  
}  
} 
}

注:类 Process ,进程类


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

两种import语句:

1, 单类型导入(single-type-import),例如import java.io.File;
按需类型导入(type-import-on-demand),例如 import java.io.*;
单类型导入比较好理解,仅仅导入一个public类或者接口。而对于按需类型导入,有人误解为导入一个包下的所有类,其实不然,看名字就知道,他只会按需导入,也就是说它并非导入整个包,而仅仅导入当前类需要使用的类。按需类型导入是绝对不会降低Java代码的执行效率的,但会影响到Java代码的编译速度。

大型工程中,一般的书写建议是:
必须采用单类型引入,而且即使是同一个package下的,也要import,因为大型工程编译时间长。

2, import??? java.awt.*;??
import??? java.awt.event.*;??
…??
二者不一样,
java.awt.*没有包括java.awt.event.*,
*只能代表当前文件夹中所有类,不包括它的下一级文件夹中的类。