2010-01-29 11 views
0

J'ai une application web créée avec JSF et Tobago. L'utilisateur tape une date dans une feuille et clique sur un bouton (le tout dans une seule ligne). Maintenant, ma classe Java vérifie si les données sont correctes ou non. Au cas où il y aurait des problèmes, je voudrais montrer quelque chose comme une boîte de message contenant l'erreur.Comment afficher un message côté client avec Java JSF/Tobago?

Je ne peux pas utiliser quelque chose comme JDialog, car cela n'arriverait que du côté serveur. Chaque utilisateur, indépendamment de son emplacement, doit recevoir le message. J'ai pensé à placer l'information d'erreur dans une banque de données et avoir mon jsp montrer le message après rechargement. Mais comment puis-je y parvenir? Y at-il quelque chose comme une étiquette qui peut être utilisée pour cela? Ou puis-je utiliser la facette "confirmation" pour cela? Mais comment pourrais-je commencer sans que l'utilisateur fasse quelque chose?

Merci d'avance!

+0

est richfaces autorisée? – Bozho

+0

Êtes-vous familier avec 'h: message' /' h: messages'? Ou voulez-vous vraiment, vraiment un dialogue/alerte? – BalusC

+0

Bozho: Actuellement, nous n'utilisons pas Richfaces, mais si elle peut fournir une solution, il pourrait être un point à discuter;) BalusC: Si j'ai raison h: le message est d'avoir quelque chose comme un petit point rouge et une erreur description à côté du champ validé, correct? Cas vrai, il ne me convient pas puisque les champs à valider sont dans une feuille. Comment cela devrait-il fonctionner? Et oui, ... je voudrais vraiment, vraiment avoir quelque chose surgir pour attirer l'attention des utilisateurs;) – Marcus

Répondre

0
<rich:modalPanel id="messagePanel"> 
    <h:outputText value="#{yourValue}" /> 
</rich:modalPanel> 

(voir le richfaces demo app pour savoir comment ajouter plus de fonctionnalités au panneau modal)

Ensuite, au sein de votre « feuille »:

<a4j:support action="#{bean.yourValidationAction}" 
    event="onclick" 
    oncomplete="if(#{facesContext.maximumSeverity != null}) 
    {#{rich:component('messagePanel')}.show()}" /> 

cette affiche un message si vous ajoutez un visage Message d'erreur.

(ont à l'esprit que l'attribut event peut être l'un des attributs sur * (événements) du contrôle, où le <a4j:support> est imbriqué)

+0

Hm, c'est une bonne idée et l'application démo montre que ce serait exactement ce dont j'ai besoin, mais j'ai oublié le problème du rendu ... Tobago ne supporte pas les différents rendus:/Il semble que je doive utiliser des boîtes d'alerte et des champs cachés ... – Marcus

+0

vous n'avez pas besoin de moteurs de rendu différents. Le reRender indique simplement les composants qu'il doit 'recharger' – Bozho

+0

"JSF ne supporte qu'un renderkit (renderkitId) par page (f: view) Parce que Tobago possède son propre rendu, vous ne pouvez pas utiliser de composants non-Tobago qui ont besoin d'un moteur de rendu." <- Je viens de trouver cette information dans la FAQ MyFaces/Tobago. Et autant que je sache, les composants RichFaces utilisent leurs propres moteurs de rendu. – Marcus