未知的构造函数'.......(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控制器)'
请让我知道这段代码有什么问题。
答案 0 :(得分:0)
我不认为您的顶点类正在保存,因为它应该有一些错误,因此您的视觉页面无法找到扩展构造函数。
将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('/apex/ContactDisplay?id=' + con.Id);
return redirectPage;
}
return null;
}
}