H: কমান্ডলিংকের পরিবর্তে আমি কখন h: আউটপুটলিঙ্ক ব্যবহার করব?


129

আমি কখন একটি এর <h:outputLink>পরিবর্তে একটি ব্যবহার করব <h:commandLink>?

আমি বুঝতে পারি যে একটি commandLinkHTTP পোস্ট উত্পন্ন করে; আমি অনুমান করছি যে outputLinkএইচটিটিপি পেতে পারে। এটি বলেছে যে, আমি পড়েছি এমন বেশিরভাগ জেএসএফ টিউটোরিয়াল উপাদান ব্যবহার করে commandLink(প্রায়?) একচেটিয়াভাবে uses

প্রসঙ্গ: আমি একটি ছোট্ট ডেমো প্রকল্প বাস্তবায়ন করছি যা কোনও ব্যবহারকারীর পৃষ্ঠায় শিরোনামের লিঙ্কটি দেখায়, অনেকটা স্ট্যাক ওভারফ্লো এর মতো ...

আরও jquery প্রয়োজন

... এবং আমি নিশ্চিত না commandLink(সম্ভবত ?faces-redirect=trueবুকমার্কযোগ্যতার জন্য ব্যবহার করছি) বা outputLinkসঠিক পছন্দ কিনা।

উত্তর:


195

<h:outputLink>একটি fullworthy এইচটিএমএল উপস্থাপনা <a>মধ্যে সঠিক URL সহ উপাদান hrefঅ্যাট্রিবিউট যা বুকমার্কযোগ্য পেতে অনুরোধ আগুন। এটি সরাসরি পরিচালিত শিম ক্রিয়া পদ্ধতিটি চালিত করতে পারে না।

<h:outputLink value="destination.xhtml">link text</h:outputLink>

<h:commandLink>একটি এইচটিএমএল উপস্থাপনা <a>একটি সঙ্গে উপাদান onclickস্ক্রিপ্ট যা (লুকানো) পোষ্ট ফর্ম জমা দিয়েছে এবং একটি পরিচালিত শিম কর্ম পদ্ধতি ডাকা পারবেন না। এটি ক এর ভিতরে স্থাপন করা প্রয়োজন <h:form>

<h:form>
    <h:commandLink value="link text" action="destination" />
</h:form>

?faces-redirect=trueউপর পরামিতি <h:commandLink>, যা পোস্টের পরে একটি পুনঃচালনা আরম্ভ করে (প্রতি যেমন পোস্ট-পুনর্চালনা-get (আর URL টি হবে না "পিছনে এক") যখন লিংক আসলে ক্লিক করা হয়, শুধুমাত্র লক্ষ্য পৃষ্ঠার bookmarkability উন্নত প্যাটার্ন) , কিন্তু এটি পরিবর্তন করে না hrefএর <a>একটি fullworthy URL হওয়া থেকে উপাদান। এখনও আছে #

<h:form>
    <h:commandLink value="link text" action="destination?faces-redirect=true" />
</h:form>

জেএসএফ 2.0, যেহেতু <h:link>URL এর পরিবর্তে একটি ভিউ আইডি (নেভিগেশন কেস ফলাফল) নিতে পারে। এটি <a>সঠিক URL এর পাশাপাশি একটি এইচটিএমএল উপাদান তৈরি করবে href

<h:link value="link text" outcome="destination" />

সুতরাং, যদি এটি SO ব্যবহারকারীর লিঙ্কের মতো খাঁটি এবং বুকমার্কযোগ্য পৃষ্ঠা-থেকে-পৃষ্ঠা নেভিগেশনের জন্য হয়, তবে ব্যবহার করুন <h:outputLink>বা <h:link>। এটি এসইওর পক্ষে আরও ভাল যেহেতু বটগুলি সাধারণত পোষ্ট ফর্মগুলি বা জেএস কোডগুলি সিফার করে না। এছাড়াও, পৃষ্ঠাগুলি এখন বুকমার্কযোগ্য এবং ইউআরএল আর "পিছনে নেই" হিসাবে ইউএক্স উন্নত হবে।

যখন প্রয়োজন হয়, আপনি নির্ধারক বা প্রশ্নযুক্ত গন্তব্য পৃষ্ঠায় সংযুক্ত @PostConstructএকটি @RequestScopedবা প্রাক প্রসেসিং কাজ করতে পারেন @ViewScoped @ManagedBean। আপনি শিমের বৈশিষ্ট্য হিসাবে GET পরামিতিগুলি ব্যবহার করতে @ManagedPropertyবা <f:viewParam>সেট করতে পারেন ।

আরো দেখুন:


2
না, হতে হবে না। শুধুমাত্র UICommandউপাদানগুলির একটি UIFormউপাদানগুলিতে যেতে হবে ।
BalusC

3
আসলে কিছুই নেই। সাধারণত, যখন আপনি বিদ্ধ করতে পারেন h:outputLinkবা h:linkলিঙ্কের জন্য। এসইওকে অবমূল্যায়ন করা উচিত নয়। যাইহোক, এসইওতে এখানে ভাল আরএসটি -এর মতো ইউআরএল এর মত, প্রিটটিফিসে একবার দেখুন ।
BalusC

1
না, পার্থক্যটি হ'ল h:linkজেএসএফ ভিউ আইডি (উদাহরণস্বরূপ page)কে মান হিসাবে h:outputLinkনেয় এবং সত্যিকারের ইউআরএল (যেমন /page.xhtmlবা /page.jsf, বা আপনার FacesServletম্যাপিংয়ের উপর নির্ভর করে অন্য ) নেয় as ইউআরএল এনকোডিং উভয় ক্ষেত্রেই হয়। সেখানে প্রণালী দ্বারা টেমপ্লেট টেক্সট এল আচরণ রেন্ডার মধ্যে কোন পার্থক্য #{...}এবং h:outputText। উভয়ই পূর্বনির্ধারিত এক্সএমএল সত্ত্বাকে পালিয়ে যায় (না, এটি ইউআরএল এনকোডিংয়ের মতো নয়)। h:outputTextশুধুমাত্র অফার আরও attribtues পছন্দ id, styleClassইত্যাদি উপাদান এবং / অথবা মার্কআপ নিয়ন্ত্রন করতে পারেন।
বালুসসি

1
@ বালুসসি আপনার উত্তরের প্রথম লাইনে "পূর্ণ যোগ্য এইচটিএমএল" বলতে কী বোঝায়?
গীক 13

1
@ গীক: কেবলমাত্র টু দ্য পয়েন্টের এইচটিএমএল <a>উপাদান, এর চেয়ে বেশি কিছুই নেই, কোনও কল্পতা নেই, জেএস কোড ইত্যাদি নেই
বালুস সি

4

আমি আরও দেখতে পাচ্ছি যে পৃষ্ঠা লোডিং (পারফরম্যান্স) h: কমান্ডলিংকের চেয়ে h: লিঙ্কটি ব্যবহার করতে দীর্ঘ সময় নেয়। h: লিঙ্কটি h: কমান্ডলিংকের সাথে তুলনায় দ্রুত


1
আমি দেখলাম এটাতে বিশ্বাস করা কঠিন. শ্রবণশক্তি / আপনার নিজস্ব উপাখ্যানীয় প্রমাণ ছাড়াও, আপনার কি এটি সমর্থন করার মতো কিছু আছে?
ম্যাট বল

5
@ ম্যাট: আমি কল্পনা করতে পারি যে আপনি যখন একটি পৃষ্ঠায় একটি "Godশ্বর" ফর্মের মধ্যে এই পোস্ট ন্যাভিগেশন লিঙ্ক রাখেন উদাহরণস্বরূপ> সারি প্রতি 3 টি ইনপুট ক্ষেত্র সমন্বিত> 1000 সারি সহ একটি ডেটেবল। তবে এই জাতীয় পৃষ্ঠাতে যাইহোক অন্য গুরুতর সমস্যা রয়েছে :)
বালাসসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.