ফেসলেটস এ কীভাবে EL বুলিয়ান এক্সপ্রেশনগুলিতে && ব্যবহার করবেন?


83

ফেসলেটগুলিতে ইএল এক্সপ্রেশনগুলি কীভাবে করবেন এবং কীভাবে করবেন তা নির্ধারণ করতে আমার একটু সমস্যা হচ্ছে। সুতরাং মূলত আমার আছে:

<h:outputText id="Prompt"
    value="Fobar" 
    rendered="#{beanA.prompt == true && beanB.currentBase !=null}" />

তবে আমি পেতে থাকি:

ত্রুটিটি সনাক্ত করা হয়েছে [লাইন: ]৯] সত্তার নাম অবশ্যই অবিলম্বে সত্তা রেফারেন্সে '&' অনুসরণ করবে।

উত্তর:


162

ফেসলেটস একটি এক্সএমএল ভিত্তিক ভিউ প্রযুক্তি। &একটি হল বিশেষ অক্ষর XML- এর একটি সত্তা মত শুরুর প্রতিনিধিত্বমূলক &amp;যা দিয়ে শেষ হয় ;অক্ষর। আপনার এটির থেকে পালানো দরকার, যা কুৎসিত:

rendered="#{beanA.prompt == true &amp;&amp; beanB.currentBase != null}"

বা andপরিবর্তে কীওয়ার্ডটি ব্যবহার করতে হবে যা পাঠযোগ্যতা এবং রক্ষণাবেক্ষণের পক্ষে পছন্দনীয়:

rendered="#{beanA.prompt == true and beanB.currentBase != null}"

আরো দেখুন:


কংক্রিট সমস্যার সাথে সম্পর্কিত নয় , বুলিয়ানদের সাথে বুলিয়ানগুলির সাথে তুলনা করা যখন বিকাশটি ইতিমধ্যে বুলিয়ান ফলাফলের প্রত্যাশা করে তখন কিছুটা বোধগম্য হয়। আমি এ থেকে মুক্তি পেতে পারি == true:

rendered="#{beanA.prompt and beanB.currentBase != null}"

4
জেএসএফ কার্যকরকরণের উচিত এই কেসটি সত্যই স্বীকৃতি দেওয়া উচিত এবং আরও ভাল ডায়াগনস্টিক দেওয়া উচিত। এটি একটি সাধারণ সমস্যা, তবে নতুনদের জন্য খুব বিভ্রান্তিকর।
মাইক ব্রাউন

6

BalusC উত্তর ছাড়াও, প্রতিস্থাপন করতে নিম্নলিখিত জাভা RegExp ব্যবহার &&সঙ্গে and:

Search:  (#\{[^\}]*)(&&)([^\}]*\})
Replace: $1and$3

আপনি যদি আপনার EL এক্সপ্রেশনগুলিতে>> 2 টি আক্ষরিক ব্যবহার করছেন সেক্ষেত্রে সমস্ত উপস্থিতি খুঁজে পেতে আপনি এই নিয়মিত এক্সপ্রেশন প্রতিস্থাপনটি একাধিকবার চালিয়েছেন। আপনার EL এক্সপ্রেশন সিনট্যাক্স পৃথক হলে অগ্রণী # দ্বারা replace প্রতিস্থাপনের মন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.