11 octobre

La semaine avant la fête est toujours un peu stressant. Par conséquent, il n'y a que deux liens:

Entrée en Spring Roo RC2
Qui veut profiter de Grails ou de ne pas recevoir un générateur de code pour les applications Web de printemps Roo basés sur Java et Spring.
WordPress par Lucene
La bibliothèque conserve un flux de recherche libre plugin dans WordPress.

gklinkmann écrit par \ \ tags: , , , ,

3 octobre

Tout au long de la semaine, il ya plusieurs articles intéressants sur le net pour moi, pour moi un signet sur ​​delicious.com valeur. Une partie de l'élan pour un poste dans mon propre blog, mais la plupart des connaissances accumulées (nous sommes tous des chasseurs et cueilleurs), qui peut être considéré.

Cette semaine nous avons fait l'article suivant dans ma liste de liens:

Inspiration: Le meilleur CSS et galeries de design
Une bonne mise en page est tout aussi important que la technologie derrière elle. Voici quelques exemples.
ImageFlow Finn Rudolph
Une mise en œuvre très gentil de Cover Flow d'Apple pour le Web.
10 résultats utiles et lignes directrices de l'utilisabilité
Smashing Magazine a publié des résultats de son étude sur l'utilisabilité des sites web - très intéressant.
Utilisation de jQuery et CSS graphiques élégants PHP
Jusqu'à présent, j'ai toujours créé sous forme de cartes d'image à la volée. La solution avec PHP et jQuery est également une approche intéressante.
Navigateur avec PHP télécommande
Nils Langner de phphatesme blogue explique comment vous pouvez avec le sélénium et le PHP télécommande sur le navigateur. Tests fonctionnels automatisés sont très longues sur la liste des sujets pour mon blog. Il est temps pour un poste.
Grails 1.2: Printemps 3, Uri réécriture et plus
Très bon article sur la prochaine Grails version 1.2.

gklinkmann écrit par \ \ tags: , , , , , ,

1 octobre
spring-icon

Depuis hier, est la première version candidate de Spring Framework à télécharger prête.
Dans cette première version de la JSR 303 (Bean Validation) et de la JSR-330 (Dependency Injection en Java) sont pris en charge. Surtout si la mise en œuvre de la validation Bean J'étais curieux, parce que est monté sur ses haricots avec des contraintes d'annotation.

Dans une application web basée sur Spring pourrait utiliser le Bean Validation comme suit.

Première annoter le bean

  Une
 2
 3
 4
 5
 6
 7
  { Événement public class {
    int id;

    @ NotNull
    1 ,max = 50 ) @ Taille (min = 1, = 50 max)
    String description;
 ... 

(Inclus dans la validation-api-1.0.CR3.jar) par l'annotation deux indique que la valeur de l'attribut description peut pas être zéro et un minimum de 1 caractère, mais un maximum de 50 caractères contiennent.

Deuxième valider le haricot dans le contrôleur

Pour valider, vous avez besoin d'un mise en œuvre de la JSR-303, tel que le validateur Hibernate (actuellement en version 4.0.0 RC 1). Il a, cependant, beaucoup de dépendances sur Maven et doit être compilé pour.
Une fois que vous surmonter cet obstacle (et a intégré le fichier jar résultant dans son projet), vous avez encore besoin des bibliothèques suivantes pour produire aucune erreur d'exécution:

  • validation-api-1.0.CR3.jar
  • SLF4J-api-1.5.6.jar
  • SLF4J-1.5.6.jar-log4j12
  • log4j-1.2.14.jar
  • commons-logging-1.0.4.jar (vous ne devez pas nécessairement, mais a été utilisé dans l'exemple)

ce ne sont que de toute façon avant le dépôt local de Maven.

  Une
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
  "/event/save" , method = RequestMethod. POST ) @ RequestMapping (value = "/ événement / enregistrer la« méthode méthode de la demande =. POST)
 save ( Event event,BindingResult bindingResult, Model model ) { public String sauvegarde (cas de l'événement, la reliure, résultat Résultat de liaison, le modèle Model) {
    LocalValidatorFactoryBean ( ) ; LocalValidatorFactoryBean LocalValidatorFactoryBean validateur = new ();
    HibernateValidationProvider. class ) ; setProviderClass validateur (HibernateValidationProvider. classe).;
    ; validateur afterPropertiesSet ().;

    event,bindingResult ) ; . Validateur de valider (la liaison d'événements, résultat);

    ! bindingResult. hasErrors ( ) ) { if (résultat contraignant. hasErrors ()) {
       / / Enregistrer ...
       "message" , "update successfully" ) ; AddChild modèle ("message", "mettre à jour avec succès").;         
    { Else {}
       FieldError e : bindingResult. getFieldErrors ( ) ) { pour (E Erreur de terrain:. getFieldErrors résultat contraignantes ()) {
          e. getField ( ) + ": " + e. getDefaultMessage ( ) ) ; . Journal warn (e getField () + "" + e getDefaultMessage ());            
       }
       "errors" , bindingResult. getFieldErrors ( ) ) ; AddChild modèle ("erreurs" résultat contraignant getFieldErrors ().).;
    }
    "event" , event ) ; AddChild modèle («événement», un événement).;

    ; return "mise à jour";
 } 

En lignes 3-5 indique l'instance Hibernate Validator est créée. Dans la ligne 7, est ensuite validé à la fin. Que rencontrées dans l'erreur de validation peut être la méthode hasErrors() chèque (ligne 9). L'accès à toutes les erreurs (par exemple pour l'exploitation forestière) est obtenu en utilisant la méthode getFieldErrors() (lignes 13-15).
A la ligne 16 est passé à l'erreur de la vue.

Troisième De sortie de l'erreur dans la vue

Pour la sortie de l'erreur, la Bibliothèque JSP Tag standard utilisé.

  Une
 2
 3
 4
 5
 6
 7
 8
  <p> $ {message} </ p>
 <c:if test="${!empty errors}">
    <ul>
    <c:forEach var="error" items="${errors}">
       <li> error.field $ {}: $ {} error.defaultMessage </ li>         
    </ C: foreach>
    </ Ul>
 </ C: if> 

gklinkmann écrit par \ \ tags: , ,

23 septembre

Ce n'est pas que il ya bien longtemps que Javascript a été diabolisé à cause de sa lignée et l'analyse des préoccupations de sécurité du navigateur d'un grand nombre.
Fabriqué uniquement avec l'Ajax (Asynchronous JavaScript and XML), et donc le cadre qui en résulte (le navigateur Inkompatibilitäte interception) est le favori spécial et "must have" pour le développement web.

Mais entre les cadres, il ya quelques différences importantes. Cela est vrai non seulement pour la fonctionnalité, mais aussi pour la taille et la vitesse d'exécution.

Matthias Schütz et son Ajax Framework Matrice essaie de combiner les propriétés des frameworks Ajax dans une revue afin de les comparer à la meilleure. Qu'il a réussi non seulement bonne, mais aussi à regarder de plus belle.
Dans la matrice, et les liens vers le cadre, sa documentation et des exemples sont inclus.

Conclusion:
La matrice facilite la comparaison entre la réalité framework Ajax. On ne pas, toutefois, la matrice.
Une décision pour l'un des cadres que vous avez à faire, malheureusement, encore lui-même, seulement la façon dont il est pris en charge.

ajax framework matrix

gklinkmann écrit par \ \ tags: , , , , ,

21 janvier

grails_hosting

Grails à déployer des applications sur l'Internet n'est pas facile. Pas tout le monde doit avoir un serveur racine virtuelle ou un serveur d'applications Java à là (comme Tomcat ou Jetty) de l'exécution.

Fournisseur pour héberger des applications PHP, il ya treize à la douzaine. Si vous souhaitez obtenir des applications hébergées Java, la réduction du nombre de candidats potentiels déjà drastiquement. Si vous souhaitez ensuite déployer des applications Grails et même le meilleur encore libre, vous pouvez compter les fournisseurs qui offrent ce, sur une seule main.

Une liste des fournisseurs, où vous pouvez déployer des applications Grails sera maintenu dans la documentation de Grails.

Les trois fournisseurs qui offrent actuellement un essai gratuit ou développeur de compte, sont les suivants:

  • grails_hosting_eatj
  • grails_hosting_javaprovider
  • grails_hosting_morph

Tout en offrant les deux premiers d'un compte d'essai gratuit, il ya à la Pace Morph développeurs des applications d'un compte développeur gratuit.
Mon peu d'application Grails Grum est également apps morph et il était étonnamment facile de les déployer là-bas.

Fondamentalement, vous devez morph applications Pace à choisir entre une base de données MySQL et PostgreSQL. Jetty comme un serveur d'application est utilisée.
Même avec l'enregistrement, la base de données est créé et configuré Jetty. La seule chose que vous n'avez même pas besoin de la configuration de base de données dans le fichier et entrez DataSources.groovy l'archive Web (créé avec Grails) a été fourni par la bibliothèque Java, ou le télécharger sur morph les applications tâche Ant. Fini.

Dans ce compte développeur libre, la demande doit cependant être redéployés dans les 31 jours. Sans cela, l'application est mis hors ligne, et après encore 31 jours, l'espace Web publié.

Mise à jour:
Morph Apps Pace offre compte développeur gratuit pour le moment, malheureusement, ne sont plus sur. Donc, ce que ma petite application n'est plus dans Morph Grum Pace est hébergé applications. Je vais vous regarder le Google App Engine. Mais sans doute quelques changements mineurs peuvent être nécessaires (par exemple au lieu de JPA Hibernate pour la persistance). Lorsque vient le temps, je vais vous décrire mon expérience bien sûr ici dans mon blog.

Ressources:
Liste des fournisseurs pour les applications Grails d'hébergement
Grum à Morph Apps Pace

gklinkmann écrit par \ \ tags: , des , les , ,