JSFでは、 ”

f:setPropertyActionListener

“タグを使用して、バッキングBeanのプロパティに直接値を設定できます。例えば、

<h:commandButton action="#{user.outcome}" value="Submit">
    <f:setPropertyActionListener target="#{user.username}" value="mkyong"/>
</h:commandButton>

上記のJSFコードスニペットで、ボタンをクリックすると、

setUsername()

メソッドを介して ”

mynong

“値を ”

username

“プロパティに設定します。

@ManagedBean(name="user")
@SessionScoped
public class UserBean{

    public String username;

    public void setUsername(String username) {
        this.username = username;
    }

}

JSF f:setPropertyActionListenerの例

さて、JSF 2.0の完全な例を見てみましょう。

1.マネージドBean

“user”というスーパーシンプルマネージドBean。

package com.mkyong;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="user")
@SessionScoped
public class UserBean{

    public String username;

    public String outcome(){
        return "result";
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

}

2. JSFページ

JSFページを使用して、 ”

f:setPropertyActionListener

“を使用して、バッキングBeanのプロパティ ”

username

“に値 ”

mkyong

“を直接設定します。


default.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      >

    <h:body>

        <h1>JSF 2 setPropertyActionListener example</h1>

    <h:form id="form">

      <h:commandButton action="#{user.outcome}" value="Click Me">

          <f:setPropertyActionListener target="#{user.username}" value="mkyong"/>

      </h:commandButton>

    </h:form>

    </h:body>
</html>


result.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      >

    <h:body>

        <h1>JSF 2 setPropertyActionListener example</h1>

    #{user.username}

    </h:body>

</html>

デモ

ボタンをクリックした後の結果です。


jsf2-setPropertyActionListener-example、title = "jsf2-setPropertyActionListener-example"、width = 548、height = 335

ソースコードをダウンロードする

ダウンロード – リンク://wp-content/uploads/2010/11/JSF-2-setPropertyActionListener-Example.zip[JSF-2-setPropertyActionListener-Example.zip](9KB)

リファレンス

2 setPropertyActionListener JavaDoc]

リンク://タグ/jsf2/[jsf2]