model

Mattepuffo's logo
Usare i controller in Java Spring

Usare i controller in Java Spring

Dopo aver studicchiato JSF (Java Server Faces) ho deciso di buttarmi anche su Spring, un altro framework web per Java.

Prima di tutto, è altamento consigliato usare la Spring Tool Suite, ma essendo basata su Eclipse non mi piace per niente.

Quindi alla fine ho deciso di usare il mio caro Netbeans, che però ha un supporto meno vasto.

Quindi vediamo come giocherellare con in controller di Spring una volta che avete creato il progetto.

Il file web.xml, per questo esempio basico, può rimanere invariato.

Mattepuffo's logo
QML ListView da JSON

QML ListView da JSON

Oggi vediamo come riempire una ListView in QML prendendo i dati in formato JSON dal web.

Per prendere i dati useremo Javascript e AJAX.

Questa è una delle cose che mi piace di più di QML: usare Javascript in una app per desktop!

Prima di tutto vediamo il file main.qml, dove c'è tutta la parte grafica:

import QtQuick 2.0
import QtQuick.Controls 1.0
import "script.js" as Script

ApplicationWindow {
    id: mainWindow
    title: "App"
    visible: true
    width: 600
    height: 600

    Component.onCompleted: Script.load()

    ListModel { id: listModelJson }

    Rectangle {
        height: parent.height
        width: parent.width
        ListView {
            id: listViewJson
            x: 0
            y: 0
            width: 600
            height: 592
            delegate: Rectangle {
                width: parent.width
                height: 70
            }
            model: listModelJson
        }
    }
}

Come vedete tra gli import c'è anche il nostro file Javascript (che dopo andremo a creare).

Mattepuffo's logo
Riempire una JTable da XML

Riempire una JTable da XML

Abbiamo parlato varie volte di JTable, anche come riempirla da database o da JSON.

Oggi vediamo come riempirla da XML.

Partiamo da un file del genere:


<?xml version="1.0" encoding="UTF-8"?>
<clienti>
  <cliente>
    <ragione_sociale>CASA</ragione_sociale>
    <email>casa@casa.it</email>
  </cliente>
  <cliente>
    <ragione_sociale>UFFICIO</ragione_sociale>
    <email>uff@uff.it</email>
  </cliente>
</clienti>

Come vedete l'elemento principale si chiama clienti, e poi c'è un elemento per ogni cliente.

Ogni elemento cliente ha, a sua volta, un elemento ragione_sociale e un elemento email.

Mattepuffo's logo
Svuotare JTable

Svuotare JTable

JTable è un componente di Java Swing molto usato.

Anche se può sembrare strano, svuotare una JTable non richiede un singolo comando; o almeno quello che vi propongo è l'unic che mi ha funzionato.

Sarà, forse, dovuto al fatto che io uso un DefaultTableModel personalizzato (che vi posto per semplice chiarimento):

public class MyTableModel extends DefaultTableModel {

    public MyTableModel(Object[][] data, String[] col) {
        super(data, col);
    }

    @Override
    public boolean isCellEditable(int row, int column) {
        return false;
    }
}

Comunque vi propongo un metodo che permette di svuotare una JTable.

Mattepuffo's logo
Esportare una JList in Java

Esportare una JList in Java

JList è un componente SWING che rappresenta una serie di oggetti sotto forma di lista.

Qui avevo spiegato come caricare una JLlist da una file XML per esempio.

Oggi vediamo come esportarli in formato TXT.

Inoltre integreremo utto con il solit JFileChooser per decidere dove salvare il file.

Prima di tutto nel vostro JFrame preparate l'evento che poi richiamerà il JFC (ad esempio un menu o un bottone).

Poi preparate il JFC; tipo questo:

import java.io.File;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;

public class FileChooserTxt {

    private static File f = null;

    public static String salva() throws IOException {
        JFileChooser fc = new JFileChooser();
        fc.setDialogTitle("Save TXT");
        fc.setApproveButtonText("Save");
        fc.setApproveButtonToolTipText("Approve file");

        FileFilter txtFilter = new GenericFileFilter("File *.txt", "txt");
        fc.setFileFilter(txtFilter);

        int returnVal = fc.showSaveDialog(fc);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            f = fc.getSelectedFile();
            FileFilter selectedFilter = fc.getFileFilter();
            if (f.getName().indexOf('.') == -1) {
                f = new File(f.getPath() + ".txt");
            }
        }
        return f.toString();
    }
}

Qui ho messo un solo filtro perchè l'esportazione la faccio solo in TXT.

Mattepuffo's logo
Inviare email con CodeIgniter

Inviare email con CodeIgniter

CodeIgniter è uno dei framewrok PHP più utilizzati; io lo stesso su due progetti e mi ci trovo bene.

Ne ho già parlato in altri articoli, e oggi vediamo come sia semplice inviare email.

Supponiamo di voler inviare dopo che l'utente ha inviato un form; nel caso specifico l'utente dovrà inserire la propria email con la quale si è registrato in modo da potergli reinviare la password (che si è dimenticato)

<div id="login">
    <?php echo validation_errors('<p class="error">', '</p>'); ?>
    <?php echo form_open('pwdrecovery/dorecover'); ?>
    <dl>
        <dt><label for="cl_email">Email:</label></dt>
        <dd><input type="text" name="cl_email" value="<?php echo set_value('cl_email'); ?>" autofocus /></dd>
    </dl>
    <dl>
        <dd><input type="submit" value="Send" name="submit" /></dd>
    </dl>
</form>
</div>

Viene richiamata la funzione doRecover del controller PwdRecovery:

public function doRecover() {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('cl_email', 'Email', 'required|trim|valid_email');
        if ($this->form_validation->run() == FALSE) {
            $data = array();
            $data['title'] = 'Login';
            $this->load->view('header', $data);
            $this->load->view('pwd_recovery_view', $data);
            $this->load->view('footer');
        } else {
            $this->load->model('email_model');
            $this->email_model->sendEmail($this->input->post('cl_email'), 'Password', 'La tua nuova password è NUOVA_PASSWORD');
            redirect('home');
        }
    }

Carico la libreria form_validation per validare il form (è obbligatorio mettere una email ben formata).