Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

JSF HelloWorld

65K
15 апреля 2011 года
Diego V.
5 / / 27.02.2011
Читаю книгу по JSF 2.0, к сожалению она только на английском. Там есть пример, вот код
index.xhtml
Код:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
  <title>Welcome</title>
</h:head>
<h:body>
  <h:form>
    <h3>Please enter your name and password.</h3>
    <table>
      <tr>
        <td>Name:</td>
        <td><h:inputText value="#{user.name}"/></td>
      </tr>
      <tr>
        <td>Password:</td>
        <td><h:inputSecret value="#{user.password}"/></td>
      </tr>
    </table>
    <p><h:commandButton value="Login" action="welcome"/></p>
  </h:form>
</h:body>
</html>


welcome.xhtml
Код:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
  <h:head>
    <title>Welcome</title>
  </h:head>
  <h:body>
    <h3>Welcome to JavaServer Faces, #{user.name}!</h3>
  </h:body>
</html>


UserBean.java
Код:
package com.corejsf;

import java.io.Serializable;
import javax.inject.Named;
// or import javax.faces.bean.ManagedBean;
import javax.enterprise.context.SessionScoped;
or import javax.faces.bean.SessionScoped;

@Named("user") // or @ManagedBean(name="user")
@SessionScoped
public class UserBean implements Serializable {
  private String name;
  private String password;

  public String getName() { return name; }
  public void setName(String newValue) { name = newValue; }
 
  public String getPassword() { return password; }
  public void setPassword(String newValue) { password = newValue; }
}


Пользуюсь IDE NetBeans 7. Когда ввожу имя в текстовое поле и нажимаю на кнопку, по идее должно отобразиться приветствие с моим именем, но, вместо этого tomcat выдает ошибку после нажатия на кнопку
Цитата:
/index.xhtml @15,55 value="#{user.name}": Target Unreachable, identifier 'user' resolved to null



Т.е. он не видит объект user или что-то еще? Как это правильно написать? В чем может быть проблема?

244
15 апреля 2011 года
UAS
2.0K / / 19.07.2006
Я в JSF так-то вообще не силен, но, насколько я понимаю, согласно MVC, вы должны определить переменную user, чтобы она была доступна в контексте шаблона.
Ошибка же нам говорит о том, что переменная-идентификатор user не установлена, т.е. равна null, а потому невозможно получить свойство класса name.

Как написать - тут хз, лучше спросить в разделе Java.
65K
15 апреля 2011 года
Diego V.
5 / / 27.02.2011
Да, это понятно, что она недоступна, но не понятны причины - так как это мой первый опыт JSF (и английский у меня не на самом хорошем уровне). Я думал, строка @Named("user") как раз устанавливает этот идентификатор, но, судя по всему - не правильно думал. Думаю сюда заглянут кто-нибудь из Java раздела, не создавать же дубль в другой ветке
65K
15 апреля 2011 года
Diego V.
5 / / 27.02.2011
Все решилось заменой @Named("user") на @ManagedBean(name="user"). Пока не знаю почему, но именно это работает
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог