メールの送信に使用したいシンプルなカスタムコンポーネントがあります。構造は次のようになります。
<apex:form>
<apex:actionFunction action="{!sendEmail}" name="sendEmail" />
<apex:inputField value="{!To}"/>
<button type="button" onClick="sendEmail();"/>
</apex:form>
そしてこのようなコントローラー:
public with sharing class emailComponent{
public string To { get; set; }
public void sendEmail(){
system.debug(logginglevel.info,To);
}
}
ここで、actionFunctionを起動すると、正しいメソッドが呼び出されますが、「To」の値は常にnullになります。メソッドを呼び出すときにコンストラクターに値を設定しても、値はnullになります。これがカスタムコンポーネントコントローラーであることに関係しているのか、それとも他に何か足りないものがあるのかはわかりません。