বিভিন্ন যুক্তি দিয়ে একই url প্যাটার্নের জন্য দুটি পদ্ধতি তৈরি করুন


93

আমার দৃশ্যাবলী রয়েছে যেখানে একটি url "serachUser" দুটি পৃথক মান (অনুরোধ প্যারামিটার) ব্যবহারকারী ID বা ব্যবহারকারী নাম নিয়ে আসতে পারে।

সুতরাং এটির জন্য আমি দুটি পদ্ধতি তৈরি করেছি

public String searchUserById(@RequestParam long userID, Model model) 
public ModelAndView searchUserByName(@RequestParam String userName)

তবে আমি অস্পষ্ট ম্যাপিংটি ব্যতিক্রম পেয়েছি। এই পরিস্থিতিটি পরিচালনা করার জন্য বসন্তের কোনও উপায় আছে।

উত্তর:


197

আপনি paramsHTTP পরামিতি দ্বারা ফিল্টার করতে পরামিতি ব্যবহার করতে পারেন । আপনার ক্ষেত্রে এটি এমন কিছু হবে:

@RequestMapping(value = "/searchUser", params = "userID")
public String searchUserById(@RequestParam long userID, Model model) {
  // ...
}

@RequestMapping(value = "/searchUser", params = "userName")
public ModelAndView searchUserByName(@RequestParam String userName) {
  // ...
}

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

9
আপনি যদি একাধিক params = { "storeId", "containerLabel" }
প্যারাম

যদি ইউআরএল ম্যাপিং এবং অন্যান্য সমস্ত প্যারামিটার একই হয়, তবে এটি কি ডিপ্লোয়মেন্টের সময় ব্যতিক্রম দেয়?
জনথ

তবে অনুমোদনের জন্য কি এই ইউআরএলের বিভিন্ন ভূমিকা / ফাংশন নির্ধারণ করা সম্ভব হবে?
কানগাভেলু সুগুমার

4
সম্পর্কিত: সোয়াগার এটি সম্পূর্ণরূপে সমর্থন করে না। আমি github.com/springfox/springfox/issues/1828 এই সমস্যাটি পেয়েছি । আমি স্প্রিং ফক্স ২.7.০ ব্যবহার করি এবং সোয়াগার ইউআই কেবল ২ এর পরিবর্তে 1 টি পদ্ধতি দেখায় App সম্ভবতঃ এটি enableUrlTemplating(true)একটি পরীক্ষামূলক সোয়াগার ইউআই দ্বারা স্থির করা যায় এবং ব্যবহার করা যেতে পারে : বসন্তফক্স.github.io/springfox/docs/current/…
স্টেফানি

0

প্যারাম নাল অনুরোধের যে কোনও উপায়ে অনুমতি দেওয়া হয় আপনি যদি কোনও মান পাস না করেন তবে তা নালাগুলি হয়ে যায় তবে আপনি নিজের কোডের মতো লিখতে পারেন:

@RequestMapping(value = "/searchUser", params = {"userID","userName"})
public String searchUserById(@RequestParam long userID,@RequestParam String 
userName, 
Model model) {    
if(userID != null){
//..
}else{
// ...
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.