Les cases en utilisant struts
Salut, je suis disposé à mettre à jour la valeur de la case , extraites de la Base de données, chargé sur le JSP. Je suis entrain de créer un Profil d'Employé. La Jsp a des champs Nom de l'Employé, à l'Adresse des Employés, des Employés, des Compétences techniques.
Les Compétences de l'Employé a la suite de Cases à cocher pour sélectionner les valeurs suivantes
Checkbox1: Java Checkbox2: Dot net
Pour un Employé X, Ne pas avoir à la fois le calcul des compétences en Java et Dot net dans la base de données. Je suis en mesure d'extraire l'enregistrement de la base de données de la JSP.
Dans la classe de l'action, je suis aller chercher les valeurs de la base de données et de les placer dans le EmployeeForm qui a les deux getters et setters. Je suis la définition de ces valeurs dans la demande avec setattribute.
Dans le EmployeeUpdate.jsp je suis en train de faire la suite
String skillsValue1=(String)request.getAttribute("C/C++");
String skillsValue2=(String)request.getAttribute("Java");
<%if(skillsValue1!=null){ %>
<html:checkbox property="ComputationalSkill1" value="C/C++"/>
<%}else{ %>
<html:checkbox property="ComputationalSkill1" value=" "/>
<%}%>
</td>
<%if(skillsValue2!=null){ %>
<html:checkbox property="ComputationalSkill2" value="Java"/>
<%}else{ %>
<html:checkbox property="ComputationalSkill2" value=" "/>
<%}%>
</td>
Le code suivant affiche les cases parfaitement pour les employés à l'une de ces compétences et sans compétences.
Je reçois le problème suivant ici
- Quand j'ai décocher la valeur de n'importe quel champ, qui a été vérifié plus tôt , la valeur est mise à null de la fève à la perfection.
Mais quand je vérifie la valeur de n'importe quel champ, qui n'a pas été vérifié plus tôt(à mettre à jour les champs), Il n'y a pas de valeur définie dans le bean de la propriété particulière, ni nulle également.
Quelqu'un pourrait-il me faire savoir comment obtenir la modification des valeurs d'une case, i,e quand j'ai changer l'état de la désactiver pour vérifier l'état, la valeur doit être définie dans la propriété.
OriginalL'auteur user1879683 | 2012-12-24
Vous devez vous connecter pour publier un commentaire.
Si un employé possède les compétences Java, vous êtes l'affichage de la case à cocher suivantes:
Cela signifie que, si la case est cochée, le paramètre suivant sera envoyé:
Si un employé n'a pas la compétence Java, vous êtes l'affichage de la case à cocher suivantes:
Cela signifie que, si la case est cochée, le paramètre suivant sera envoyé:
Ce que vous voulez est de générer toujours la même case (la première), mais présélectionner il si l'employé possède les compétences Java, et pas présélectionner il si l'employé n'a pas la compétence Java.
Ce n'est pas possible comme c'est à l'aide de la
<html:checkbox>
tag, parce que c'est censé être lié à une propriété booléenne. Donc, vous pourriez avoir une propriétéisJavaSkilled()
/setJavaSkilled()
dans votre forme de haricot, et l'utilisationStruts pré-cochez la case si le formulaire javaSkilled propriété est true, et laissez-la décochée si c'est faux.
Noter, cependant, que, puisque vous avez une liste de compétences qui peut être ou n'est pas présent, vous devez avoir une propriété
getSkills()
/setSkills()
de typeString[]
, et l'utilisation d'un<html:multibox>
tag.J'ai une question, en utilisant l'opérateur booléen isJavaSkilled()/setJavaSkilled() dans le formbean, renvoie uniquement la valeur vrai ou faux sur "Soumettre". J'aime pour envoyer les valeurs de Java et C/C++ en fonction de Soumettre, sur la vérification de la décoché les cases à cocher. De plus, j'ai deux setters et getters pour prendre les deux valeurs, mais à l'aide de <html:case property="javaSkilled"/> n'a pas fonctionné pour le get et set pour être de type chaîne. Pourriez-vous s'il vous plaît dites-moi comment faire pour gérer ce problème.
<html:checkbox>
prend uniquement en charge les booléens. C'est documenté. Comme je l'ai dit dans ma réponse, vous devez utiliser un<html:multibox>
J'ai résolu le problème Nizet en utilisant onchange() la fonction à <html:case property="ComputationalSkill2" value=" "/>, qui attribue des valeurs lorsque la case est cochée et donne de la valeur nulle lorsqu'il n'est pas cochée. Mais merci pour les solutions
OriginalL'auteur JB Nizet