Implementiamo Bootstrap in Java EE

Implementiamo Bootstrap in Java EE: Bootstrap è uno dei più famosi ed utilizzati framework CSS e Javascript, esso ci mette a disposizione gli strumenti per realizzare siti e applicazioni web. In questa lezione implementerò Bootstrap all’interno di un’applicazione Java EE. Il procedimento è comunque ripetibile in maniera analoga su un sito PHP.

Vantaggi di Bootstrap

Bootstrap è stato rilasciato da Twitter nel 2011 come open source, la sua repository GitHub è stata una delle più apprezzate, tantissimi sviluppatori hanno contribuito alla crescita di questo strumento semplice e potente, arrivato oggi alla versione 4.

Uno dei vantaggi di cui non possiamo assolutamente fare a meno il responsive web design ovvero che il layout delle pagine si adatta dinamicamente in base al device dell’utente: tablet, PC, smartphone.

Bootstrap oltre a fornirci un insieme di classi CSS facilmente utilizzabili ci mette a disposizione snippet di codice che rappresentano vari oggetti nel D.O.M. come navbar, modal, carousel etc.

documentazione del componente Alerts di Bootstrap
documentazione del componente Alerts di Bootstrap

Nello screenshot qui in alto puoi vedere come è organizzata la documentazione, è davvero intuitiva e riuscirai ad utilizzare i componenti in modo molto veloce.

Sono presenti anche classi helper, strumenti per l’accessibilità e molto altro ma preferisco mostrarteli in azione attraverso le varie lezioni che pubblicherò qui su Space Coding. Ora passiamo all’azione!

Implementare Bootstrap da CDN

Innanzitutto se non sai cosa è una CDN te lo spiego subito, CDN ovvero Content Delivery Network è semplicemente una rete per la consegna di contenuti ovvero un insieme di server distribuiti che collaborano per la trasmissione rapida di contenuti.

Utilizzando questa metodologia possiamo implementare Bootstrap semplicemente aggiungendo all’interno delle nostre pagine JSP pochissimo codice. Di seguito la pagina index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap demo</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
  </head>
  <body>
	  <nav class="navbar-dark bg-primary">
		  <div class="container-fluid">
		    <a class="navbar-brand" href="#">
		      Navbar
		    </a>
		  </div>
	  </nav>
    <h1>Hello, world!</h1>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" crossorigin="anonymous"></script>
  </body>
</html>

Ho già aggiunto un componente ovvero la Navbar , puoi già notare che il nome delle classi CSS è molto semplice ed intuitivo, la documentazione inoltre fornisce tantissimi templates per ogni componente, li puoi copiare ed incollare e con qualche modifica riuscirai a progettare il tuo sito molto velocemente.

documentazione del componente Navbar di Bootstrap
documentazione del componente Navbar di Bootstrap

In pochissimi minuti abbiamo implementato Bootstrap nella nostra pagina JSP e abbiamo aggiunto un componente

output del codice della pagina index.jsp
output del codice della pagina index.jsp

Prima di passare al setup della pagina con i vari componenti vediamo come implementare Bootstrap sul nostro server

Implementare Bootstrap sul server

Per avere sul nostro server il framework dobbiamo scaricarlo dal sito ufficiale di Bootstrap : Download

Scarichiamo la versione compilata ready-to-use

Download della versione Compiled di Bootstrap
Download della versione Compiled di Bootstrap

Dopo il download e l’estrazione dall’archivio zip ci ritroveremo due cartelle css e js, le copiamo all’interno della cartella webapp del nostro Dynamic Web Project

copy delle cartelle css e js in webapp
copy delle cartelle css e js in webapp

Se Eclipse ti dà un errore copia una cartella alla volta.

Ora dobbiamo modificare il codice specificando che sono risorse interne

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap demo</title>
    <link href="css/bootstrap.min.css" rel="stylesheet"/>
  </head>
  <body>
	  <nav class="navbar-dark bg-primary">
		  <div class="container-fluid">
		    <a class="navbar-brand" href="#">
		      Navbar
		    </a>
		  </div>
	  </nav>
    <h1>Hello, world!</h1>
    <script src="js/bootstrap.bundle.min.js"></script>
  </body>
</html>

Ispezioniamo la pagina per assicurarci che non ci siano dipendenze mancanti e quindi possibili futuri bug nella nostra applicazione web

ispezione della pagina index.jsp con Strumenti Sviluppo di Safari
ispezione della pagina index.jsp con Strumenti Sviluppo di Safari

Non ci sono errori così possiamo procedere con la nostra pagina vera e propria nella sua prima versione

Setup della pagina con Bootstrap

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>To Do app</title>
    <link href="css/bootstrap.min.css" rel="stylesheet"/>
  </head>
  <body>
	  <nav class="navbar bg-light">
		  <div class="container-fluid">
		    <a class="navbar-brand">ToDo UP :-) </a>
		    <form class="d-flex" role="search">
				<input class="form-control me-2" type="search" placeholder="Search Tasks" aria-label="Search">
		      	<button class="btn btn-outline-success" type="submit">Search</button>
		    </form>
		  </div>
		</nav>
	 
    <div class="container-lg">
    	<div class="mb-3">
  			<label for="exampleFormControlInput1" class="form-label">Nome Progetto</label>
  			<input type="text" class="form-control" id="exampleFormControlInput1" placeholder="Scrivere articolo Blog">
		</div>
    	<div class="form-check">
  			<input class="form-check-input" type="checkbox" value="" id="flexCheckDefault">
  			<label class="form-check-label" for="flexCheckDefault">
    		Primo Task
  			</label>
		</div>
		<div class="form-check">
  			<input class="form-check-input" type="checkbox" value="" id="flexCheckChecked" checked>
  			<label class="form-check-label" for="flexCheckChecked">
  			Secondo Task
  			</label>
		</div>
    </div>
    <div class="d-grid gap-2">
  		<button class="btn btn-primary" type="button">Salva</button>
  		<button class="btn btn-danger" type="button">Reset</button>
	</div>
    <script src="js/bootstrap.bundle.min.js"></script>
  </body>
</html>
output della pagina index.jsp con alcuni componenti Bootstrap
output della pagina index.jsp con alcuni componenti Bootstrap

Bootstrap examples

Lezioni sul linguaggio Java

Pubblicato da Carlo Contardi

Carlo Contardi, docente di informatica e sviluppatore Full Stack, condivide la sua passione per la programmazione e l’informatica attraverso il suo blog Space Coding. Offre preziosi consigli e soluzioni pratiche a chi vuole imparare a programmare o migliorare le proprie abilità. 🚀👨‍💻

Translate »