Enviornment:Управляемые Бобы не получают развертывается с остальной частью приложения
- IDE: Eclipse, 3,7
- сервер: Tomcat 7.0
- JSF 2,0
Я новичок в JSF и недавно приступил к возникновению странной проблемы при попытке развернуть приложение.
По какой-то причине все развертывается, за исключением бобов. Это началось, когда я заметил, что независимо от того, что я сделал, я не мог получить доступ к вновь созданному bean-компоненту из facelet. Затем я заметил, что я также не мог использовать новые функции, созданные в старых бобах.
я сделал небольшой эксперимент, где я взял существующий метод установки в моем входе бобе, и изменил его от:
public void setName(String name) {
this.name = name;
}
в
public void setName(String name) {
this.name = "not what was typed";
}
Но значение, которое было извлечено из фасоли на следующей странице было значение, которое я ввел в форму для входа.
Я думаю, что мои файлы faces-config.xml и web.xml настроены правильно. Я искал проблему, и единственное, что я обнаружил, это то, что добавление аннотаций @ManagedBean и @SessionScope до того, как объявления bean могут помочь в более старых версиях 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'? –