ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã®äœæãšäœ¿çš
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒãšãã®äž»ãªå±æ§ã«ã€ããŠèª¬æããã
- ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã¯ã©ã¹ãäœæããã
- Visualforce ããŒãžã§ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã䜿çšããã
ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã®æŠèŠ
 controller 屿§ã§ã³ã³ãããŒã©ãŒã¯ã©ã¹ã®ååãåç
§ããŠãã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã Visualforce ããŒãžã«è¿œå ããŸãã
ããŒãžã§ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã䜿çšããå Žåãæšæºã³ã³ãããŒã©ãŒã¯äœ¿çšã§ããŸãããã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã®èšå®ã«ã¯ãç°ãªã屿§ãããŒãžã§äœ¿çšãããŸãã
- æ°ãã Visualforce ããŒãžãäœæããã«ã¯ãéçºè
ã³ã³ãœãŒã«ãéãã[File (ãã¡ã€ã«)] | [New (æ°èŠ)] | [Visualforce Page (Visualforce ããŒãž)] ãã¯ãªãã¯ããŸããããŒãžåã«
ContactsListWithControllerãšå ¥åããŸãã
- ãšãã£ã¿ãŒã§ãä»»æã®ããŒã¯ã¢ãããæ¬¡ã®ããã«çœ®ãæããŸãããã®ããŒãžãä¿åããããšãããšã
<apex:page controller="ContactsListWithController"> <apex:form> <apex:pageBlock title="Contacts List" id="contacts_list"> <!-- Contacts List goes here --> </apex:pageBlock> </apex:form> </apex:page>ContactsListWithControllerããŸã ååšããªãããããšã©ãŒã«ãªããŸããããã«ã€ããŠã¯ã次ã§å¯ŸåŠããŸãã®ã§åé¡ãããŸããã
ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒ Apex ã¯ã©ã¹ãäœæãã
ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã¯ãéçºè ã³ã³ãœãŒã«ã䜿çšããŠèªåã§èšè¿°ã§ãã Apex ã¯ã©ã¹ã«ãããŸããã
ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒããžãã¯ã®èšè¿°ã«åœ¹ç«ã€æ°å€ãã®ã·ã¹ãã ã¯ã©ã¹ãšãŠãŒãã£ãªãã£ã¯ã©ã¹ããããŸãããã«ã¹ã¿ã ã³ã³ãããŒã©ãŒãšããŠäœ¿çšããã¯ã©ã¹ã®å¯äžã®èŠä»¶ã¯ããããååšãããšããããšã§ãã
- æ°ãã Apex ã¯ã©ã¹ãäœæããã«ã¯ãéçºè
ã³ã³ãœãŒã«ãéãã[File (ãã¡ã€ã«)] | [New (æ°èŠ)] | [Apex Class (Apex ã¯ã©ã¹)] ãã¯ãªãã¯ããŸããã¯ã©ã¹åã«
ContactsListWithControllerãšå ¥åããŸãã
ãšãã£ã¿ãŒã§ãä»»æã®ã³ãŒããæ¬¡ã®ã³ãŒãã§çœ®ãæããŸãã
public class ContactsListWithController {
// Controller code goes here
}Visualforce ããŒãžã®å Žåãšåæ§ã«ã倿Žãå ããå Žåã¯å€æŽå 容ã Apex ã«ä¿åããå¿ èŠããããŸããããã»ã©å€§ããªå€æŽã§ã¯ãªãããŸã äœã®åŠçãè¡ãããŸããããVisualforce ããŒãžã§ã®ãšã©ãŒããªããªããŸãã
- Visualforce ããŒãžã«æ»ããå床ä¿åããŸãããšã©ãŒã¡ãã»ãŒãžããªããªããããŒãžãæ£åžžã«ä¿åãããŠããŸãã
-
[Preview (ãã¬ãã¥ãŒ)] ãã¯ãªãã¯ããŠã倿ŽåŠçäžã«ç¢ºèªã§ããããŒãžã®ãã¬ãã¥ãŒãéããŸããæ°ãããŠã£ã³ããŠãéããæšæºã® Salesforce ããŒãžããããŒãšãµã€ãããŒèŠçŽ ã衚瀺ãããŸãããã³ã³ãã³ãã¯ãŸã ãããŸããã
äœæãã 2 ã€ã®æ°ããé ç®ã§ã¯ç©è¶³ããªãããšãäžèŠããŠããããŸããVisualforce ããŒãžãš Apex ã³ã³ãããŒã©ãŒãšãã 2 ã€ã®é ç®ã¯ 90% ããã¬ãŒã¹ãã«ããŒã³ãŒãã§ãããäºãã«ãªã³ã¯ãããŠããŸããä»ã®ã³ãŒããã³ã³ãããŒã©ãŒã«è¿œå ãããšãããŒãžã§ããã䜿çšã§ããããã«ãªããŸãã
é«åºŠãªæäœ
ãã®ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã¯ã©ã¹ã¯ãå¥ã®ã¯ã©ã¹ããç¶æ¿ãããVisualforce ã³ã³ãããŒã©ãŒã®èŠä»¶ãæºããã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããŸãããç¶æ¿ããã¯ã©ã¹ãå®è£ ããã€ã³ã¿ãŒãã§ãŒã¹ã¯ååšããªããããè€éãªã³ã³ãããŒã©ãŒã§ããã®ãããªåŠçã¯è¡ãããŸããããã®ãããApex ã®äœ¿çšçµéšãç©ãã§ãããšãç¬èªã®ã¯ã©ã¹ãã€ã³ã¿ãŒãã§ãŒã¹ãèªç±ã«äœæã§ããããã«ãªããŸãã
ã¬ã³ãŒããååŸããã¡ãœããã远å ãã
ããŒãžã«è¡šç€ºããã¬ã³ãŒããè¿ã SOQL ã¯ãšãªãå®è¡ãã getter ã¡ãœãããäœæããŸãã
ã»ãšãã©ã®ã³ã³ãããŒã©ãŒã®äž»ãªç®çã¯ã衚瀺ããããŒã¿ãååŸããããããŒã¿æŽæ°ãåŠçããããšã§ãããã®ç°¡åãªã³ã³ãããŒã©ãŒã§ã¯ãååŒå 責任è ã¬ã³ãŒããæ€çŽ¢ããåºæ¬ã® SOQL ã¯ãšãªãå®è¡ãããã®ã¬ã³ãŒãã Visualforce ããŒãžã§äœ¿çšã§ããããã«ããã ãã§ååã§ãã
-
ContactsListWithControllerã¯ã©ã¹ã§ã// Controller code goes hereã³ã¡ã³ãè¡ã次ã®ã³ãŒãã§çœ®ãæããŸãããã®ã³ãŒãã¯ãprivate String sortOrder = 'LastName'; public List<Contact> getContacts() { List<Contact> results = Database.query( 'SELECT Id, FirstName, LastName, Title, Email ' + 'FROM Contact ' + 'ORDER BY ' + sortOrder + ' ASC ' + 'LIMIT 10' ); return results; }sortOrderãšããååã®æåååã®éå ¬éã¡ã³ããŒå€æ°ã 1 ã€ãšãgetContacts()ãšããå ¬éã¡ãœããã 1 ã€è¿œå ããŸããsortOrderã¯ãããããããååŒå 責任è ã®äžŠã¹æ¿ãåºæºã«ãªãé ç®ã®ååã瀺ããŸããgetContacts()ãã·ã³ãã«ã§ãããApex ãåããŠäœ¿ãå Žåãæåã¯å°ããããã«ãããããããŸããããã®ã¡ãœããã®çµæãååŒå 責任è ã¬ã³ãŒãã®ãªã¹ããååŸãã SOQL ã¯ãšãªãå®è¡ãããååŒå 責任è ã®ãªã¹ããã¡ãœããã®ã³ãŒã«å ã«è¿ãããŸããã³ãŒã«å ã«ãªãã®ã¯ã ãã¡ãã Visualforce ããŒãžã§ããContactsListWithControllerããŒãžã§ãã³ã¡ã³ãè¡ã次ã®ããŒã¯ã¢ããã§çœ®ãæããŸãã
-
When you save this page you should see a familiar looking table of contact information.Â
<!-- Contacts List --> <apex:pageBlockTable value="{! contacts }" var="ct"> <apex:column value="{! ct.FirstName }"/> <apex:column value="{! ct.LastName }"/> <apex:column value="{! ct.Title }"/> <apex:column value="{! ct.Email }"/> </apex:pageBlockTable>
ContactsListWithController ããŒãžã®ããŒã¯ã¢ããã¯ãããªãèŠæ
£ãããã®ã§ãã ã¿ã°ã® controller 屿§ãé€ããæšæºã³ã³ãããŒã©ãŒã䜿çšããŠããŒãžãäœæããå Žåã«äœ¿çšããã³ãŒããšã»ãŒåãã§ãã
ç°ãªãç¹ã¯ã{! contacts } åŒãè©äŸ¡ããããšãã®åŠçã§ãããã®ããŒãžã§ã¯ãVisualforce ã«ããããã®åŒãã³ã³ãããŒã©ãŒã® getContacts() ã¡ãœããã®ã³ãŒã«ã«å€æãããŸãããã®ã¡ãœããã«ããã ã§æåŸ
ãããååŒå
責任è
ã¬ã³ãŒãã®ãªã¹ããè¿ãããŸãã
getContacts() ã¡ãœãã㯠getter ã¡ãœãããšåŒã°ããŸãããã®äžè¬çãªãã¿ãŒã³ã§ã¯ãVisualforce ããŒã¯ã¢ããã® {! someExpression } ã«ãããã³ã³ãããŒã©ãŒã§ getSomeExpression() ãšããååã®ã¡ãœããã«èªåçã«æ¥ç¶ãããŸããããã¯ã衚瀺ããå¿
èŠãããããŒã¿ã«ããŒãžããã¢ã¯ã»ã¹ããæãç°¡åãªæ¹æ³ã§ãã
æ°ããã¢ã¯ã·ã§ã³ã¡ãœããã远å ãã
ããŒãžäžã®ãŠãŒã¶ãŒå ¥åã«å¿çããã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã§ã¢ã¯ã·ã§ã³ã¡ãœãããäœæããŸãã
Web ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒã¿ã®è¡šç€ºãéèŠã§ããããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã«å¿çããããšãäžå¯æ¬ ã§ããã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã§ã¯ããŠãŒã¶ãŒæŽ»åã«å¿çããã¢ã¯ã·ã§ã³ã¡ãœãããèšè¿°ããããšã«ãã£ãŠãããŒãžã§ãµããŒãããã«ã¹ã¿ã ã¢ã¯ã·ã§ã³ãããã€ã§ãäœæã§ããŸãã
-
getContacts()ã¡ãœããã®äžã«ããContactsListWithControllerã¯ã©ã¹ã§ã次㮠2 ã€ã®ã¡ãœããã远å ããŸãããã® 2 ã€ã®ã¡ãœããã¯ãpublic void sortByLastName() { this.sortOrder = 'LastName'; } public void sortByFirstName() { this.sortOrder = 'FirstName'; }sortOrderéå ¬é倿°ã®å€ã倿ŽããŸããsortOrderã¯ååŒå 責任è ãååŸãã SOQL ã¯ãšãªã§äœ¿çšãããsortOrderã倿Žãããšçµæã®é åºã倿ŽãããŸããContactsListWithControllerããŒãžã§ãct.FirstNameãšct.LastNameã® 2 ã€ã®<apex:column>ã¿ã°ã次ã®ããŒã¯ã¢ããã§çœ®ãæããŸãã
-
èŠèŠçãªå€èгã«å€åã¯ãããŸãããã[å] ãš [å§] ã®åããããŒãã¯ãªãã¯ãããšãååŒå 責任è ãªã¹ãã®äžŠã³æ¿ãé ã倿Žãããããã«ãªããŸããããã°ãããã§ããã
<apex:column value="{! ct.FirstName }"> <apex:facet name="header"> <apex:commandLink action="{! sortByFirstName }" reRender="contacts_list">First Name </apex:commandLink> </apex:facet> </apex:column> <apex:column value="{! ct.LastName }"> <apex:facet name="header"> <apex:commandLink action="{! sortByLastName }" reRender="contacts_list">Last Name </apex:commandLink> </apex:facet> </apex:column>
æ°ããããŒã¯ã¢ããã«ããããã¹ãããã 2 ã€ã®ã³ã³ããŒãã³ããå ã³ã³ããŒãã³ãã«è¿œå ãããŸãã èªäœã¯ãã¬ãŒã³ããã¹ãããããŒã§ããããã®ããããŒãã¯ãªãã¯å¯èœã«ãããå ŽåããããŸãã ã䜿çšãããšãåããããŒã®å
容ãèªç±ã«èšå®ã§ããŸããããã§ã¯ãæ£ããã¢ã¯ã·ã§ã³ã¡ãœãããã³ãŒã«ãããªã³ã¯ã«ããŠã¿ãŸãããªã³ã¯ã®äœæã«ã¯ ã³ã³ããŒãã³ãã䜿çšããã³ã³ãããŒã©ãŒã§ã¢ã¯ã·ã§ã³ã¡ãœãããåç
§ããåŒã« action 屿§ãèšå®ããŸãã(getter ã¡ãœãããšã¯ç°ãªããã¢ã¯ã·ã§ã³ã¡ãœããã¯ãããããåç
§ããåŒãšåãããã«æå®ãããŸã)ã
ãªã³ã¯ãã¯ãªãã¯ãããšãã³ã³ãããŒã©ãŒã§ã¢ã¯ã·ã§ã³ã¡ãœãããèµ·åããŸããã¢ã¯ã·ã§ã³ã¡ãœããã«ããäžŠã³æ¿ãé ã®éå
¬é倿°ã倿Žããã衚ãå衚瀺ãããŸãã衚ãå衚瀺ããããšã{! contacts } ãåè©äŸ¡ãããçŽåã«èšå®ãããäžŠã³æ¿ãé ã§ã¯ãšãªãè¿ãããŸããæçµçµæã®è¡šã¯ããŠãŒã¶ãŒã¯ãªãã¯ã«ãã£ãŠèŠæ±ãããé åºã§ååºŠäžŠã³æ¿ããããŸãã
é«åºŠãªæäœ
ãã®ããŒã¯ã¢ããã§ã¯ã[å] ãš [å§] ã®åã®ããããŒããã¹ããããŒãã³ãŒããããŠããŸããè±èªã䜿çšããªããŠãŒã¶ãŒãããå Žåã¯ã©ããªãã§ãããããæšæºã® Salesforce ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã«ã¯ããã¹ãŠã®æšæºãªããžã§ã¯ãã®é
ç®åã®ç¿»èš³ããŒãžã§ã³ããããã«ã¹ã¿ã ãªããžã§ã¯ãã«ã¯ç¬èªã®ç¿»èš³ãæå®ã§ããŸãããããã«ã¢ã¯ã»ã¹ããã«ã¯ã ãã¬ãŒã³ããã¹ãã®ä»£ããã« ãšããããŒã¯ã¢ããã䜿çšããŠãã ãããé
ç®åã倿Žããããšèªåçã«æŽæ°ããããããçµç¹ã®ãã¹ãŠã®ãŠãŒã¶ãŒãåãèšèªã䜿çšããŠããå Žåã§ãããã®æ¹æ³ã¯é
ç®ã®è¡šç€ºã©ãã«ãåç
§ããæ¹æ³ãšããŠé©åã§ãã
ããã²ãšããš...
ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒãš Apex èšèªã§ã¯ãVisualforce ããŒãžã§èããããã»ãŒãã¹ãŠã®ããšãå®è¡ã§ããŸãã
getter ã¡ãœããã¯ãã³ã³ãããŒã©ãŒã®ããŒã¿ãããŒãžã«æž¡ããŸãã察å¿ãã setter ã¡ãœããã§ã¯ãããŒãžã®å€ãã³ã³ãããŒã©ãŒã«æ»ãããšãã§ããŸããgetter ã¡ãœããåæ§ãsetter ã«ã¯ãsetããã¬ãã£ãã¯ã¹ã䜿çšããŸãããã以å€ã¯ãããã¯åã«åŒæ°ãåãã¡ãœããã§ãã
getter ãš setter ã®ä»£ããã«ãApex ã®ããããã£ã䜿çšã§ããŸããããããã£ã¯ãgetter ã¡ãœãããš setter ã¡ãœãããå«ã倿°ãšããããã®ã¡ãœãããããæç¢ºã«ã°ã«ãŒãåããæ§æãšã®çµã¿åããã§ããã«ã¹ã¿ã ãªããžã§ã¯ããåç §ããåäžããããã£ã¯ã次ã®ããã«å®£èšã§ããŸãã
public MyObject__c myVariable { get; set; }ããããã£ã¯ãå ¬éãŸãã¯éå ¬éã«ããããšãã§ããget ãŸã㯠set ãçç¥ããããšã§èªã¿åãå°çšãæžã蟌ã¿å°çšã«ã§ããŸããããã«ãåãªãå€ã®ä¿åãååŸã«å ããŠè¿œå ããžãã¯ãå®è¡ããå Žåãget ãŸã㯠set ã¡ãœããã®å®è£ ãäœæã§ããŸãã
ããããã£ã¯ Apex ã®äžè¬æ©èœã§ãVisualforce ã«åºæã®ãã®ã§ã¯ãããŸãããApex ã¯å®å šãªããã°ã©ãã³ã°èšèªã§ãè€é㪠Visualforce ããŒãžã®äœæã«äœ¿çšã§ããã ãã§ãªãããã®ä»ã®å€ãã® Lightning Platform éçºã³ã³ããã¹ãã§ã䜿çšãããŸããApex ããã«æŽ»çšããããŸããŸãªæ¹æ³ã«ã€ããŠã®è©³çްã¯ãä»ã®å Žæã«ãã Apex ãããã¯ãããã³ãã®ããŒãžã®æåŸã«ãããªãœãŒã¹ãåç §ããŠãã ããã
Visualforce èŠæ±ãšå¿çã®ã©ã€ããµã€ã¯ã«ã¯ãæåã¯è€éã«æãããããããŸãããç¹ã«ãgetter ãŸã㯠setter (ãŸãã¯äœ¿çšããŠããå Žåã¯ããããã£) ã®ã³ãŒã«ã«ç¹å®ã®é åºã¯ãªããããå®è¡é åºã®é£åé¢ä¿ã¯äœ¿çšããªãããšãçè§£ããããšãéèŠã§ãããVisualforce éçºè ã¬ã€ããã®é¢é£ã»ã¯ã·ã§ã³ãç¹ã«ãã«ã¹ã¿ã ã³ã³ãããŒã©ãŒãšã³ã³ãããŒã©ãŒæ¡åŒµãã®ç« ã«å€æ°ã®è©³çްæ å ±ããããŸãã
ãªãœãŒã¹
- Visualforce éçºè ã¬ã€ã: Creating Your First Custom Controller (åããŠã®ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒã®äœæ)
- Visualforce éçºè ã¬ã€ã: Custom Controllers and Controller Extensions (ã«ã¹ã¿ã ã³ã³ãããŒã©ãŒãšã³ã³ãããŒã©ãŒæ¡åŒµ)
- Apex éçºè ã¬ã€ã
- Salesforce éçºè ããã°: Apex Template: Visualforce Controller (Apex ãã³ãã¬ãŒã: Visualforce ã³ã³ãããŒã©ãŒ)
- Salesforce éçºè ããã°: A Real Controller for Visualforce Charting (Visualforce Charting ã®å®éã®ã³ã³ãããŒã©ãŒ)
- Visualforce éçºè ã¬ã€ã: apex:outputLink ã³ã³ããŒãã³ã
- Visualforce éçºè ã¬ã€ã: apex:repeat ã³ã³ããŒãã³ã
