私は JSF と Primefaces (JSF 2.0.2、PrimeFaces 3.0.5、Spring 3.0.0) を試しています。次のような xhtml ページからマネージド Bean にアクセスできないようです。
<h:inputText id="lastName" value="#{personalBean.personal_Basic.firstName}" label="Last Name" required="true" />
リクエストは、コマンド リンクの呼び出しから Bean メソッド、サービスに始まり、ページを返します。サーバー コンソール Bean で、サービス メソッドが実行されていることがわかりました。上記のように Bean 属性を使用しようとしても、何も表示されません。ただし、ユーザーのセッション管理に使用されるセッション スコープ Bean にアクセスできます。
この質問が素朴すぎる場合は申し訳ありません。問題を解決するためのご意見をお待ちしております。
以下は私のコードスニップです。これは私が豆を呼ぶ方法です:
<h:form>
<p:commandLink id="ajax" actionListener="#{personalBean.getPersonalInfo}" style="margin-left:5px;">
<h:outputText value="Personal Info" /> <br/>
</p:commandLink>
</h:form>
以下は、リクエスト スコープのマネージド Bean です。
package com.test.model;
@ManagedBean
@Scope("request")
public class PersonalBean implements Serializable {
private static final long serialVersionUID = 199L;
private Personal_Basic personal_Basic;
private IPersonalService personalService;
@Inject
public PersonalBean(final IPersonalService personalService) {
this.personalService = personalService;
}
public String getPersonalInfo() {
System.out.println("\n\nPersonalBean#getPersonalInfo called...**");
User user = null;
Personal_Basic personal_Basic = personalService.getPersonalBasic();
this.setPersonal_Basic(personal_Basic);
System.out.println("personal_Basic data:"+personal_Basic);
System.out.println("PersonalBean#getPersonalInfo ended...");
return "/page/personal.html";
}
// Getters/setters for class members followed
}
PersonalService の実装には @Service のアノテーションが付けられます。
以下は、Spring 構成 xml からの抜粋です。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config/>
<context:component-scan base-package="com.test"/>
...................
...................
</beans>
以下は、faces-config.xml からの抜粋です。
<?xml version="1.0"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
<resource-bundle>
<base-name>Messages</base-name>
<var>msg</var>
</resource-bundle>
<locale-config>
<default-locale>en</default-locale>
</locale-config>
</application>
...........................
</faces-config>