build.gradle
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-web')
providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
compile('mysql:mysql-connector-java')
}
Il est pratique d'emballer dans une session pour transporter les informations de connexion
@SessionScope
@Component
public class AccountModel {
private String id;
private String name;
}
@Controller
public class MainController {
@Autowired
private AccountModel accountModel;
/**
* Processus de connexion
* @param model
* @param id
* @param post
* @return
*/
@RequestMapping("login")
public String login(Model model,@RequestParam("id") String id,@RequestParam("pass") String pass) {
accountModel.setId(id);
// Vérification du mot de passe TODO
return "shop";
}
}
<form method="post" th:action="@{login}">
<input type="text" name="id" />
<input type="text" name="pass" />
<button> Connexion </ bouton>
</form>
Avec cela, vous pouvez le vérifier chaque fois que vous vous connectez pour la première fois. Si vous ne vérifiez pas et ne conservez pas les informations de session au moment de l'achat, vous pouvez passer à l'écran d'enregistrement des informations personnelles.
Voir ci-dessous pour les règles de dénomination des méthodes implémentées automatiquement dans SpringDataJPA [Spring Data JPA] Règles de dénomination pour les méthodes implémentées automatiquement
@Entity
@Table(name="item")
public class Item {
@Id
@GeneratedValue
private int id;
private String name;
private int price;
}
public interface ItemRepos extends JpaRepository<Item, Integer> {
/**
* select * from item where name like %{name}%
* @param name
* @return
*/
public List<Item> findByNameContains(String name);
}
@Controller
public class MainController {
@Autowired
private ItemRepos itemRepos;
/**
* Processus de recherche
* @param model
* @param name
* @return
*/
@RequestMapping("search")
public String search(Model model,@RequestParam("name") String name) {
List<Item> itemList = itemRepos.findByNameContains(name);
model.addAttribute("itemList", itemList);
return "shop";
}
}
<form method="post" th:action="@{search}">
<input type="text" name="name"/>
<button> Recherche </ bouton>
</form>
JpaRepository # save effectue la mise à jour si pk est dupliqué, et l'insère sinon.
/**
* processus d'inscription
* @param model
* @param name
* @param price
* @return
*/
@RequestMapping("submit")
public String submit(Model model,@RequestParam("name") String name,@RequestParam("price") String price) {
Item item = new Item();
item.setName(name);
item.setPrice(Integer.valueOf(price));
itemRepos.save(item);
return "shop";
}
Puisque nous supposons la formation cette fois, nous n'avons pas implémenté de parties détaillées, mais il y a de nombreux points à considérer tels que la vérification de la valeur d'entrée et la séparation de la couche de traitement.
Recommended Posts