मैं वसंत पीओजेओ कक्षाओं में किसी भी संपत्ति फाइल को लोड करना चाहता हूं।

असल में, मैं स्प्रिंग मॉडल कक्षाओं में @Size, @NotNull या किसी भी सत्यापन एनोटेशन में संपत्ति फ़ाइल से किसी भी गुण का उपयोग करना चाहता हूं।

लेकिन मुद्दा यह है कि @Size, @NotNull आदि एनोटेशन संकलन-समय पर लागू होते हैं जबकि किसी भी संपत्ति फ़ाइल का डेटा रनटाइम पर लगाया जाता है।

यहां तक ​​कि, मैं max @Size के पैरामीटर में उपयोग करना चाहता हूं जो एकमात्र स्थिर पूर्णांक स्वीकार करता है। मैं मूल्य कैसे लोड कर सकता हूं और इसे निरंतर मूल्य के रूप में इंटीजर में डाल सकता हूं?

और मैं समस्या को हल करने के लिए कस्टम सत्यापनकर्ता या किसी भी कस्टम एनोटेशन का उपयोग कर सकता हूं लेकिन संगठन नीति के अनुसार, मैं अधिक अनुकूलन का उपयोग नहीं कर सकता।

0
meet_paija 8 अक्टूबर 2018, 07:45

1 उत्तर

सबसे बढ़िया उत्तर

मुझे इस समस्या का एक अतिरिक्त समाधान मिला कि हम संपत्ति फ़ाइल के बजाय स्थिरांक के वर्ग का उपयोग कर सकते हैं।

मैं अपने कार्यक्षेत्र में कहीं भी इस स्थिरांक फ़ाइल का उपयोग कर सकता हूं जबकि संपत्ति फ़ाइल मॉडल सत्यापन की Size.max संपत्ति पर उपयोग नहीं कर सकती है

CommonConstants.java

public class CommonConstants 
{
    public static final int NAME=4;
    public static final int ROLE=2;
}

कर्मचारी.जावा

private int id;
@Size(max = CommonConstants.NAME, message = "length exceeds : name")
private String name;
@Size(max = CommonConstants.ROLE, message = "length exceeds : role")
private String role;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getRole() {
    return role;
}

public void setRole(String role) {
    this.role = role;
}

कर्मचारी नियंत्रक.जावा

@Controller
public class EmployeeController {

private static final Logger logger = LoggerFactory.getLogger(EmployeeController.class);

private Map<Integer, Employee> emps = null;

public EmployeeController() {
    emps = new HashMap<Integer, Employee>();
}

@RequestMapping(value = "/emp/save.do", method = RequestMethod.POST)
public String saveEmployeeAction(@Valid Employee employee, BindingResult bindingResult, Model model) 
  {
    if (bindingResult.hasErrors()) {
        logger.info("Returning empSave.jsp page");
        return "empSave";
    }
    logger.info("Returning empSaveSuccess.jsp page");
    model.addAttribute("emp", employee);
    emps.put(employee.getId(), employee);
    return "empSaveSuccess";
  }
}

आउटपुट

enter image description here

0
meet_paija 16 अक्टूबर 2018, 09:36