Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Struts 2
  3. Développement additionnel
Extrait - Struts 2 Développez votre application web moderne avec Java
Extraits du livre
Struts 2 Développez votre application web moderne avec Java Revenir à la page d'achat du livre

Développement additionnel

Introduction

Il est possible de télécharger depuis la page Informations générales les sources de l’application, le script SQL permettant de créer la base de données catalog, les fichiers image ainsi qu’un jeu de données permettant d’insérer des données dans les différentes tables de la base de données.

La base de données SQL

Voici ci-dessous le contenu du script SQL permettant de créer toutes les tables nécessaires à l’application Devis Pro BTP ainsi que l’initialisation de données :

/************************************************************************/ 
/********* Script de création SQL de la base de données catalog *********/ 
/************************************************************************/ 
 
 
/******************* pour voir la liste des tables \d *******************/ 
 
/** Pour se connecter en ligne de commande sous linux sudo -i -u postgres **/ 
/** psql devisprobtp **/ 
/** le type serial gère l'auto-incrément en postgresql */ 
 
 
create user admin WITH PASSWORD 'devisprobtp'; 
create database devisprobtp; 
GRANT ALL PRIVILEGES ON DATABASE devisprobtp to admin; 
\q 
psql devisprobtp 
 
/************************************************************************/ 
 
/* Table Artisan */ 
create table artisan( 
    artisanID serial PRIMARY KEY not null, 
    nom varchar(60), 
    prenom varchar(60), 
    adresse varchar(100), 
    telephone varchar(10), 
    email varchar(100), 
    siret varchar(14), 
    profil varchar(60), 
    mention varchar(100), 
    encryptedMdp varchar(20) 
); 
 
insert into artisan(nom, prenom, adresse, telephone, email,  
siret, profil, mention, encryptedMdp) values('CHARPENTIER',  
'Marc', '16 rue des glycines - 31200 Toulouse', '0531265623',  
'marc.charpentier@gmail.com', '12564823'...

Front

1. Le menu horizontal

a. Fichier header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"  
pageEncoding="UTF-8"%> 
<html> 
<head> 
 
<link rel="stylesheet" href="css/stylesheet.css" /> 
<link rel="stylesheet" type="text/css" href="css/redmond/ 
jquery-ui-1.10.1.custom.min.css"> 
<script language="javascript" type="text/javascript"  
src="js/jquery/jquery-1.9.1.js"></script> 
<script language="javascript" type="text/javascript"  
src="js/jquery/jquery-ui-1.10.1.custom.min.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/ 
1.7.2/jquery.min.js"></script> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="js/hamburger.js"></script> 
<title>Devis Pro BTP</title> 
 
<script> 
    $(document).ready(function() { 
          if (typeof sessionStorage != 'undefined') { 
                 if ('tab' in sessionStorage) { 
                       $('ul li').removeClass('active'); 
                       var id = "#" + sessionStorage['tab']; 
                       if...

Back

1. index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Connection</title> 
<link rel="stylesheet" href="./css/login.css" /> 
<meta name="viewport" content="width=device-width, 
initial-scale=1"> 
<link rel="stylesheet"  
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/ 
4.7.0/css/font-awesome.min.css"> 
</head> 
<body> 
<%@taglib uri="/struts-tags" prefix="s" %> 
 
 <div class="container"> 
  <form method="post" action="account"> 
    <!-- div class="row"--> 
 
<div class="maindiv"> 
 
      <div class="col1"> 
         <h2 fontcolor="white"> Devis Pro BTP</h2> 
             <div class="liste"> 
                       <ul > 
                                 <li><h4> Devis faciles</h4></li> 
                                 <li><h4>...

Service REST

1. DevisController.java

package com.apidevispro.rest; 
 
import org.apache.struts2.rest.DefaultHttpHeaders; 
import org.apache.struts2.rest.HttpHeaders; 
 
import com.apidevispro.model.DevisComplet; 
import com.apidevispro.repository.ConnectionBDPostgreSQL; 
import com.apidevispro.repository.DevisCompletDAO; 
import com.opensymphony.xwork2.ModelDriven; 
 
public class DevisController implements ModelDriven<Object> { 
     
    public DevisComplet devisComplet = new DevisComplet(); 
    private int id; 
    private Object devisComplets; 
    private DevisCompletDAO repository = new  
DevisCompletDAO(ConnectionBDPostgreSQL.getInstance()); 
 
    // GET  /v1/clients 
    public HttpHeaders index() { 
          devisComplets = repository.findAll(); 
          System.out.println("GET \t /devis"); 
          return new DefaultHttpHeaders("index").withStatus(200); 
    } 
 
    // GET  /api/clients/1 
    public HttpHeaders show() { 
          devisComplets = repository.findById(getId()); 
          System.out.println("GET \t /devis/{id}"); 
          return new DefaultHttpHeaders("show").withStatus(200); 
    } 
 
    //creation 
    // POST    /v1/devis ...