Я выполняю некоторые основные учебники по JSF, и имеет следующий код в названиях боба userData
JSF ошибка: свойство не найдено
@ManagedBean(name="userData", eager=true)
@SessionScoped
public class userData implements Serializable
{
private static final long serialVersionUID = 1L;
private String name;
private String password;
private String welcomeMessage;
private String selectedCountry = "United Kingdom";
private static Map<String, String> countries;
static
{
countries = new LinkedHashMap<String, String>();
countries.put("en", "United Kingdom");
countries.put("fr","French");
countries.put("de","Germany");
}
public void localeChanged(ValueChangeEvent e)
{
selectedCountry = e.getNewValue().toString();
}
public void setSelectedCountry(String selectedCountry)
{
this.selectedCountry = selectedCountry;
}
public String getSelectedCountry()
{
return selectedCountry;
}
public Map<String, String> getCountries()
{
return countries;
}
public void userData()
{
this.name = "Mario";
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public void setPassword(String password)
{
this.password = password;
}
public String getPassword()
{
return this.password;
}
public String login()
{
return "result";
}
public String getWelcomeMessage()
{
return "hello" + name;
}
}
на другой стороне в .xhtml страницы у меня есть часть HTML код следующим образом:
<h:form>
<h1>
#{userData.selectedCountry}
</h1>
<h:selectOneMenu value="#{userData.selectedCountry}"
onchange="submit()"
valueChangeListener="#{userData.localeChanged}">
<f:selectItems value="#{userData.countries}"/>
</h:selectOneMenu>
<br/>
<h1>
Country Name :
<h:outputText id="country" value="#{userData.selectedCountry}"/>
</h1>
</h:form>
еще, когда я исполняю страницу на сервере производится следующая ошибка: useBeans.xhtml: свойство «SELECTEDCOUNTRY» не найден по типу USERDATA. Может кто-то, пожалуйста, подчеркнуть, что я делаю неправильно?
Похоже, что ваш класс не скомпилирован, как вы ожидали. Помимо этого, я не знаю, какой учебник вы используете, но 'eager = true' работает только с управляемыми bean-файлами' @ ApplicationScoped', иначе этот атрибут будет 'false'. –