powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Обновление данных
25 сообщений из 29, страница 1 из 2
Обновление данных
    #39512594
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Я пытаюсь создать страничку на JSF с возможностью обновления данных пользователя. У меня есть класс User, его мэнеджер, главный бин и страничка.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
package models;

import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name="user")
@NamedQuery(name="User.findAll", query="SELECT u FROM User u")
public class User implements Serializable  {
    
    @Id
    @Column(name="id")
    public int id;
    
    @Column(name="FIO")
    public String FIO;
    
    @Column(name="position")
    public String position;
    
    @Column(name="date_of_bird")
    public String dateOfBird;
    
    @Column(name="date_of_begining")
    public String dateOfBegining;
     
    @Column(name="login")
    public String login;
    
    @Column(name="password")
    public String password;
    
    @Column(name="type")
    public String type;
    
далее куча get и set



Его менеджер
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
package managers;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUnit;
import javax.persistence.TypedQuery;

import models.User;

public class UserManager {
    
    public EntityManager em = Persistence.createEntityManagerFactory("Cars").createEntityManager();
    
    public UserManager()
    { }
    
    public User add(User user)
    {
        em.getTransaction().begin();
        User drs = em.merge(user);
        em.getTransaction().commit();
        return drs;
    }
    
    public void delete(int id)
    {
        em.getTransaction().begin();
        em.remove(get(id));
        em.getTransaction().commit();
    }
    
    public User get (int id)
    {
        return em.find(User.class, id);
    }
    
    public void update(User user)
    {
        em.getTransaction().begin();
        em.merge(user);
        em.getTransaction().commit();
    }
    
    public List<User> getAll()
    {
        TypedQuery<User> namedQuery = em.createNamedQuery("User.findAll", User.class);
        return namedQuery.getResultList();
    }
}



Главный бин

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
@ManagedBean (name="Main") 
@RequestScoped             
public class MainBean {
    
    public User user;
    public UserManager usManager;
    public Drivers driver;
    public DriversManager dm;
    
    /*ManagedProperty(value="#{User}")
    UserBean userBean;*/
    
    public String login;
    public String password;

    public List<User> users;
    public List<Drivers> drivers;
    
    //@ManagedProperty(value="#{param.userId}")
    public int selectedId;
    public String selectedFIO;
    public String selectedPosition;
    public String selectedDateBirth;
    public String selectedDateBegin;
    public String selectedlogin;
    public String selectedPassword;
    
    public List<UserViewer> usView;
    
    public MainBean()
    {
        getUs();
    }
public String addUsers()
    {
        user = new User();
        usManager = new UserManager();
        user.setFIO(selectedFIO);
        user.setPosition(selectedPosition);
        user.setDateOfBird(selectedDateBirth);
        user.setDateOfBegining(selectedDateBegin);
        user.setLogin(selectedlogin);
        user.setPassword(selectedPassword);
        usManager.add(user);
        return "table.xhtml";
    }

public void updateUser()
    {
        user = new User();
        usManager = new UserManager();
        user.setId(user.id); 
        user.setFIO(user.FIO); 
        user.setPosition(user.position); 
        user.setDateOfBegining(user.dateOfBegining); 
        user.setDateOfBird(user.dateOfBird); 
        user.setLogin(user.login); 
        user.setPassword (user.password); 
        usManager.update(user);
    }



И две страницы. На 1 таблица с пользователями, и там есть переход на другую страницу с информацией о пользователей.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
<!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:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html">
<h:head>
	<title>JSF JDBC Integration</title>

</h:head>
<h:body>
	<h2>Список пользователей</h2>	
        <h:form>
	<h:dataTable value="#{Main.users}" var="l" border="2">
	<h:column>
	<f:facet name="header">ID</f:facet>
        #{l.id}
        </h:column>
        <h:column>
	<f:facet name="header">FIO</f:facet>
         #{l.FIO}
        </h:column>
        <h:column>
        <f:facet name="header">Должность</f:facet>
         #{l.position}
        </h:column>
        <h:column>
	<f:facet name="header">Дата рождения</f:facet>
        #{l.dateOfBird}
        </h:column>
        <h:column>
            <f:facet name="header">Дата принятия на работу</f:facet>
            #{l.dateOfBegining}
        </h:column>
            <h:column>
                <h:commandLink value="Информация о пользователе" action="#{Main.returnUser(l.id)}">
       <!--<f:param name="userId" value="#{l.id}" />!-->
       </h:commandLink>
       </h:column>
	</h:dataTable>
         
        <h:commandButton value="Зарегистрировать пользователя" action="registration.xhtml" />
        </h:form>
</h:body>
</html>



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head>
     <title>Страница регистрации пользователей</title>
 </h:head>
 <f:view>
 <h:body>
    <h:form>
        <h:panelGrid columns="2" border="0">
            <h:outputText value="Введите ФИО"/>
            <h:inputText value="#{Main.user.id}" />
            <h:outputText value="Введите Фамилию"/>
            <h:inputText value="#{Main.user.FIO}" />
            <h:outputText value="Введите позицию"/>
            <h:inputText value="#{Main.user.position}" />
            <h:outputText value="Введите позицию"/>
            <h:inputText value="#{Main.user.dateOfBegining}" />
            <h:outputText value="Введите позицию"/>
            <h:inputText value="#{Main.user.dateOfBird}" />
            <h:outputText value="Введите позицию"/>
            <h:inputText value="#{Main.user.login}" />
            <h:outputText value="Введите позицию"/>
            <h:inputText value="#{Main.user.password}" />
        </h:panelGrid>
        <h:commandButton value="Обновить данные" action="#{Main.updateUser}" />
    </h:form>
</h:body>
</f:view>
    </html>



Однако при обновлении данных я ловлю ошибку
/UserInformation.xhtml @14,52 value="#{Main.user.id}": Target Unreachable, 'null' returned null
Скажите, как это исправить?
...
Рейтинг: 0 / 0
Обновление данных
    #39512657
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели никто не знает?
...
Рейтинг: 0 / 0
Обновление данных
    #39512662
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Norman94Неужели никто не знает?
Jsf мало кто работает. 1-2 чела.
...
Рейтинг: 0 / 0
Обновление данных
    #39513047
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весь день бьюсь над задачей, но так ничего и не придумал. По сути метод построен правильно, но он по какой то причине не хочет считывать данные с UserInformation.xhtml, словно там ничего и нет, хотя данные там есть. В чём дело не пойму.
...
Рейтинг: 0 / 0
Обновление данных
    #39513054
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Norman94Весь день бьюсь над задачей, но так ничего и не придумал. По сути метод построен правильно, но он по какой то причине не хочет считывать данные с UserInformation.xhtml, словно там ничего и нет, хотя данные там есть. В чём дело не пойму.
А вы гуглили хорошо? Я вот набрал и сразу выдало несколько ссылок на стековерфлоу, там пишут про нулл, про постконструкт и много чего еще другого, вы пробуйте, смотрите, читайте внимательно.
...
Рейтинг: 0 / 0
Обновление данных
    #39513077
output
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Norman94,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
user = new User();
user.setId(user.id); 
user.setFIO(user.FIO); 
user.setPosition(user.position); 
user.setDateOfBegining(user.dateOfBegining); 
user.setDateOfBird(user.dateOfBird); 
user.setLogin(user.login); 
user.setPassword (user.password);



Зачем тут создание юсера и не понятные перекладывания из пустого в пустое user.setId(user.id);
...
Рейтинг: 0 / 0
Обновление данных
    #39513087
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Norman94, возьми фреймворк попроще.
...
Рейтинг: 0 / 0
Обновление данных
    #39513147
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixic,

Пробовал постконстракт - он при нажатии кнопок создаёт новое поле, но пустое. Остальное я гуглил, но там в большинстве случаев связано с добавлением данных, а это немного другое. Я и вместо SessionScoped ставил View Scoped, тогда на новой странице все данные обнулялись.

output,

Раз он пишет, что принимает значение null, я решил перезаполнять поля, но и это не помогло.

mayton,

С радостью, но сказали делать на этом.
...
Рейтинг: 0 / 0
Обновление данных
    #39513215
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonNorman94, возьми фреймворк попроще.

Да дело тут не в фреймворке.
...
Рейтинг: 0 / 0
Обновление данных
    #39513239
Norman94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett,

А в чём?
...
Рейтинг: 0 / 0
Обновление данных
    #39684570
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Norman94Неужели никто не знает?
Jsf мало кто работает. 1-2 чела.
а почему? это же прогрессивная технология
...
Рейтинг: 0 / 0
Обновление данных
    #39684576
Beginner10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixic,
Здравсвуйте можете мне помочь с задачей)
...
Рейтинг: 0 / 0
Обновление данных
    #39684585
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorcarPetro123пропущено...

Jsf мало кто работает. 1-2 чела.
а почему? это же прогрессивная технология
Поиск нажми. Где пишут что это мейнстрим?
...
Рейтинг: 0 / 0
Обновление данных
    #39684586
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Korcarпропущено...

а почему? это же прогрессивная технология
Поиск нажми. Где пишут что это мейнстрим?
на ютубе в 3-х роликах-обучалках говорят. говорят jsp - это фу, древняя технология и вообще не круто, а вот jsf - это то, что всем надо)
...
Рейтинг: 0 / 0
Обновление данных
    #39684590
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcarна ютубе в 3-х роликах-обучалках говорят. говорят jsp - это фу, древняя технология и вообще не круто, а вот jsf - это то, что всем надо)на заборах то же много что пишут - и ты этому веришь?
...
Рейтинг: 0 / 0
Обновление данных
    #39684703
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяKorcarна ютубе в 3-х роликах-обучалках говорят. говорят jsp - это фу, древняя технология и вообще не круто, а вот jsf - это то, что всем надо)на заборах то же много что пишут - и ты этому веришь?
на заборах - обезличенные надписи, а на ютубе всё-таки каналы. никто ж их смотреть не будет, если лажу несут. так что, они ошибаются?
...
Рейтинг: 0 / 0
Обновление данных
    #39684750
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Norman94Неужели никто не знает?
- у Вас какой то непонятный код. Во всяком случае я не догнал, что это значит:
Код: java
1.
2.
user = new User();
user.setId(user.id);
...
Рейтинг: 0 / 0
Обновление данных
    #39684766
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcar3-х роликах-обучалкахнужно больше выборку делать))).
Машину покупал по трем мнениям?
Тещиному, жены и собаки Жучки)))
...
Рейтинг: 0 / 0
Обновление данных
    #39684769
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кроме этого - как в классе User генерируется id?
...
Рейтинг: 0 / 0
Обновление данных
    #39684776
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле id в таблице User IDENTITY INCREMENT?
...
Рейтинг: 0 / 0
Обновление данных
    #39684784
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JSF скорее мертв чем жив.

Не чокаясь...
...
Рейтинг: 0 / 0
Обновление данных
    #39684827
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonJSF скорее мертв чем жив.

Не чокаясь...
м! да? аргументы?
...
Рейтинг: 0 / 0
Обновление данных
    #39684854
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсутствие вакансий.

Все новые проекты стартуют с любых других фреймворков.

Поэтому я предположил что JSF скорее мертв.
...
Рейтинг: 0 / 0
Обновление данных
    #39684867
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОтсутствие вакансий.

Все новые проекты стартуют с любых других фреймворков.

Поэтому я предположил что JSF скорее мертв.
- зато есть старые успешные проекты, на которые JSF-вакансии есть) Но, конечно, стоит отметить печальный факт, что мода на JSF и на JavaEE в целом - прошла. Технологии работающие, но не модные(
...
Рейтинг: 0 / 0
Обновление данных
    #39684869
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Beginner10Nixic,
Здравсвуйте можете мне помочь с задачей)
А чего сразу я-то!!!? )))
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Обновление данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]