Salesforce 未知构造函数';。。。。。。。(ApexPages.StandardController)和#x27;

Salesforce 未知构造函数';。。。。。。。(ApexPages.StandardController)和#x27;,salesforce,apex,visualforce,Salesforce,Apex,Visualforce,未知的构造函数“….(ApexPages.StandardController)” 我是Salesforce的新手。 我正在做一个练习题,我必须创建一个Visualforce页面来保存联系人的详细信息,并将其显示在另一个VF页面上 ContactDetails.vfp: <apex:page standardController="Contact" extensions="ContactDisplayController"> <apex:form >

未知的构造函数“….(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>
}

当我试图保存此代码时,出现错误: 未知构造函数“ContactDisplayController.ContactDisplayController(ApexPages.StandardController控制器)”


请告诉我这段代码有什么问题。

我认为您的apex类没有保存,因为它应该有一些错误,因此您的visual force页面将无法找到扩展构造函数

将ContactDisplayController类更新为以下内容,并确保它先保存而没有错误,然后保存visual force页面,并且不应出现错误

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('/apex/ContactDisplay?id=' + con.Id);
        return redirectPage;
    } 
return null;
    }
}

我能够用你建议的代码解决msgs中的所有错误。但是我的代码仍然不起作用。单击保存时出错-->错误在contactdetails:Class.ContactDisplayController.SaveAndDirect:第19行第1列组件中的表达式“{!SaveAndDirect}”中。抱歉,忘记了pageReference的“Apex”部分应该是<代码>页面引用重定向页面=新页面引用('/apex/ContactDisplay?id='+con.id)
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;
}
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('/apex/ContactDisplay?id=' + con.Id);
        return redirectPage;
    } 
return null;
    }
}