সমান স্ট্রিংয়ের জন্য ট্যাগ হলে জেএসটিএল


91

আমি আমার জেএসপি পৃষ্ঠায় একটি বস্তু থেকে একটি পরিবর্তনশীল পেয়েছি:

<%= ansokanInfo.getPSystem() %>

ভেরিয়েবলের মান NAT হয় যা সঠিক এবং আমি এই মানটির জন্য নির্দিষ্ট পৃষ্ঠার উপাদান প্রয়োগ করতে চাই। কেসটি জানার জন্য আমি কীভাবে ট্যাগ ব্যবহার করব? আমি কিছু চেষ্টা করেছিলাম

<c:if test = "${ansokanInfo.getPSystem() == 'NAT'}">      
   process  
</c:if> 

কিন্তু উপরের কিছু প্রদর্শন করে না। আমি এটা কিভাবে করব? অথবা আমি ঠিক পাশাপাশি স্ক্রিপ্টলেটগুলিও ব্যবহার করতে পারি

<% if (ansokanInfo.getPSystem().equals("NAT"){ %>
process
<% } %>

কোন উত্তর বা মন্তব্যের জন্য ধন্যবাদ।


4
আপনি দয়া করে বিস্তারিত getPSystem()এবং করতে পারেন ansokanInfo? আপনি কি তাদের অনুরোধে সেট করেছেন বা এর মাধ্যমে অ্যাক্সেস করছেন import?
সাঁথোশ

4
আইআইআরসি আমি তাদের অনুরোধে সেট করেছিলাম এবং সমাধানটি (ওয়ার্কআরআন্ডড) ছিল বালাসকির মতানুসারে ওয়েবস্পিয়ার আপগ্রেড করা এবং তারপরে একটি নতুন সংস্করণ ট্যাগের সাহায্যে শিমের পদ্ধতিগুলি আহ্বান করতে পারে। আমি প্রশ্নে স্ট্যান্ডার্ড ওয়েবস্পিয়ার ব্যবহার করছিলাম এবং জেএসপি এবং জেএসটিএল পদ্ধতি চালাতে পারে তার আগে কিছু সংস্করণ। দয়া করে আমার অন্য প্রশ্নটি সন্ধান করুন যেখানে বালুসসি আমাদের জানান যে আমি একটি ওয়েবস্ফিয়ার সংস্করণ ব্যবহার করছি যা পদ্ধতিগুলি চালিয়ে যাওয়ার জন্য নতুন সংস্করণ প্রয়োজন।
নিক্লাস আর।

4
সুতরাং এখন আপনি কি আপনার অ্যাপ্লিকেশন সার্ভারটি 8-এ উন্নীত করেছেন? এবং সমাধান কি ব্যর্থ হয়?
সনটোশ

@ সানক্রিশ আমি এখন জেএসপি ব্যবহার করি না। আমি আশা করি এটি আপনার পক্ষে কাজ করে এবং এটি অ্যাপ সার্ভারের নতুন সংস্করণগুলির জন্য আপডেট হয়েছিল।
নিক্লাস আর।

উত্তর:


147

চেষ্টা করুন:

<c:if test = "${ansokanInfo.PSystem == 'NAT'}">

জেএসপি / সার্লেট ২.৪ (আমি মনে করি এটি সংস্করণ নম্বর) EL তে পদ্ধতি কলগুলি সমর্থন করে না এবং কেবলমাত্র বৈশিষ্ট্য সমর্থন করে। সর্বশেষতম সার্লেট পাত্রে সমর্থন পদ্ধতি কলগুলি করা (যেমন টমক্যাট do)।


4
জর্নের উত্তরের ভিত্তিতে আমি আমার উত্তর আপডেট করেছি। টুপিটি তার কাছে।
অ্যাডাম জেন্ট

4
আমি জেএসপি (এক্স) ছেড়ে দিয়েছি। আমি হয় গোঁফ ( github.com/samskivert/jmustache ) বা আমার নিজস্ব টেম্প্লেটিং ভাষা JATL ( কোড . google.com/p/jatl ) ব্যবহার করি।
অ্যাডাম জেন্ট

4
আপনি একাধিক স্ট্রিং কিভাবে করবেন? এর চেয়ে আরও ভাল উপায় হতে পারে<c:if test = "${ansokanInfo.PSystem == 'NAT' || ansokanInfo.PSystem == 'CAT'}">
ডিলন


16

আমি মনে করি যে অন্যান্য উত্তরগুলি EL প্রকাশে সম্পত্তি নাম ব্যবহারের জন্য একটি গুরুত্বপূর্ণ বিবরণ মিস করে। পদ্ধতির নাম থেকে সম্পত্তির নামগুলিতে রূপান্তর করার নিয়মগুলি 'ইন্ট্রোস্পেক্টর.ডেস্পিটালাইজ'-এ নির্দিষ্ট করা হয়েছে যা জাভা শিম মানের অংশ:

এর অর্থ সাধারণত প্রথম অক্ষরটিকে আপার ক্ষেত্রে থেকে নিম্নের ক্ষেত্রে রূপান্তর করা হয়, তবে (অস্বাভাবিক) বিশেষ ক্ষেত্রে যখন একের বেশি অক্ষর থাকে এবং প্রথম এবং দ্বিতীয় অক্ষর উভয়ই বড় হাতের থাকে, আমরা একে একে ছেড়ে চলে যাই।

সুতরাং "ফুবা" "ফুবা" এবং "এক্স" "এক্স" হয়ে যায়, তবে "ইউআরএল" "ইউআরএল" হিসাবে থাকে।

সুতরাং আপনার ক্ষেত্রে জেএসটিএল কোডটি নীচের মতো হওয়া উচিত, মূলধন 'পি' নোট করুন:

<c:if test = "${ansokanInfo.PSystem == 'NAT'}">

4
নামকরণের কনভেনশন সহ গ্রাহকরা এবং সেটটাররা জাভা শিমের সংজ্ঞাটি অনেক বেশি। আমি অনুমান করি যে আমাদের কোথায় ভেরিয়েবলটি জেএসপিতে পাস হয়েছে সে সম্পর্কিত আরও কিছু তথ্য প্রয়োজন। EL- তে উপলভ্য হওয়ার জন্য এটি কিছুটা ক্ষেত্রের মধ্যে থাকতে হবে, উদাহরণস্বরূপ একটি অনুরোধ বা পেজকন্টেক্সট বৈশিষ্ট্য হিসাবে। স্ক্রিপ্ট ব্লক দ্বারা নির্মিত একটি স্থানীয় ভেরিয়েবল EL এর জন্য উপলব্ধ হবে না।
জর্ন হোর্স্টম্যান

5

আপনি স্ক্রিপ্টলেটগুলি ব্যবহার করতে পারেন, তবে এটি যাওয়ার উপায় নয়। আপনার জেএসপি ফাইলগুলিতে আজকাল ইনলাইন স্ক্রিপলেট বা জাভা কোডগুলি একটি খারাপ অভ্যাস হিসাবে বিবেচিত।

আপনার আরও কিছুটা জেএসটিএলে পড়তে হবে। যদি ansokanInfo অবজেক্টটি আপনার অনুরোধ বা সেশন স্কোপে থাকে তবে অবজেক্টটি (toString () পদ্ধতি) এর মতো মুদ্রণ করা:: so ansokanInfo you আপনাকে কিছু বেস তথ্য দিতে পারে। $ so ansokanInfo.pSystem অবজেক্ট গেটের পদ্ধতিতে কল করা উচিত। এটি যদি সমস্ত কাজ করে তবে আপনি এটি ব্যবহার করতে পারেন:

<c:if test="${ ansokanInfo.pSystem  == 'NAT'}"> tataa </c:if>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.