GlassFish 3.1.2.2 で JSF 2.2.4 を使用しています。
私はこのバッキングビーンを持っています:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import java.io.Serializable;
@ManagedBean(name="testMB")
@RequestScoped
public class TestMB implements Serializable {
public long id;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
}
そしてこのビューtest.xhtml
:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<f:metadata>
<f:viewParam name="id" value="#{testMB.id}"/>
</f:metadata>
<h:body>
<h:inputText value="#{testMB.id}" />
</h:body>
</html>
を開く/test.html?id=123
と、ID が0
ではなくとして表示されます123
。<f:viewParam>
なぜその仕事をしなかったのですか?
更新しました
GlassFish 4.0 をインストールしました。
JSF の Maven 依存関係:
<dependency>
<groupId>javax.faces</groupId>
<artifactId>javax.faces-api</artifactId>
<version>2.2</version>
</dependency>
faces-config.xml
:
<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<!-- JSF and Spring are integrated -->
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
</faces-config>
そしてtest.xhtml
:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<f:metadata>
<f:viewParam name="id" value="#{testMB.id}"/>
</f:metadata>
<h:body>
<h:inputText value="#{testMB.id}" />
</h:body>
</html>
しかし、ID は として表示され0
ます。
テスト用 Maven プロジェクト: https://www.dropbox.com/s/qbc05vysspvt46l/jsf-spring-mybatis-master.zip