Enviornment:託管Bean沒有得到部署與應用程序的其餘部分
- IDE:Eclipse的3.7
- 服務器:Tomcat的7.0
- JSF 2.0
我是新來的JSF和最近開始有一個奇怪的問題,當我嘗試部署一個應用程序。
出於某種原因,除了bean之外,所有東西都被部署。當我注意到無論我做了什麼,我都無法從facelet訪問新創建的bean。然後我注意到我也無法使用在舊bean中創建的新函數。
我做了一個小實驗,我在登錄豆把現有的setter方法,以及改變了它:
public void setName(String name) {
this.name = name;
}
到
public void setName(String name) {
this.name = "not what was typed";
}
但那是從bean檢索到的值在下一頁是我輸入到登錄表單中的值。
我想我的faces-config.xml和web.xml文件都設置正確。我搜索了這個問題,唯一發現的是在bean聲明之前添加@ManagedBean和@SessionScope註釋可能有助於舊版本的JSF,但它不起作用。
我已經嘗試創建一個新的服務器,並重新創建項目,但這也沒有幫助。下面是我與我的新項目獲得(其擁有所有正確創建的相同文件的舊項目,文件和內容粘貼)的錯誤:
An Error Occurred:
javax.el.PropertyNotFoundException: /login.xhtml at line 21 and column 42 value="#{loginBean.name}": Property 'name' not found on type com.tutorial.LoginBean
Caused by:
javax.el.PropertyNotFoundException - /login.xhtml at line 21 and column 42 value="#{loginBean.name}": Property 'name' not found on type com.tutorial.LoginBean
這裏是登錄豆:
/**
* LoginBean.java
*
*/
package com.tutorial;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
@ManagedBean(name="loginBean")
@SessionScoped
public class LoginBean {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void savePerson(ActionEvent actionEvent) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Welcome "
+ name + " " + password + "!"));
}
}
在這裏,我們有從login.xhtml一個片段,它使用變量LoginBean
<ui:define name="sideBar">
<p:accordionPanel multiple="true" activeIndex="0,1">
<p:tab title="Login" id="loginTab">
<h:form>
<h:panelGrid columns="1" style="width: 179px;" class="noBorder">
<h:outputLabel for="username" value="Username"></h:outputLabel>
<p:message for="username" id="msgUsername" />
<h:inputText id="username" value="#{loginBean.name}"
required="true" label="Username"></h:inputText>
<h:outputLabel for="password" value="Password"></h:outputLabel>
<p:message for="password" id="msgPassword" />
<h:inputSecret id="password" value="#{loginBean.password}"
required="true" label="Password">
</h:inputSecret>
<h:commandButton action="login"></h:commandButton>
</h:panelGrid>
</h:form>
</p:tab>
<p:tab title="Information">
Blah blah blah.
</p:tab>
</p:accordionPanel>
</ui:define>
任何人都知道問題是什麼?
對不起,這篇冗長的文章。
你能提供你的'faces-config.xml'和'web.xml'嗎? – 2012-01-17 11:53:51