Here I’ve a custom “Student__c” object. There is a validation rule on “Date_of_Birth__c” field, that Date of Birth cannot be greater than today. And I’m using a visualforce page to insert the data in “Student__c” object. So, I need to show the validation rule error message in visualforce page.
Below is my controller which gave the solution for displaying validation error message on visualforce page.
Controller:
public with sharing class StudentExt { public Student__c student{get;set;} public StudentExt(ApexPages.StandardController controller) { student = (Student__c)controller.getRecord(); } public Pagereference saveStudent() { try { Upsert student; return new Pagereference('/' + student.Id); } catch(DMLException de) { Apexpages.addMessage(new ApexPages.Message(ApexPages.SEVERITY.FATAL, de.getDmlMessage(0))); return NULL; } catch(Exception e) { Apexpages.addMessage(new ApexPages.Message(ApexPages.SEVERITY.FATAL, e.getMessage())); return NULL; } } }
Visualforce Page
<apex:page standardController="Student__c" extensions="StudentExt" > <apex:pageMessages id="errormsg" /> <apex:form > <apex:pageBlock > <apex:pageBlockButtons > <apex:commandButton value="Save" action="{!saveStudent}" reRender="errormsg"/> <apex:commandButton value="Cancel" action="{!Cancel}"/> </apex:pageBlockButtons> <apex:pageBlockSection columns="2" title="Information"> <apex:inputField value="{!Student__c.First_Name__c}"/> <apex:inputField value="{!Student__c.Last_Name__c}"/> <apex:inputField value="{!Student__c.Date_of_Birth__c}"/> <apex:inputField value="{!Student__c.Address__c}"/> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page>