Chciałem się dowiedzieć na prostym przykładzie jak przekazywać dane z JSF do restowego Controllera i żeby zapisać je do bazy dancyh przy uzyciu JPA i klasy DAO ?
Jak używać Rest + JSF + DB
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Warszawa
- Postów: 3573
JSF to renderowania po stronie serwera ( i z tego co słyszałem nienajlepsze).
ReactJS to renderowanie po stronie klienta więc niezbyt to siebie pasuje...
- Rejestracja: dni
- Ostatnio: dni
- Postów: 127
W JSF nie używa się restowych kontrolerów, dane mapuje się przez ExpressionLanguage na atrybuty/metody klas, np tak.:
// dzieki temu @Named poniżej, inputy w HTML mapujemy np. tak:
// <h:inputText value="#{createUser.user.username}" />
// <h:commandButton action="#{createUser.on_createUser_ButtonClick}" value="zapisz" />
@Named
@ViewScoped
public class CreateUser implements Serializable {
@PersistenceContext
EntityManager em;
User user;
public User getUser(){ return user; } //musi byc getter
@PostConstruct
void init(){
User user = new User();
}
@Transactional
public String on_createUser_ButtonClick() {
em.persist(user);
em.flush();
em.refresh(user);// flush + refresh zeby wziac id wygenerowane przez baze danych
return "/user/details?userid="+user.getId()+"&faces-redirect=true&includeViewParams=true";
}
}
@Named powoduje że z szablonu HTML możemy odwoływać się do klasy pod jej nazwą zaczętą z małej litery (np. createUser), potem jak chcemy odwoływać się do kolejnych pól (np. #{createUser.user.username}), to te pola muszą mieć gettery ( i czasami settery), a metody muszą być chyba publiczne
- Rejestracja: dni
- Ostatnio: dni
A gdybym chciał później użyć backendu uzyć do stworzenia aplikacji na androida?
- Rejestracja: dni
- Ostatnio: dni
Wolo napisał(a):
A gdybym chciał później użyć backendu uzyć do stworzenia aplikacji na androida?
No to możesz sobie osobno napisać taki restowy "kontroler", a zapytanie do bazy oddelegować do ejb czy czego tam używasz