Неизвестный конструктор '....... (контроллер ApexPages.StandardController)' - PullRequest
0 голосов
/ 25 сентября 2019

Неизвестный конструктор '....... (контроллер ApexPages.StandardController)'

Я новичок в Salesforce.Я делаю практическую задачу, в которой мне нужно создать страницу Visualforce, чтобы сохранить контактную информацию и отобразить ее на другой странице VF.

ContactDetails.vfp:

<apex:page standardController="Contact" extensions="ContactDisplayController">
    <apex:form >
        <apex:pageBlock title="Add Contact">
            <apex:pageBlockSection columns="1">
                <apex:inputField value="{! Contact.FirstName }"/>
                <apex:inputField value="{! Contact.Lastname }"/>
                <apex:inputField value="{! Contact.Phone }" />
                <apex:inputField value="{! Contact.Email }" />
                <apex:inputField value="{! Contact.Birthdate }" />
            </apex:pageBlockSection>
            <apex:pageBlockButtons >
                <apex:commandButton action="{!saveAndRedirect}" value="Save" />
            </apex:pageBlockButtons>
        </apex:pageBlock>
    </apex:form>
</apex:page>

ContactDisplay.vfp:

<apex:page standardController="Contact" extensions="ContactDisplayController">
    <apex:form >
        <apex:pageBlock title="Display Contact">
            <apex:pageBlockSection columns="1">
                <apex:outputText value="{! Contact.FirstName }"/>
                <apex:outputText value="{! Contact.Lastname }"/>
                <apex:outputText value="{! Contact.Phone }" />
                <apex:outputText value="{! Contact.Email }" />
                <apex:outputText value="{! Contact.Birthdate }" />
            </apex:pageBlockSection>
            <apex:pageBlockButtons >
                <apex:commandButton action="{!redirectToMyVF}" value="Close" />
            </apex:pageBlockButtons>
        </apex:pageBlock>
    </apex:form>
</apex:page>

ContactDisplayController.apxc:

открытый класс ContactDisplayController {

public Contact con { get; set; }
public ContactDisplayController(ApexPages.StandardController controller) {
}

public PageReference redirectToMyVF() {
    PageReference pref = new PageReference('/apex/Page');
    pref.setRedirect(true);
    return pref;
}

public PageReference saveAndRedirect() {
    if(controller.Save() != null) {
        //save your contact record
        controller.Save();
        //retrieve the contact record
        con = ( Contact ) controller.getRecord();
        System.debug( con );
        //pass the contact id as the URL parameter
        PageReference redirectPage = '/ContactDisplay?id=' + con.Id;
        return redirectPage;
    } 
    return null;
}

}

Когда я пытаюсь сохранить этот кодЯ получаю сообщение об ошибке: Неизвестный конструктор 'ContactDisplayController.ContactDisplayController (ApexPages.StandardController controller)'

Пожалуйста, дайте мне знать, что не так с этим кодом.

1 Ответ

0 голосов
/ 26 сентября 2019

Я не думаю, что ваш класс Apex сохраняет, потому что в нем должно быть несколько ошибок, и поэтому ваши страницы визуальной силы не смогут найти конструктор расширений.

Обновите ваш класс ContactDisplayController дои убедитесь, что сначала сохраняются без ошибок, затем сохраняются страницы с визуальной силой, и ошибки не должно быть

public class ContactDisplayController {
public Contact con { get; set; }
public ApexPages.StandardController controller {get; set;}
public ContactDisplayController(ApexPages.StandardController controller) {
        this.controller = controller;
}

public PageReference redirectToMyVF() {
PageReference pref = new PageReference('/apex/Page');
pref.setRedirect(true);
return pref;
}


public PageReference saveAndRedirect() {
    if(controller.Save() != null) {
        //save your contact record
        controller.Save();
        //retrieve the contact record
        con = ( Contact ) controller.getRecord();
        System.debug( con );
        //pass the contact id as the URL parameter
        PageReference redirectPage = new PageReference('/ContactDisplay?id=' + con.Id);
        return redirectPage;
    } 
return null;
    }
}
...