স্প্রিং এমভিসি


125

আপনি কি আমাকে @PathVariableবসন্তের এমভিসি ব্যবহারের জন্য একটি সংক্ষিপ্ত ব্যাখ্যা এবং একটি নমুনা দিতে পারেন ? আপনি কীভাবে ইউআরএল টাইপ করবেন তা দয়া করে অন্তর্ভুক্ত করুন?
আমি জেএসপি পৃষ্ঠাটি দেখানোর জন্য সঠিক url পেতে লড়াই করছি। ধন্যবাদ।


1
স্প্রিং এমভিসি কন্ট্রোলারের মাধ্যমে একটি জেএসপি দেখানো ভিউ বা বলার মাধ্যমে করা হয় ModelAndView@PathVariableনিয়ামক শেষে ভেরিয়েবল নাম এবং এর মান পেতে ব্যবহৃত টিকা। উদাহরণস্বরূপ www.abcd.com/api/value=34455&anotherValue=skjdfjhks এখানে মান এবং অন্য ভ্যালু পরিবর্তনশীল যা আপনি @PATVariable ("মান") এর মান এবং @ পাথ ভারিবেল ("আরেকটি ভ্যালু") ব্যবহার করে স্ট্রিং অপর ভ্যালু
agpt

উত্তর:


221

ধরুন আপনি কিছু অর্ডার আনার জন্য url লিখতে চান, আপনি বলতে পারেন

www.mydomain.com/order/123

যেখানে 123 অর্ডারআইডি করা হয়।

সুতরাং এখন আপনি যে ইউআরএলটি বসন্তের এমভিসি কন্ট্রোলারে ব্যবহার করবেন তা দেখতে ভালো লাগবে

/order/{orderId}

এখন অর্ডার আইডি একটি পাথ ভেরিয়েবল হিসাবে ঘোষণা করা যেতে পারে

@RequestMapping(value = " /order/{orderId}", method=RequestMethod.GET)
public String getOrder(@PathVariable String orderId){
//fetch order
}

আপনি যদি url www.mydomain.com/order/123 ব্যবহার করেন তবে অর্ডারআইডি ভেরিয়েবলটি 123 মানের দ্বারা বসন্তের মধ্যে পপুলেটে যাবে

এছাড়াও নোট করুন যে প্যাথভ্যারেবলটি অনুরোধের সাথে পৃথক পৃথক হয় কারণ প্যাথ ভেরিয়েবল URL এর অংশ। অনুরোধ প্যারাম ব্যবহার করে একই ইউআরএলটি দেখতে ভালো লাগবে www.mydomain.com/order?orderId=123

এপিআই ডিওসি
স্প্রিংয়ের অফিশিয়াল রেফারেন্স


পথ পরিবর্তনযোগ্য ব্যবহার করে। আমার কি কিছু আমদানি করা দরকার? না কোনও নির্ভরতা? ধন্যবাদ।
জেমস

আপনার কেবলমাত্র প্যাথভেরিয়েবল টিকা রফতানি আমদানি করতে হবে org.springframework.web.bind.annotation.PathVariable
কোডার

হ্যাঁ কিছু বিশদ সরবরাহ করুন, আপনি কী করার চেষ্টা করছেন এবং সমস্যাটি কী
কোডার


আমি www.mydomain.com/order/abc.def রাখতে চাই, এখন নিয়ামক হিসাবে আমি কেবলমাত্র abc
পাচ্ছি

10

নীচের কোড স্নিপেট দেখুন।

@RequestMapping(value="/Add/{type}")
public ModelAndView addForm(@PathVariable String type ){
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.setViewName("addContent");
    modelAndView.addObject("typelist",contentPropertyDAO.getType() );
    modelAndView.addObject("property",contentPropertyDAO.get(type,0) );
    return modelAndView;
}

আশা করি এটি আপনার কোড তৈরিতে সহায়তা করবে।


আমি মডেল এবং দেখার সাথে পরিচিত নই। Hehe। ধন্যবাদ বিটিডব্লিউ .. আমার প্রকল্পে এটি বাস্তবায়নের অপেক্ষায় .. তবে আমার প্রথমে এটি শেষ করা দরকার। :)
জেমস

আমি মনে করি আপনাকে পথের সাথে বাঁধতে @PathVariable ("টাইপ") লিখতে হবে।
ফেলিক্স

1
আমি www.mydomain.com/order/abc.def রাখতে চাই, এখন নিয়ামক হিসাবে আমি কেবলমাত্র abc
পাচ্ছি

1
এটি regexp ব্যবহার করেছে [a-zA-z0-9।]
প্রিম 30488

8

আপনার যদি পাথ ভেরিয়েবলগুলির সাথে ইউআরএল থাকে তবে উদাহরণস্বরূপ www.myexampl.com/item/12/update যেখানে 12 আইডি এবং তৈরি করা হয় সেই পরিবর্তনশীল যা আপনি নিজের এক্সিকিউশন নির্দিষ্টকরণের জন্য উদাহরণ হিসাবে আপডেট করতে একটি একক ফর্ম ব্যবহার করতে চান এবং তৈরি করুন, আপনি এটি আপনার নিয়ামকটিতে করেন।

   @PostMapping(value = "/item/{id}/{method}")
    public String getForm(@PathVariable("id") String itemId ,  
        @PathVariable("method") String methodCall , Model model){

     if(methodCall.equals("create")){
            //logic
      }
     if(methodCall.equals("update")){
            //logic
      }

      return "path to your form";
    }

এই প্রক্রিয়াটি নিশ্চিত করে যে কোনও পাথ ভেরিয়েবল প্রদত্ত ভেরিয়েবলের সাথে আবদ্ধ।
ochiWlad

2

@PathVariable ইউআরএল থেকে মান আনতে ব্যবহৃত হয়

উদাহরণস্বরূপ: কিছু প্রশ্ন করা

www.stackoverflow.com/questions/19803731

এখানে কিছু প্রশ্ন idURL এ প্যারামিটার হিসাবে পাস করা হয়েছে

এখন controllerআপনাকে যা করতে হবে তার মধ্যে এই মানটি আনতে হ'ল পদ্ধতি প্যারামিটারে @PathVariable পাস করা

@RequestMapping(value = " /questions/{questionId}", method=RequestMethod.GET)
    public String getQuestion(@PathVariable String questionId){
    //return question details
}

এই ফর্মটি দেখতে কেমন? আমি কি the ISBN} মান নির্দিষ্ট করতে ইনপুট মানগুলির মধ্যে একটি ব্যবহার করতে পারি? যদি হ্যাঁ, তবে আমি ফর্ম প্যারামিটারের সম্পূর্ণ URL টি কীভাবে তৈরি করব: ক্রিয়া?
জান হরিসিকা

1

টীকাগুলি যা নির্দেশ করে যে কোনও পদ্ধতি প্যারামিটারটি একটি ইউআরআই টেমপ্লেট ভেরিয়েবলের সাথে আবদ্ধ। রিকোয়েস্টম্যাপিং টীকা প্রাপ্ত হ্যান্ডলার পদ্ধতিগুলির জন্য সমর্থিত।

@RequestMapping(value = "/download/{documentId}", method = RequestMethod.GET)
public ModelAndView download(@PathVariable int documentId) {
    ModelAndView mav = new ModelAndView();
    Document document =  documentService.fileDownload(documentId);

    mav.addObject("downloadDocument", document);
    mav.setViewName("download");

    return mav;
}

0

আসুন ধরে নেওয়া যাক আপনি www.example.com/test/111 হিসাবে ইউআরএল হিট করেছেন। এখন আপনাকে আপনার নিয়ামক পদ্ধতিতে 111 (যা গতিশীল) মানটি পুনরুদ্ধার করতে হবে tএখন আপনি @PathVariable নীচে ব্যবহার করবেন:

@RequestMapping(value = " /test/{testvalue}", method=RequestMethod.GET)
public void test(@PathVariable String testvalue){
//you can use test value here
}

সুতরাং ভেরিয়েবল মানটি url থেকে পুনরুদ্ধার করা হয়


0

এটি গতিশীল ইউআরআই মানচিত্র / পরিচালনা করতে ব্যবহৃত টীকাগুলির মধ্যে একটি। এমনকি ইউআরআই গতিশীল প্যারামিটারের জন্য কেবল নির্দিষ্ট ধরণের ইনপুট গ্রহণ করার জন্য আপনি একটি নিয়মিত অভিব্যক্তি নির্দিষ্ট করতে পারেন।

উদাহরণস্বরূপ, যদি কোনও অনন্য নম্বর ব্যবহার করে কোনও বই পুনরুদ্ধার করার URL টি হয়:

URL:http://localhost:8080/book/9783827319333

ইউআরএলটির শেষের দিকে বর্ণিত নম্বরটি @PathVariable হিসাবে দেখানো হয়েছে তা ব্যবহার করে এনে নেওয়া যেতে পারে:

@RequestMapping(value="/book/{ISBN}", method= RequestMethod.GET)

public String showBookDetails(@PathVariable("ISBN") String id,

Model model){

model.addAttribute("ISBN", id);

return "bookDetails";

}

সংক্ষেপে এটি আরেকটি ছিল স্প্রিংয়ের HTTP অনুরোধগুলি থেকে ডেটা আহরণ করা।


এই ফর্মটি দেখতে কেমন? আমি কি the ISBN} মান নির্দিষ্ট করতে ইনপুট মানগুলির মধ্যে একটি ব্যবহার করতে পারি? যদি হ্যাঁ, তবে আমি ফর্ম প্যারামিটারের সম্পূর্ণ URL টি কীভাবে তৈরি করব: ক্রিয়া?
জান হরিসিকা

-1

নীচের কোড স্নিপেট দেখুন।

@RequestMapping(value = "edit.htm", method = RequestMethod.GET) 
    public ModelAndView edit(@RequestParam("id") String id) throws Exception {
        ModelMap modelMap = new ModelMap();
        modelMap.addAttribute("user", userinfoDao.findById(id));
        return new ModelAndView("edit", modelMap);      
    }

আপনি যদি পুরো প্রকল্পটি কীভাবে কাজ করে তা দেখতে চান তবে নীচের লিঙ্ক থেকে এটি ডাউনলোড করুন: -

গিটল্যাবে ইউজারআইফোন প্রকল্প

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