2017-01-21 6 views
0

J'utilise des entretoises MVC. Je veux accéder à une valeur d'étiquette dans le contrôleur par les struts ActionForm. Dans le contrôleur, je peux accéder à la valeur des champs de texte par le formulaire ActionForm, car celui-ci a un champ 'name'. Mais dans label, seul 'id' est là. Donc, aidez-moi à accéder à la valeur du label par le ActionForm .Comment accéder à une valeur d'étiquette dans Struts ActionForm sur le contrôleur

jsp

<html:form action="action.do"> 
<label id="labelvalue">label_Value</label> 
</html:form> 

contrôleur

public ActionForward defaultMethod(ActionMapping mapping, ActionForm form, 
     HttpServletRequest request, HttpServletResponse response) 
     throws Exception { 
try{ 
    StrutsActionForm actform;  
    actform= (StrutsActionForm) form; 
    String labelvalue=actform.getLabelValue();//now it shows null.I want to get the value from the label field 
    return "success"; 
    }catch(Exception e){ 
    return null; 
} 
} 

StrutsActionForm

publi class StrutsActionForm extends ActionForm{ 
private String labelvalue; 
public String getLabelValue() { 
return labelvalue; 
} 
public void setLabelValue(String labelvalue) { 
this.labelvalue= labelvalue; 
} 
} 

struts-config.xml

<form-beans> 
<form-bean name="strutsActionForm" type="com.StrutsActionForm"></form-bean> 
</form-beans> 
<action-mappings> 
<action path="/action" name="strutsActionForm" input="/index.jsp" 
     type="com.Controller"> 
     <forward name="success" path="/successWindow" /> 
</action> 
</action-mappings> 

Répondre

2

Vous pouvez ajouter un champ caché avec le champ de l'étiquette et définissez la valeur sur le champ caché also.You peut définir le nom du champ caché à ce nom d'étiquette.

<html:form action="action.do"> 
<label id="labelvalue">label_Value</label> 
<input type="hidden" name="labelvalue" value="label_Value"/> 
</html:form> 
+0

Cela fonctionne..Merci –

2

Vous pouvez accéder au texte dans une balise d'étiquette en utilisant ce code

<html> 
 
\t <head> 
 
\t \t <script> 
 
\t \t \t function getLabelValue() 
 
\t \t \t { 
 
\t \t \t \t alert(document.getElementById("labelvalue").innerText); 
 
\t \t \t } 
 
\t \t </script> 
 
\t </head> 
 
\t <body> 
 
\t \t <html:form> 
 
\t \t \t <label id="labelvalue">FOOOOOOO</label> 
 
\t \t \t <input type="button" onclick="getLabelValue()"/> 
 
\t \t </html:form> 
 
\t </body> 
 
</html>

Maintenant, ajoutez une propriété cachée à JSP (un attribut dans la classe Form). En soumettant appel cette fonction JS

function setLabelValueToFormAttribute() 
{ 
    document.getElementById("hiddenProperty").value = document.getElementById("labelvalue").innerText; 
} 
+0

Y at-il une autre façon de le faire? Parce que ma page jsp ont 50 entrées de données –

+0

le texte à l'intérieur ne changement d'étiquette en continu tout en obtenant la réponse du serveur, ou est-il constant pour chaque réponse. –

+0

vous pouvez utiliser le fichier de propriétés pour afficher la classe java label.using, vous pouvez lire cette propriété. –