jsp的解析器,忠实的输出jsp文件里包含的没一个字符,如果发现一个<%%> 对,就会在解析完成后,则把<%%>解释后的结果输出。
所以,避免JSP文件产生空白行的办法,就是需要把所有的<%%>连起来书写,在jsp文件中减少手动的回车换行,就可以避免JSP文件产生空白行了。
比如.
<%@ page contentType="text/xml;" %><%@page import="com..dao.Mrp_Workload_Capacity_Calculate_DAO"%><%@ page import="com.sun.rowset.CachedRowSetImpl"%><%@ page import="com.util.DBUtil"%><%...%>
To see a world in a grain of sand.
And a heaven in a wild flower
Hold infinity in the palm of your hand.
And eternity in an hour
一花一世界
一沙一天堂
掌中握无限
霎那成永恒
星期二, 七月 31, 2007
星期五, 七月 27, 2007
DHMTL Grid Paginal 语法.
http://www.nauticalworld.co.uk/jscripts/dhtmlxTreeGrid/samples/pro_paging_wt.html
<div id="gridbox" width="100%" height="250px" style="background-color:white;overflow:hidden"></div>//显示grid数据地方
<div id="recinfoArea" style="width:100%;"></div>//用来显示导航条的地方
<script>
mygrid = new dhtmlXGridObject('gridbox');
...
//should be called before init()
mygrid.enablePagingWT(true,10,3,"recinfoArea");
...
mygrid.init();
mygrid.setXMLAutoLoading("dynscroll.php");//如果想每次点击下一页的时候从服务器读取数据,必须要加入这一行,通过url参数rowsLoaded=N 在服务器段来获取下一页的数据
mygrid.loadXML("dynscroll.xml");//this sample uses static loading
</script>
<div id="gridbox" width="100%" height="250px" style="background-color:white;overflow:hidden"></div>//显示grid数据地方
<div id="recinfoArea" style="width:100%;"></div>//用来显示导航条的地方
<script>
mygrid = new dhtmlXGridObject('gridbox');
...
//should be called before init()
mygrid.enablePagingWT(true,10,3,"recinfoArea");
...
mygrid.init();
mygrid.setXMLAutoLoading("dynscroll.php");//如果想每次点击下一页的时候从服务器读取数据,必须要加入这一行,通过url参数rowsLoaded=N 在服务器段来获取下一页的数据
mygrid.loadXML("dynscroll.xml");//this sample uses static loading
</script>
星期三, 七月 25, 2007
Javascript匿名function(或无名unnamed)的申明
Anonymous function(or Unnamed function)语法:
var greet=function(){....}//可以有参数,或无参数。
调用的方法:greet();如果有参数,需要再调用的时候加入参数.
对象常量 Object Literals:
var Person=function(){}
Person.prototype.name="William"
Person.prototype.age=17
who=new Person();
document.write(who.name);
Javascript的匿名function 的语法主要设计到Javascript如何对面向对象的支持。
var Person=function(){}
Person.prototype = {
initialize: function(name) {
this.name = name;
},
greet: (function() {
return("Hello from " + this.name+"");
})
};
who=new Person();
who.initialize("William");
alert(who.greet());
一个比较好的地址:http://blogs.sun.com/sundararajan/entry/java_javascript_and_jython
var greet=function(){....}//可以有参数,或无参数。
调用的方法:greet();如果有参数,需要再调用的时候加入参数.
对象常量 Object Literals:
var car = {myCar:(function(){return "WIlliam";}), getCar: "Honda", special: "Sales"}或另一个常用语法
调用:
document.write(car.myCar()); // WIlliam
document.write(car.getCar); // Honda
document.write(car.special); // Sales
对象常量同匿名function 组合,可以写出非常复杂的表达。
var car = {myCar:(function(){return "WIlliam";}), getCar: "Honda", special: "Sales"}
document.write(car.myCar); // WIlliam
document.write(car.getCar); // Honda
document.write(car.special); // Toyota
var Person=function(){}
Person.prototype.name="William"
Person.prototype.age=17
who=new Person();
document.write(who.name);
Javascript的匿名function 的语法主要设计到Javascript如何对面向对象的支持。
var Person=function(){}
Person.prototype = {
initialize: function(name) {
this.name = name;
},
greet: (function() {
return("Hello from " + this.name+"");
})
};
who=new Person();
who.initialize("William");
alert(who.greet());
一个比较好的地址:http://blogs.sun.com/sundararajan/entry/java_javascript_and_jython
星期五, 七月 20, 2007
dojo TabContainer Javascript控制
<div id="mainTabContainer" selectedTab="这里是{CalendarPart,vocationPart,WorkCenterPart}之一" dojoType="TabContainer" style="width: 100%; height: 26em;">
<div id="CalendarPart" dojoType="ContentPane" href="1.jsp" refreshOnShow="true" executeScripts="true" contentCache="false" label="<b>Calendar</b>"></div>
<div id="vocationPart" dojoType="ContentPane" href="2.jsp" refreshOnShow="true" executeScripts="true" contentCache="false" label="<b>Holiday</b>"></div>
<div id="WorkCenterPart" dojoType="ContentPane" href="3.jsp" refreshOnShow="true" executeScripts="true" contentCache="false" label="<b>Work Center</b>"></div>
</div>
每个contentPane内容的改变,典型使用以下Script
<script>
var obj =dojo.widget.byId("WorkCenterPart");
//alert(obj);
obj.setUrl("");//新的动态内容url
</script>
<div id="CalendarPart" dojoType="ContentPane" href="1.jsp" refreshOnShow="true" executeScripts="true" contentCache="false" label="<b>Calendar</b>"></div>
<div id="vocationPart" dojoType="ContentPane" href="2.jsp" refreshOnShow="true" executeScripts="true" contentCache="false" label="<b>Holiday</b>"></div>
<div id="WorkCenterPart" dojoType="ContentPane" href="3.jsp" refreshOnShow="true" executeScripts="true" contentCache="false" label="<b>Work Center</b>"></div>
</div>
每个contentPane内容的改变,典型使用以下Script
<script>
var obj =dojo.widget.byId("WorkCenterPart");
//alert(obj);
obj.setUrl("");//新的动态内容url
</script>
星期二, 七月 17, 2007
WINDOWS XP Dr Watson Log file.
任务管理器,选择进程,鼠标右键选择调试,然后查看log文件
c:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson\drwtsn32.log
c:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson\drwtsn32.log
星期日, 七月 15, 2007
飞狐 运行VBS公式出现错误处理。
在飞狐公式中运行VBS公式出现以下错误的提示:
"脚本引擎请求位置对象信息:"Wscript"",脚本引擎请求位置对象信息:"JSProxy"
解决方法:
进入windows目录下,再进入system32目录下,运行:
regsvr32 jscript.dll
regsvr32 vbscript.dll
再启动飞狐软件或股道软件就可以了。
"脚本引擎请求位置对象信息:"Wscript"",脚本引擎请求位置对象信息:"JSProxy"
解决方法:
进入windows目录下,再进入system32目录下,运行:
regsvr32 jscript.dll
regsvr32 vbscript.dll
再启动飞狐软件或股道软件就可以了。
星期五, 七月 13, 2007
XML CDATA,强大的万能标签。
CDATA
Everything inside a CDATA section is ignored by the parser.
If your text contains a lot of "<" or "&" characters - as program code often does - the XML element can be defined as a CDATA section.
A CDATA section starts with "<![CDATA[" and ends with "]]>":
|
In the example above, everything inside the CDATA section is ignored by the parser.
Notes on CDATA sections:
A CDATA section cannot contain the string "]]>", therefore, nested CDATA sections are not allowed.
Also make sure there are no spaces or line breaks inside the "]]>" string.
星期四, 七月 05, 2007
动态创建复杂form之二
方法一:
formname.document.createElement("form");
document.body.appendChild(formname); //关键语句,否则submit()方法没有实际动作
//add other node
txtObj = document.createElement("input");
//1
txtObj.setAttribute("type","hidden");
txtObj.setAttribute("name","username");
txtObj.setAttribute("value","William");
formname.appendChild(txtObj);
//2
txtObj2 = document.createElement("input");
txtObj2.setAttribute("type","hidden");
txtObj2.setAttribute("name","actionTarget");
txtObj2.setAttribute("value","VacationSetting");
formname.appendChild(txtObj2);
formname.action = target;
formname.method="post";
formname.submit();
方法二:
var f = document.createElement(’form’);
document.body.appendChild(f); //关键语句,否则submit()方法没有实际动作
f.style.display = ‘none’; this.parentNode.appendChild(f);
var h = document.createElement(’input’);
h.type = ‘hidden’; h.name = ‘act’; h.value = ‘admin’;
f.appendChild(h);
var h2 = document.createElement(’input’);
h2.type = ‘hidden’; h2.name = ’setadmin’; h2.value = ‘delcat’;
f.appendChild(h2);
f.method = ‘POST’;
f.action = ‘index.php’;
f.submit();
return false
方法三:
function doIt()
{
formname = document.createElement("form");
document.body.appendChild(formname);
//add other node
txtObj = document.createElement("");
formname.appendChild(txtObj);
//2
txtObj2 = document.createElement("");
formname.appendChild(txtObj2);
//3
txtObj3 = document.createElement("");
formname.appendChild(txtObj3);
formname.action = target;
formname.method="POST";
formname.submit();
}
formname.document.createElement("form");
document.body.appendChild(formname); //关键语句,否则submit()方法没有实际动作
//add other node
txtObj = document.createElement("input");
//1
txtObj.setAttribute("type","hidden");
txtObj.setAttribute("name","username");
txtObj.setAttribute("value","William");
formname.appendChild(txtObj);
//2
txtObj2 = document.createElement("input");
txtObj2.setAttribute("type","hidden");
txtObj2.setAttribute("name","actionTarget");
txtObj2.setAttribute("value","VacationSetting");
formname.appendChild(txtObj2);
formname.action = target;
formname.method="post";
formname.submit();
方法二:
var f = document.createElement(’form’);
document.body.appendChild(f); //关键语句,否则submit()方法没有实际动作
f.style.display = ‘none’; this.parentNode.appendChild(f);
var h = document.createElement(’input’);
h.type = ‘hidden’; h.name = ‘act’; h.value = ‘admin’;
f.appendChild(h);
var h2 = document.createElement(’input’);
h2.type = ‘hidden’; h2.name = ’setadmin’; h2.value = ‘delcat’;
f.appendChild(h2);
f.method = ‘POST’;
f.action = ‘index.php’;
f.submit();
return false
方法三:
function doIt()
{
formname = document.createElement("form");
document.body.appendChild(formname);
//add other node
txtObj = document.createElement("");
formname.appendChild(txtObj);
//2
txtObj2 = document.createElement("");
formname.appendChild(txtObj2);
//3
txtObj3 = document.createElement("");
formname.appendChild(txtObj3);
formname.action = target;
formname.method="POST";
formname.submit();
}
星期三, 七月 04, 2007
用Javascript和DOM完全动态建立一个Form
Form Element Interfa
1.建立一个提交的Form// Create a form
var f = document.createElement("form");
// Add it to the document body
document.body.appendChild(f);
// Add action and method attributes
f.action = "/cgi-bin/some.cgi";
f.method = "POST"
// Call the form's submit method
f.submit();