『壹』 如何去除 JSP 生成的 HTML 中的空格和換行
在WEB應用中,如果使用jsp作為view層的顯示模板,都會被空格/空換行問題所困擾.
這個問題當年也困擾了我比較長的時間.因為在jsp內使用的EL標簽和其他標簽時,會產生大量的空格和換行符.例如:
復制代碼代碼如下:
------- start ----------
<c:choose>
<c:when test="${fn:length(mainPageList)>1&}">
Something
</c:when>
<c:otherwise>
Others
</c:otherwise>
</c:choose>
------- end -----------
這段代碼在Tomcat上輸出如下,多了幾行換行。
復制代碼代碼如下:
------- start ----------
Something
------- end -----------
當然,一般不去特別留意是不會發現有什麼問題的,畢竟輸出再多的空格和換行符,對於瀏覽器生成的最終效果是一樣的。也就是大部分開發人員忽略這個問題的原因;但實際上這些空格和換行會佔用了不少空間,我的經驗是30%左右是空格/換行。也有人說,當web伺服器以zip的方式來輸出html時,空格引起的帶寬問題就可以解決了;是的,當使用zip來輸出html時,空格/換行的空間會被節省回來,但這個增加zip的工作量,而且最大的問題是,瀏覽器生成頁面時,還是會還原所有的空格的換行符。對於前端開發人員來說這是個噩耗,面對大量的空格和冗長的html源碼,想要找到對應出問題的樣式所在的位置可不是容易的事情。
下面說一下解決方案,以Tomcat為例:
方案一,利用web伺服器的trimSpaces功能。
Tomcat5 以上版本都可以使用,這是最簡單的方法。
復制代碼代碼如下:
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>trimSpaces </param-name>
<param-value>true </param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
這個方案有個缺點,它會去掉所有jsp EL標簽之間的空格的換行符,在部分情況下也來帶來不便。
如:Your name is ${firstName} ${lastName}. ==輸出為==> Your name is firstNamelastName.
兩個${}變數之間的空格也會消失。要解決這個問題是相當麻煩,要引入一個只有一個空格的變數。
<c:set var="one_space"> </c:set>
Your name is ${firstName}${one_space}${lastName}.
這樣就正常了,麻煩。雖然可以在一些全局變數的地方來增加一個one_space的變數,但代碼看上去還是不爽。
方案二,我比較喜歡。
這個方案只有在支持jsp 2.1的web伺服器上才可以使用,如Tomcat6。
Jsp2.1多了一個很有用的命令;
<%@ page trimDirectiveWhitespaces="true" %>
這個命令可以使jsp輸出的html時去除多餘的空行(jsp上使用EL和tag會產生大量的空格和空行),沒有使用trimSpaces的問題,現在jsp輸出html也可以很好地排版,看上去也專業;以前我一直都羨慕velocity的模板,輸出html十分干凈好看,現在jsp也可以了。
另外提一下,Tomcat6有一些兼容性問題,例如不能使用#{}這種代碼在jsp中,因為會被當成JSF腳本執行。
雖然這是一個很小的問題,但我們還是要注意細節。
『貳』 java 中 jsp頁面怎麼過濾文本框中的 頭尾空格 有幾種方法!!!
可以用字元串方法,切割,將空格切割掉.
str.split(" ");
或者首位去空格
str.trim();
或者用替換
nstr.replaceAll(" ","" );
『叄』 關於JSP判斷輸入是否為空或空格的問題
應該說有3個方向來可供選擇
第一個源是使用原生的JavaScript編寫,判斷,控制css顯示提示內容, 這樣麻煩些
第二個就是使用jQuery的相關驗證插件,很方便.
如果使用了前段框架[比如easyUI, bootstrap等]更簡單了,按照要求寫一點js
『肆』 去除jsp輸入的空格後再校驗字元長度
function nTabs(thisObj,Num){
if(thisObj.className == "active")return;
var tabObj = thisObj.parentNode.id;
var tabList = document.getElementById(tabObj).getElementsByTagName("li");
for(i=0; i <tabList.length; i++)
{
『伍』 怎樣去除jsp頁面留下的空白,jsp
在web.xml文件中這樣配回置答
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>
『陸』 Jsp頁面怎麼將空格顯示出來
你用,這個和HTML是一樣的。輸入 &nb sp; 表示空格。(中間的空格去掉,因為回在這里如果去答掉網路會直接顯示一個空格。)
如果直接打空格的話,無論你打多少個顯示的都只有一個的。而 就可以疊加。
『柒』 怎麼去除jsp中換行和用el標簽帶來的空格
<%@ page trimDirectiveWhitespaces="true" %>
這個命令可以使jsp輸出的html時去除多餘的空行(jsp上使用EL和tag會產生大量的回空格和空行)。答
但是這個命令是從JSP2.1規范以後才得到支持。
所以在tomcat 6.0之前的版本上如果使用這個命令就會拋出異常:
Page directive has invalid attribute: trimDirectiveWhitespaces
『捌』 JSP中如何刪除字元串的前後空格的
如果你說的是javascript,用:
String.prototype.LTrim = function()// 用正則表達式將前空格用空字元串替代。
{
return this.replace(/(^\s*)/g, "");
}
String.prototype.RTrim = function()// 用正則表達式將後空格用空字元串替代。
{
return this.replace(/(\s*$)/g, "");
}
String.prototype.LRTrim = function()// 用正則表達式將前後空格用空字元串替代。
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ALLTrim = function()// 用正則表達式將所有空格用空字元串替代。
{
return this.replace(/ /g, "");
}
// 有空格的字元串
var t = " leading and trailing spaces ";
var s=t;
window.alert("原始的:"+s + " (" + s.length + ")");
s = t.lrTrim();// 刪除前後空格
window.alert("前後:"+s + " (" + s.length + ")");
s = t.allTrim();// 刪除all空格
window.alert("all:"+s + " (" + s.length + ")");
s = t.lTrim();// 刪除前空格
window.alert("前空格:"+s + " (" + s.length + ")");
s = t.rTrim();// 刪除後空格
window.alert("後空格:"+s + " (" + s.length + ")");
如果你說的是jsp(java server page),用java的:
String s=" asdf sadf";
System.out.println(s.trim());