2010-05-31 78 views
2

我讀過有關標記每一個時間,屬性那裏順序的描述:的Java:以.jsp屬性越來越順序顛倒

<meta name="description" content="..." /> 

首先,然後內容。在Google網站管理員文檔中也是這樣。基本上,這就像那個地方。

現在在.JSP(在XML註釋)我有以下幾點:

<meta name="description" content="${metadesc}"/> 

所以它的名頭,然後內容。

然而,在生成的網頁,我得到這個:

<meta content="...(200 chars or so here making it a very long line)..." name="description"/> 

不知何故,屬性已被反轉。由於內容遵循官方W3C和Google的建議,因此內容長度少於200個字符,這使得「視覺驗證」名稱屬性在那裏正確(我必須滾動)是一個主要的麻煩。

反正...

爲什麼這些屬性沒有出現在的.jsp定義的順序?

我可以強制它們按照我在我的.jsp中寫入的順序顯示嗎?

我意識到生成的標籤可能是有效的......但我也可以想象有很多非常有創意的方法來獲得有效的標籤,用戶會非常不高興。這是否有意義反轉這些屬性?

編輯哇,只是哇...如果我顛倒我的.jsp屬性(即,他們寫在「錯誤」的順序),然​​後他們出現,因爲我希望他們出現在生成的網站頁。 (Tomcat 6.0.26 btw)

+0

換句話說,你實際使用正在JSPX,不是JSP? – BalusC 2010-06-01 01:08:25

+0

@BalusC:yup,它是一個「JSP Document」/ JSPX,但文件擴展名實際上是* .jsp *而不是* .jspx *(我認爲這不符合規範)。 – NoozNooz42 2010-06-01 01:11:17

回答

1

屬性順序是XML中的一個外國概念。要麼有某種屬性,要麼沒有,XML中沒有任何內容表明一個屬性應該(或必須)在另一個屬性之前。

想想這樣,你有一個名字,你有一個頭發的顏色。兩者都是你的屬性,但是在你有名字之前(或者在你有名字之前),在什麼條件下你必須有頭髮顏色。

元素在某種程度上允許排序,因爲您可以指定DTD和XSD中的嵌套項的順序。

+0

但是你沒有回答這個問題......我說過我可以考慮使用很多非常有創意的方法來創建完全有效的XML,這仍然會讓用戶感到不安。你不認爲按照它們定義的順序出現屬性是合理的期望嗎?如果每次從文本編輯器中保存XML文檔,文本編輯器都會反轉屬性?你會想到你的頭髮顏色比喻,或者你不覺得有什麼奇怪的事情嗎?說實話? – NoozNooz42 2010-06-01 02:31:56

+0

確定+1,我接受你對BalusC的回答,並不反對你,他有足夠的分數:)(對BalusC也是+1)我仍然有點驚訝,但是哦... – NoozNooz42 2010-06-01 15:10:08

+0

我意識到它可能不會看起來像是對問題的回答,但是當標準不支持屬性排序時,即使有些情況下屬性排序會有意義,但討論無序屬性也沒有多大意義。當然,按順序的屬性會幫助你很大(由於你的邏輯),但是底層技術並不能保證屬性順序。在構建解決方案時,即使在更大的背景下它沒有意義,您也不能爲遵循規範而錯誤工具。 – 2010-06-02 03:40:19

1

不幸的是,這就是XML的本質。我從來沒有使用JSPX,但我可以想象它只是被一些XML工具解析,存儲在內存中的某個樹結構中,然後呈現爲HTML。屬性可能存儲在一個無序的數據結構中。我認爲你不會有任何控制權。我個人不會擔心這一點。 JSPX並不是唯一的,許多其他基於XML的視圖/模板技術可能表現相同。唯一會擔心生成的HTML輸出的是純粹的web開發人員,我不認爲這是該網站的主要受衆,是嗎?;)

它絕對不適合化網頁瀏覽器,webbots,SEO無所謂,等