আমি মনে করি আপনার প্রশ্নটি কোথায় চলছে তা আমি জানি। এবং যেহেতু এই প্রশ্নটিই গুগলের অনুসন্ধানের মূল ফলাফলগুলিতে পপ আপ হয়, আমি @ ভালিড টীকাটি কী করে তার উপর আমি একটি সহজ উত্তর দিতে পারি।
আমি কীভাবে @ ভালিড ব্যবহার করেছি সে সম্পর্কে আমি 3 টি পরিস্থিতি উপস্থাপন করব
মডেল:
public class Employee{
private String name;
@NotNull(message="cannot be null")
@Size(min=1, message="cannot be blank")
private String lastName;
}
জেএসপি:
...
<form:form action="processForm" modelAttribute="employee">
<form:input type="text" path="name"/>
<br>
<form:input type="text" path="lastName"/>
<form:errors path="lastName"/>
<input type="submit" value="Submit"/>
</form:form>
...
দৃশ্যের জন্য নিয়ামক 1:
@RequestMapping("processForm")
public String processFormData(@Valid @ModelAttribute("employee") Employee employee){
return "employee-confirmation-page";
}
এই পরিস্থিতিতে, খালি লাস্টনাম ফিল্ডের সাথে আপনার ফর্মটি জমা দেওয়ার পরে, আপনি বৈধতার বিধি প্রয়োগ করছেন তবে আপনি এটির কোনও পরিচালনা করছেন না সেজন্য একটি ত্রুটি পৃষ্ঠা পাবেন।
বলেছেন ত্রুটির উদাহরণ:
ব্যতিক্রম পৃষ্ঠা
দৃশ্যের জন্য নিয়ামক 2:
@RequestMapping("processForm")
public String processFormData(@Valid @ModelAttribute("employee") Employee employee,
BindingResult bindingResult){
return bindingResult.hasErrors() ? "employee-form" : "employee-confirmation-page";
}
এই দৃশ্যে, আপনি সেই বৈধতা থেকে সমস্ত ফলাফলকে বাইন্ডিংরসাল্টে পাঠিয়ে দিচ্ছেন, সুতরাং সেই ফর্মটির বৈধতা ফলাফলের সাথে কী করবেন তা সিদ্ধান্ত নেওয়া আপনার পক্ষে।
দৃশ্যের জন্য নিয়ামক 3:
@RequestMapping("processForm")
public String processFormData(@Valid @ModelAttribute("employee") Employee employee){
return "employee-confirmation-page";
}
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public Map<String, String> invalidFormProcessor(MethodArgumentNotValidException ex){
}
এই দৃশ্যে আপনি এখনও প্রথম দৃশ্যের মতো ত্রুটিগুলি পরিচালনা করছেন না, তবে আপনি ফর্মের মডেলটি প্রক্রিয়া করার সময় @ ভালিদ ট্রিগার হওয়ার ব্যতিক্রমের যত্ন নেবে এমন একটি অন্য পদ্ধতিতে এটি পাস করেছেন । পরীক্ষা করে দেখুন এই দেখুন সেখানে কি ম্যাপিং এবং যা কিছু করার।
সংক্ষিপ্তসার হিসাবে : @ ভালিড এর সাথে নিজের মতো করে আর কিছুই করবেন না যা বৈধতার জেএসআর 303 টি টীকাযুক্ত ক্ষেত্রগুলির ( @ নটনুল, @ ইমেল, @ সাইজ, ইত্যাদি ... ) যাচাইকরণের প্রেরণা দেয় , আপনাকে এখনও কী করতে হবে তার কৌশল নির্দিষ্ট করতে হবে যাচাইয়ের ফলাফলের সাথে।
আশা করি আমি লোকেদের জন্য এমন কিছু সাফ করতে সক্ষম হয়েছি যার ফলে এটি হোঁচট খায়।
@Valid
উপরApplicationForm
পরামিতি কিন্তু, এখনও যাচাই উপর ছোড়াdate
(সেট হিসাবেnull
) ক্ষেত্র। দয়া করে ব্যাখ্যা করুন.