tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Visualforceページの画面遷移とURLFOR関数

Apexで画面遷移処理を実装する場合、PageReferenceを戻り値とする処理を作成して対応できます。

public PageReference doHome() {
    return new PageReferece('/home/home.jsp');
}


判定処理が必要な場合は上記の方法が良いのですが、単純な画面遷移の場合はURLFOR関数を利用することでApex側の処理を実装せずに対応が可能です。

<apex:commandButton value="LINK"
    action="{!URLFOR('/home/home.jsp')}" />


Visualforceページへ遷移させたい場合は、$Pageを利用します。

<apex:commandButton value="LINK"
    action="{!URLFOR($Page.Sample)}" />


URLパラメータを付与したい場合は {} 外に記載することで付与できます。

<apex:commandButton value="LINK"
    action="{!URLFOR($Page.Sample)}?prm=xxx" />


apex:outputLinkの場合は、apex:paramを使用することでURLパラメータを付与することも可能です。

<apex:outputLink value="{!URLFOR('/home/home.jsp')}">
    <apex:outputText value="LINK" />
    <apex:param name="prm1" value="x1" />
    <apex:param name="prm2" value="x2" />
    <apex:param name="prm3" value="x3" />
</apex:outputLink>


apex:commandButtonとapex:commandLinkの場合は、apex:paramを使用してもApex Controller側に値が渡るだけでURLパラメータには付与されないみたいです。