Cześć uczę się Javy, chciałem sobie zrobić formularz, który zapisuje dane w bazie i w związku z tym mam kilka pytań.
Oczywiście najpierw stworzyłem sobie klasę Person dałem pola name, password , gettery i setery. Następnie w pliku html stworzyłem sobie prosty formularz:
<form method="post" th:object="${person}" id="superForm">
<center> <input type="text" th:field="*{name}" class="specialInput" id="input1" placeholder="Podaj Login"></center>
<center><input type="text" th:field="*{password}" class="specialInput" id="input2" placeholder="Podaj Hasło"></center>
<center> <input type="submit" value="Zaloguj"></center>
</form>
oraz stworzyłem klasę Controller z metodami, zrobiłem jakąs tam prostą walidację itp. no i rzeczywiście to działa po wpisaniu loginu i hasła przenosi mnie na inną stronę a przy błędzie muszę wpisać ponownie.
@Controller
public class IndexController {
@RequestMapping(method = RequestMethod.GET, value = "formWithPojo")
public String formWithPojo(Model model ) {
model.addAttribute("person", new Person());
return "formWithPojo";
}
@RequestMapping(method = RequestMethod.POST, value = "formWithPojo")
public String formWithPojo1(@ModelAttribute Person person, @Valid formWithPojoDTO formWithPojoDTO, BindingResult result ){
if(result.hasErrors()) {
return "formWithPojo";
}else
return "redirect:/menu1";
}
Chciałbym to teraz połączyć z Hibernate żeby w przypadku każdego logowania dodawało mi po prostu do bazy login i hasło . Korzystam z Xampa. Dodałem oczywiście w dependencies odpowiednie rzeczy do Hibernate i stworzyłem taki pliczek żeby mieć połączenie z bazą itp.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3308/carrent?useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hbm2ddl.auto">create</property>
</session-factory>
</hibernate-configuration>
Do tej pory jak się uczyłem samego hibernate to po prostu robiłem mapowanie , tworzyłem sobie plik odpowiadający nazwie klasy np.Person.hbm.xml w main robiłem otwarcie sesji i metodę która zapisuje po prostu poprzez settery użytkownika do bazy jednak kompletnie nie wiem jak to połączyć z formularzem. I jeszcze jedno pytanie jak chce zrobić żeby zwykłe kliknięcie na jakiś przycisk przekierowało mnie na konkretną stronę to jak to zrobić(używać wgl submit czy buton)? np. mam taki plik html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<center> <input type="submit" value="Zaloguj jako admin" class="specialInput1" id="input11"></center>
<center> <input type="submit" value="Zaloguj jako gość" class="specialInput1" id="input12"></center>
<center> <input type="submit" value="Zarejestruj" class="specialInput1" id="input13"></center>
</body>
</html>
i chciałbym żeby kliknięcie w Zaloguj jako admin np. przekierowało mnie do logowania, a zarejestruj do rejestracji itp. Jak taką metodę napisać w kontrolerze?