IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Faire une recherche par date


Sujet :

JSF Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut Faire une recherche par date
    j'ai encore un petit problème, mais cette fois ci ça concerne une recherche par date.
    En fait dans bean j'ai la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void searchRow(@SuppressWarnings("unused")
    	ActionEvent evt) {
    		searchDAO = new DAO();
    		results= searchDAO.findByProperty("AcomMonitoringEventLog", "eventType","eventSource","eventSource","eventSource", getCurrentAcomMonitoringEventLog().getEventType(),getCurrentAcomMonitoringEventLog().getEventSource(),getCurrentAcomMonitoringEventLog().getEventSource(),getCurrentAcomMonitoringEventLog().getEventSource());
    		System.out.println("row number " + results.size());
    	}
    et dans mon jsf j'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    
    <f:view>
    <h:form>
    	<h:panelGrid border="0" columns="5" width="90%" style="background-color: Gray; height: 18%; width: 90%">
    
    		<h:outputText value="Start Date" styleClass="HEADING" style="width:200px"></h:outputText>
    		<h:inputText value = "#{search_1.currentAcomMonitoringEventLog.eventType}">		</h:inputText>
    		<h:outputText value="End Date" styleClass="HEADING" style="width:200px"></h:outputText>
    		<h:inputText value = "#{search_1.currentAcomMonitoringEventLog.eventSource}"></h:inputText>
    		<h:commandButton value="Search" actionListener= "#{search_1.searchRow}" style="width: 100%"></h:commandButton>
    		<h:outputText value="Start Time" styleClass="HEADING" style="width: 195px"></h:outputText>
    		<h:inputText value = "#{search_1.currentAcomMonitoringEventLog.eventSource}"></h:inputText>
    		<h:outputText value="End Time" styleClass="HEADING" style="width: 199px"></h:outputText>
    		<h:inputText value = "#{search_1.currentAcomMonitoringEventLog.eventSource}"></h:inputText>
    		<h:commandButton value="Export" style="width: 100%"></h:commandButton>
    
    	</h:panelGrid>
    	</h:form><br>
    	<br>
    	<h:panelGrid border="0" style="height: 20%; width: 90%">
    		
    	
    	<h:dataTable value="#{search_1.results}" var="res" headerClass="HEADING"
    		rowClasses="ROW" id="table" border="1" width="100%">
    		<h:column>
    			<f:facet name="header">
    				<h:outputText value="Date/Time" />
    			</f:facet>
    			<h:outputText value="#{res.eventDateTime}" />
    				
    			</h:column>
    
    		<h:column>
    			<f:facet name="header">
    				<h:outputText value="Command" />
    			</f:facet>
    			<h:outputText value="#{res.description}" />
    		</h:column>
    
    		<h:column>
    			<f:facet name="header">
    				<h:outputText value="Result of the command" />
    			</f:facet>
    			<h:outputText value="#{res.actionTaken}" />
    		</h:column>
    	</h:dataTable>
    	</h:panelGrid>
    </f:view>
    Le problème c'est que dès que je change ce qu'il ya en rouge par respectivement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getCurrentAcomMonitoringEventLog().getEventDateTime()
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <h:inputText value = "#{search_1.currentAcomMonitoringEventLog.eventDateTime}">
    j'ai une erreur au niveau de la date et ceci pour toutes les valeurs de type date ( sachant que eventDateTime est définie autant que date )

    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Quel type d'erreur au juste ?

  3. #3
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut
    voici l'erreur qui s'affiche dans la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    sourceId=j_id_jsp_1643876339_1:j_id_jsp_1643876339_4[severity=(ERROR 2), summary=(Erreur de conversion quand la valeur '' est commise pour le modéle 'null Converter'.), detail=(Erreur de conversion quand la valeur '' est commise pour le modéle 'null Converter' : Exception: {2}.)]
    avec la valeur ' ' est celle que j'ai introduite

  4. #4
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut
    est ce que quelequ'un a une idée sur ce que je pourrai faire, je suis vraiement bloqué

    Je ne sais pas s'il faut faire un convertDateTime et comment l'utiliser si c'est le cas.

  5. #5
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679

  6. #6
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut
    j'ai essayé de faire ce qy'il ya sur la FAQ, en effet je n'ai plus de message d'erreur dans ma console , mais le problème c'est qu'il n'arrive a trouver aucune donnée , meme si je suis sur que la date existe dans ma BD

  7. #7
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Ca me semble plus un problème du côté de tes DAOs que du côté JSF ....

    Justepour vérifier, dans l'action associée au bouton de recherche, ajoutes un System.out.println qui affiche la date saisie par l'utilisateur ....

  8. #8
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut
    En fait j'avais mal écris le format de la date " dd/MM/yyyy"
    Merci Beaucoup
    J'ai encore un petit souci, c'est que je dois chercher les evenements compris entre deux dates, sauf que pour mes inputtext g besoin de deux objets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    		<h:outputText value="Start Date" styleClass="HEADING" style="width:200px"></h:outputText>
    		<h:inputText value = "#{search_1.currentAcomMonitoringEventLog.eventDateTime}">
    <f:convertDateTime pattern="dd/MM/yyyy" /> 
    		</h:inputText>
    		<h:outputText value="End Date" styleClass="HEADING" style="width:200px"></h:outputText>
    		<h:inputText value = "#{search_1.currentAcomMonitoringEventLog1.eventDateTime}">
    <f:convertDateTime pattern="dd/MM/yyyy"/>
    </h:inputText>
    		<h:commandButton value="Search" actionListener= "#{search_1.searchRow}" style="width: 100%"></h:commandButton>
    l'objet en rouge et l'objet en bleu qui doivent tous deux avoir le meme attribut, le problème c 'est que le deuxième objet retourne un null et donc j'arrive pas a exécuter ma requete....

  9. #9
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Hum ... Juste pour info, là, derrière mon ecran, je n epeux pas savoir ce que sont ces search_1.currentAcomMonitoringEventLog.eventDateTime ... Donc, je ne peux pas t'aider la dessus

    Qui les définit ? Comment sont ils définis, etc ...

  10. #10
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut
    désolé
    donc d'abord serach_1 est le bean qui fait appel a mon DAO ou se trouve la fonction findbyproperty :
    cette fonction là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public List findByProperty(String table, String propertyName,
    			String propertyName2, String propertyName3,
    			Object value1, Object value2, Object value3, Object value4) {
    		try {
    			String queryString = "from " + table + " as model where model."
    					+ propertyName + " >= ?" + " and " + propertyName 
    					+ "  <= ? " + " and " + propertyName2 + "  like ?"
    					+ " and " + propertyName3 + "  like ?";
    			Query queryObject = getSession().createQuery(queryString);
    			queryObject.setParameter(0, value1).setParameter(1, value2)
    					.setParameter(2, value3).setParameter(3, value4);
    			return queryObject.list();
    		} catch (RuntimeException re) {
    			throw re;
    		}
    	}
    ensuite voici search_1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    package model;
    
    import java.util.ArrayList;
    import javax.faces.convert.DateTimeConverter;
    import java.util.List;
    import javax.faces.component.html.HtmlDataTable;
    import javax.faces.event.ActionEvent;
    
    @SuppressWarnings("unchecked")
    public final class Search_1 {
    
    	private AcomMonitoringEventLog currentAcomMonitoringEventLog = null;
    	private AcomMonitoringEventLog currentAcomMonitoringEventLog1 = null;
    	DAO searchDAO = new DAO();
    	private HtmlDataTable datable;
    
    	public Search_1() {
    		currentAcomMonitoringEventLog = new AcomMonitoringEventLog();
    	}
    
    	@SuppressWarnings("unchecked")
    	private List results = null;
    
    	@SuppressWarnings("unchecked")
    	public List getResults() {
    		// searchDAO = new DAO();
    		// results = searchDAO.findByProperty("AcomMonitoringEventLog",
    		// "eventType", "ERROR");
    		// System.out.println(results.size());
    		return results;
    	}
    
    	public AcomMonitoringEventLog getCurrentAcomMonitoringEventLog() {
    		return currentAcomMonitoringEventLog;
    	}
    
    	public void setCurrentAcomMonitoringEventLog(
    			AcomMonitoringEventLog currentAcomMonitoringEventLog) {
    		this.currentAcomMonitoringEventLog = currentAcomMonitoringEventLog;
    	}
    
    	@SuppressWarnings("unchecked")
    	public void searchRow(@SuppressWarnings("unused")
    	ActionEvent evt) {
    		searchDAO = new DAO();
    		results = searchDAO.findByProperty("AcomMonitoringEventLog",
    				"eventDateTime", "eventSource", "eventSource",
    				getCurrentAcomMonitoringEventLog().getEventDateTime(), 
    				"%"	+ getCurrentAcomMonitoringEventLog1().getEventDateTime,
    				"%"+ getCurrentAcomMonitoringEventLog().getEventSource(), 
    				"%"	+ getCurrentAcomMonitoringEventLog().getEventSource());
    		System.out.println(currentAcomMonitoringEventLog.getEventDateTime());
    		System.out.println("row number " + results.size());
    	}
    	@SuppressWarnings("unchecked")
    	public void setResults(List results) {
    		this.results = results;
    	}
    
    	public String action() {
    		System.out.println(currentAcomMonitoringEventLog.getEventType());
    		return null;
    	}
    
    	@SuppressWarnings("unchecked")
    	public HtmlDataTable getDatable() {
    		return datable;
    	}
    
    	public void setDatable(HtmlDataTable datable) {
    		this.datable = datable;
    	}
    
    	public AcomMonitoringEventLog getCurrentAcomMonitoringEventLog1() {
    		return currentAcomMonitoringEventLog1;
    	}
    
    	public void setCurrentAcomMonitoringEventLog1(
    			AcomMonitoringEventLog currentAcomMonitoringEventLog1) {
    		this.currentAcomMonitoringEventLog1 = currentAcomMonitoringEventLog1;
    	}
    
    }
    MErci enormement de me proposer votre aide

  11. #11
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut
    je suis toujours bloqué au meme niveau la valeur de mon input ne retient que la deuxième valeur saisie si je la met dans le meme objet et quand j'ai 2 objets le deuxième retourne un null

    Une idée??

  12. #12
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Points : 67
    Points
    67
    Par défaut
    j'ai reussi à résoudre le probléme de Date.
    pour le moment je passe cette étapes, parce que je devrais ajouter plutard dans la méme recherche une selection avec Time (donc j aurai une recherche par DateTime) sachant que la Date et le Time devraient etre saisie dans deux input different .

    mnt ce que je voudrais savoir c'est comment exporter la liste resultante ds CSV format

  13. #13
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour,
    Merci de ne pas poser plus d'une question par thread : Tu peux ouvrir un nouveau thread pour ce nouveau problème

    Ensuite, tu peux utiliser Jasper http://jaub.developpez.com/tutoriels/jsf/jasper-jsf, quoique le format CSV est tellement simple que tu peux l'exporter facilement toi même.

  14. #14
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Oui en effet, si ce n'est que pour exporter en CSV, il est peut être inutile d'installer une librairie pour ça !
    Il te suffit d'utiliser un StringBuffer (voire un StringBuilder) et de séparer toutes les valeurs d'un enregistrement par un ',' ou ';' et de faire un saut de ligne à chaque enregistrement... Rien de difficile quoi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Faire une recherche par la première lettre (ou chiffre) d'une liste
    Par Rowmanow dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/01/2011, 21h17
  2. [MySQL] Faire une recherche par DATE
    Par bullrot dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 14/10/2008, 14h38
  3. [MySQL] Faire une recherche dans un tableau créer par mysql_fetch_array avec in_array
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 12/11/2007, 15h13
  4. Faire une recherche par mot-clé
    Par Nelmo dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/06/2006, 16h56
  5. Réponses: 4
    Dernier message: 26/05/2006, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo