त्रुटि पार्सिंग / page.xhtml: त्रुटि का पता लगाया [पंक्ति: 42] इकाई "nbsp" संदर्भित थी, लेकिन घोषित नहीं


88

मैं अपने जेएसएफ पेज में नॉन ब्रेकिंग स्पेस का उपयोग करना चाहता हूं। मुझे पता है, सादे HTML में मैं इसके लिए उपयोग कर सकता हूं  और यह ठीक काम करता है। हालाँकि, जब मैंने उन लोगों  को फेसलेट्स पृष्ठ पर रखा, तो यह निम्नानुसार है:

त्रुटि पार्सिंग /page.xhtml: त्रुटि का पता लगाया [पंक्ति: 42] इकाई "nbsp" संदर्भित थी, लेकिन घोषित नहीं की गई।

यह कैसे होता है और मैं इसे कैसे हल कर सकता हूं?


कुछ और कोड दिखाएं ... आपने कहां आईडी लगाई  है?
डैनियल

जवाबों:


184

फेसलेट्स XML आधारित व्यू टेक्नोलॉजी है। XML में केवल पाँच पूर्वनिर्धारित इकाइयाँ हैं । उनमें  से नहीं है। यह केवल सादे HTML या लीगेसी JSP में उपयोग होने पर काम करता है (ध्यान दें: यह JSPX में काम नहीं करता है क्योंकि यह XML आधारित भी है!)।

इसे ठीक करने के लिए, आपको या तो इकाई को स्वयं को घोषित करने की आवश्यकता है  , जिसमें XHTML फ़ाइल की इकाई है।

<!DOCTYPE html [
    <!ENTITY nbsp "&#160;"> 
]>

या, इसके बजाय, (हेक्सा) दशमलव संकेतन का उपयोग करें:

&#xA0; or &#160;

एक औसत आईडीई में "सभी फ़ाइलों को खोजने और बदलने" के लिए तुच्छ होना चाहिए और इसके &nbsp;द्वारा होने वाली प्रत्येक घटना को प्रतिस्थापित करना होगा &#xA0;


3
हेक्स या दशमलव संकेतन का उपयोग करें। :-)
नबीन


10
  1. <![CDATA[&nbsp;]]>ठीक काम करना चाहिए। यह विशेषता मान के अंदर काम नहीं करता है , हालांकि।

  2. वैकल्पिक रूप से, जब तक &amp;XML में एक पूर्वनिर्धारित इकाई है, आप कोशिश कर सकते हैं &amp;nbsp; - मेरे लिए XML आधारित JSP के साथ काम किया। यह विशेषताओं के भीतर भी काम करना चाहिए।


9

मेरे लिए निम्नलिखित सिद्धांत सक्षम करता है &nbsp;:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

इसके साथ मैं कुछ ऐसा करने में सक्षम था जैसे <xsl: variable name = "size" select = "substring-इससे पहले (s: td [3], '& nbsp;')" />
slott

5

जोड़ना

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

फ़ाइल के शीर्ष पर


4
मुझे यह आश्चर्यचकित करने वाली दो नकारात्मकताएँ क्यों मिलीं। यह शायद थोड़ा बहुत संक्षिप्त है लेकिन यह सही है। इकाई सिद्धांत में परिभाषित नहीं किया गया था और प्रदान की गई युक्ति का उपयोग करते समय इसे परिभाषित किया गया है। एक साल बाद, कोई व्यक्ति ठीक उसी चीज को पोस्ट करता है और दो अपवोट प्राप्त करता है।
Dilapidus

मैं @Dilapidus से सहमत हूं, यह मेरे लिए क्रोम और JBoss EAP 7 और फेसलेट्स संस्करण 2.2 में काम किया है
JGlass
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.