以下は私のバッキングビーンです:
@Component("resume")
@Scope("session")
@Document
public class Resume implements ResumePlan,Serializable {
private static final long serialVersionUID = -5332235643191283709L;
@Id
private String id;
@DBRef
private Objective objective;
@DBRef
private PersonalDetails personalDetails;
.....
//getter and setters
.....
public String putResumeToDB()
{
System.out.println("HELOOOOOOOOOOOOOOOOOOOOOOOOOOO"+this);
return "Success";
}
..........
}
以下はjsfファイルです。
<h:form>
<p:panel id="panel" header="Personal Details">
<p:messages id="msgs" />
<h:panelGrid columns="3">
<h:outputLabel for="objective" value="Objective: " />
<p:inputTextarea id="objective" rows="2" cols="80"
counter="counter0" maxlength="100"
value="#{resumeBuilder.resume.objective.objective}"
counterTemplate="{0} characters remaining." autoResize="false">
</p:inputTextarea>
<h:outputText id="counter0" />
<h:outputLabel for="name" value="Name: *" />
<p:inputText id="name"
value="#{resumeBuilder.resume.personalDetails.name}"
required="true">
<f:validateLength minimum="8" />
</p:inputText>
<p:message for="name" display="icon" />
.............
</h:panelGrid>
<p:commandButton id="btn" value="Save"
action="#{resume.putResumeToDB}" >
</p:commandButton>
</p:panel>
</h:form>
私のサーバーはtomcat7です。
フォームに値を入力し、System.out.println をチェックしてバッキング Bean の値を確認すると、次のようになります。
HELOOOOOOOOOOOOOOOOOOOOOOOOOOOResume [id=null, objective=null, personalDetails=null, skills=null, experience=null, education=null, references=null, publications=null]
フォームにすべての値を入力すると、バッキング Bean が空になるのはなぜですか。私は何を間違っていますか?mongodb でのデータの永続化にスプリング データを使用しています。faces-config.xml で el-resolver エントリを作成しました
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
また、web.xml には次のエントリがあります。
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
ありがとう