Esempio di navigazione di una tabella

Forum relativo ai framework per l'utilizzo della tecnologia JSP

Esempio di navigazione di una tabella

Messaggioda alesslud » mar lug 19, 2011 2:38 pm

Vi proponiamo un esempio di navigazione di una tabella: l'esempio riportato è stato testato su Eclipse Helios e su JBoss 5.1.
La JVM usata è la 1.6_22.
Allegati
tablenavigation.zip
(20.01 KiB) Scaricato 337 volte
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

index.jsp

Messaggioda alesslud » mar lug 19, 2011 2:39 pm

<html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<link href="styles.css" rel="stylesheet" type="text/css" />
<f:view>
<head>
<f:loadBundle basename="messages" var="msgs" />
<title><h:outputText value="#{msgs.windowTitle}" /></title>
</head>

<body>
<h:outputText value="#{msgs.pageTitle}" />
<p><h:form>
<center><h:dataTable value="#{tableData.namesAsList}"
var="name" columnClasses="custid,name">


<h:column>
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{name.last}" />
<f:verbatim>,</f:verbatim>
</h:column>


<h:column>
<f:facet name="header">
<h:outputText value="Cognome" />
</f:facet>
<h:outputText value="#{name.first}" />
</h:column>
</h:dataTable></center>
<center>
<div class="barraNavigazione"><h:outputText
value="#{tableData.contatore}" /> <br />
<h:commandButton styleClass="button"
value=" |< "






action="#{tableData.navigateFirst}">
</h:commandButton> <h:commandButton styleClass="button"
value=" < "





action="#{tableData.navigatePrev}">
</h:commandButton> <h:commandButton styleClass="button" value=" > "
action="#{tableData.navigateNext}">
</h:commandButton> <h:commandButton styleClass="button" value=" >| "
action="#{tableData.navigateLast}">
</h:commandButton></div>
</center>
</h:form>
</body>
</f:view>
</html>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

styles.css

Messaggioda alesslud » mar lug 19, 2011 2:39 pm

.customers {
border: thin solid black;
}
.customersHeader {
text-align: center;
font-style: italic;
color: Snow;
background: Teal;
}
.customersFooter {
font-size: 0.75em;
text-align: center;
background: PowderBlue;
}
.delete {
text-align: center;
color: Black;
background: Red;
}
.custid {
height: 25px;
text-align: center;
background: MediumTurquoise;
}
.name {
text-align: left;
background: PowderBlue;
}
.firstName {
width: 6em;
text-align: left;
color: Black;
background: MediumTurquoise;
}
.age {
width: 3em;
text-align: center;
color: Black;
background: PowderBlue;
}
.sex {
width: 3em;
text-align: center;
color: Black;
background: MediumTurquoise;
}
.city {
width: 9em;
text-align: center;
color: Black;
background: PowderBlue;
}
.state {
width: 3em;
text-align: center;
color: Black;
background: MediumTurquoise;
}
.zip {
width: 6em;
text-align: center;
background: PowderBlue;
}
.evenRow {
background: PowderBlue;
}
.oddRow {
background: MediumTurquoise;
text-style: italic;
}
.pageLink {
font-size: 0.75em;
}
.editableControl {
text-align:Left;
}
.controlPanel {
text-align:left;
}
.page {
text-align:left;
}
.bulbImage {
border-width: 0px;
}
.emphasis {
font-size: 1.35em;
font-style: italic;
}
.value {
font-style: italic;
}
.controlLeft {
width: 45px;
vertical-align: top;
text-align:left;
}
.controlMiddle {
width: 50px;
vertical-align: top;
text-align:left;
}
.controlRight {
width: 40px;
vertical-align: top;
text-align:left;
}
.pageLinks {
border: thin solid Black;
background: PowderBlue;
}
.barraNavigazione {
position: absolute;
bottom: 10%;
width: 99%;
left: 0px;
}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

index.html

Messaggioda alesslud » mar lug 19, 2011 2:39 pm

.customers {
border: thin solid black;
}
.customersHeader {
text-align: center;
font-style: italic;
color: Snow;
background: Teal;
}
.customersFooter {
font-size: 0.75em;
text-align: center;
background: PowderBlue;
}
.delete {
text-align: center;
color: Black;
background: Red;
}
.custid {
height: 25px;
text-align: center;
background: MediumTurquoise;
}
.name {
text-align: left;
background: PowderBlue;
}
.firstName {
width: 6em;
text-align: left;
color: Black;
background: MediumTurquoise;
}
.age {
width: 3em;
text-align: center;
color: Black;
background: PowderBlue;
}
.sex {
width: 3em;
text-align: center;
color: Black;
background: MediumTurquoise;
}
.city {
width: 9em;
text-align: center;
color: Black;
background: PowderBlue;
}
.state {
width: 3em;
text-align: center;
color: Black;
background: MediumTurquoise;
}
.zip {
width: 6em;
text-align: center;
background: PowderBlue;
}
.evenRow {
background: PowderBlue;
}
.oddRow {
background: MediumTurquoise;
text-style: italic;
}
.pageLink {
font-size: 0.75em;
}
.editableControl {
text-align:Left;
}
.controlPanel {
text-align:left;
}
.page {
text-align:left;
}
.bulbImage {
border-width: 0px;
}
.emphasis {
font-size: 1.35em;
font-style: italic;
}
.value {
font-style: italic;
}
.controlLeft {
width: 45px;
vertical-align: top;
text-align:left;
}
.controlMiddle {
width: 50px;
vertical-align: top;
text-align:left;
}
.controlRight {
width: 40px;
vertical-align: top;
text-align:left;
}
.pageLinks {
border: thin solid Black;
background: PowderBlue;
}
.barraNavigazione {
position: absolute;
bottom: 10%;
width: 99%;
left: 0px;
}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

faces-config.xml

Messaggioda alesslud » mar lug 19, 2011 2:40 pm

<?xml version="1.0"?>

<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">

<faces-config>
<managed-bean>
<managed-bean-name>tableData</managed-bean-name>
<managed-bean-class>com.aquilasiti.TableData</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

web.xml

Messaggioda alesslud » mar lug 19, 2011 2:40 pm

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

messages.properties

Messaggioda alesslud » mar lug 19, 2011 2:41 pm

#Il seguente file deve essere memorizzato nella cartella dei sorgenti dell'applicazione:
windowTitle=Un DataTable di esempio
pageTitle=Lista di nomi:
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

TableData.java

Messaggioda alesslud » mar lug 19, 2011 2:42 pm

package com.aquilasiti;

import java.util.ArrayList;
import java.util.List;

public class TableData {

private final Integer numeroDocumentiPerPagina = Costanti.numeroRighe;
private Integer numeroDocumentiPerPaginaCalcolati = Costanti.numeroRighe;
private Integer paginaCorrente = 1;
private Integer numeroDocumentiVisti;
private Integer pagineTotali;
private Integer counter = 0;
private String contatore;

public String getContatore() {
return contatore;
}

public void setContatore(String contatore) {
this.contatore = contatore;
}

private static final Name[] simpleNames = new Name[] {
new Name("Alessandro", "Ludovici"), new Name("Pippo", "Carluccio"),
new Name("Giorgino", "Giorgetto"), new Name("Picchio", "Forte"),
new Name("Vendo", "Patate"), new Name("Ale", "Ludo"),
new Name("Pippero", "Carluccero"),
new Name("Giorgina", "Giorgetta"), new Name("La Piglio", "Bene"),
new Name("La Piglio", "Male"), new Name("Guido", "Maluccio"),
new Name("Guido", "Peggio"), new Name("Di Guido", "Male"),
new Name("Di Guido", "Per Strada"),
new Name("Vendo", "Patate arrosto") };

public Name[] getSimpleNames() {
return simpleNames;
}

public List<Name> getNamesAsList() {
if (numeroDocumentiVisti == null) {
numeroDocumentiVisti = 1;
}
List<Name> name = new ArrayList<Name>();
List<Name> nameView = new ArrayList<Name>();
Name[] names = this.getSimpleNames();
for (Name i : names) {
name.add(i);
}
for (int numeroDocumentiVisti = counter; numeroDocumentiVisti < numeroDocumentiPerPaginaCalcolati
&& numeroDocumentiVisti < name.size(); numeroDocumentiVisti++) {
nameView.add((Name) name.get(numeroDocumentiVisti));
}
Double sizeDocumenti = new Double(name.size());
Double numDocPagina = new Double(numeroDocumentiPerPaginaCalcolati);
Double pagine = sizeDocumenti / numDocPagina;
Double arrotondato = (Double) Math.ceil(pagine);
if (pagineTotali == null)
pagineTotali = arrotondato.intValue();
contatore = "Pagina " + paginaCorrente + " di " + pagineTotali + " ("
+ name.size() + " documenti trovati)";
return nameView;
}

public String navigateNext() {
if (paginaCorrente < pagineTotali) {
paginaCorrente++;
counter += numeroDocumentiPerPagina;
numeroDocumentiPerPaginaCalcolati += numeroDocumentiPerPagina;
}
return "visualizzaRimborsi";
}

public String navigatePrev() {
if (paginaCorrente > 1) {
paginaCorrente--;
counter -= numeroDocumentiPerPagina;
numeroDocumentiPerPaginaCalcolati -= numeroDocumentiPerPagina;
}
return "visualizzaRimborsi";
}

public String navigateFirst() {
paginaCorrente = 1;
counter = 0;
numeroDocumentiPerPaginaCalcolati = numeroDocumentiPerPagina;
return "visualizzaRimborsi";
}

public String navigateLast() {
paginaCorrente = pagineTotali;
numeroDocumentiPerPaginaCalcolati = numeroDocumentiPerPagina
* pagineTotali;
counter = numeroDocumentiPerPaginaCalcolati - numeroDocumentiPerPagina;
return "visualizzaRimborsi";
}
}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Name.java

Messaggioda alesslud » mar lug 19, 2011 2:43 pm

package com.aquilasiti;

public class Name {
private String first;
private String last;

public Name(String first, String last) {
this.first = first;
this.last = last;
}

public void setFirst(String newValue) { first = newValue; }
public String getFirst() { return first; }

public void setLast(String newValue) { last = newValue; }
public String getLast() { return last; }
}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Costanti.java

Messaggioda alesslud » mar lug 19, 2011 2:43 pm

package com.aquilasiti;

public class Costanti {
public static final int numeroRighe = 8;
}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am


Torna a JSF e Struts

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron