2014-07-22 3 views
2

J'ai trouvé quelques exemples et publications à ce sujet mais je n'ai pas trouvé de solution ou d'exemple complet.
Je souhaite utiliser enum pour conserver la valeur des boutons radio.
S'il vous plaît aider.lier enum au bouton radio en jsp

J'ai un ENUM comme ci-dessous:

public enum MyEnum implements Serializable { 
SUNDAY, MONDAY, TUESDAY 
} 

J'ai une forme dans mon jsp comme ci-dessous:

MyJSP.jsp

<form:form action="" method="post"> 
    <input type="radio" id="id1" name="name1" value="value1" > 
    <input type="radio" id="id2" name="name2" value="value2" > 
    <input type="radio" id="id3" name="name3" value="value3" >    
</form:form> 

J'ai Classe de modèle ci-dessous:
MyModel.java

public class MyModel { 
    private String temp; 
    private MyEnum myEnum; 
    //getters and setters here 
} 

J'ai un contrôleur comme ci-dessous:
MyController.java

@Controller 
@SessionAttributes(MyModel) 
public class MyController { 

    @ModelAttribute(MyModel) 
    public MyModel initMyModel(final HttpServletRequest httpRequest, final HttpSession session) { 
    MyModel myModel = new MyModel(.....); 
    //code goes here 

    return myModel; 
    } 

    @RequestMapping(value = , method = RequestMethod.GET) 
    public String initialViewMyModel(final HttpServletRequest httpRequest, final HttpSession session) { 
    return MyJsp; 
    } 

    @SuppressWarnings("boxing") 
    @RequestMapping(value = , method = RequestMethod.POST) 
    public String onSubmit(final @ModelAttribute(MyModel) MyModel myModel, final BindingResult bindingResult, final HttpServletRequest httpRequest, final ModelMap modelMap) { 
    HttpSession session = httpRequest.getSession(); 
    //Here is the issue 
    MyEnum[] myEnum= myModel.getmyEnum(); //I want here to get the index or anything so that I could identify the selected radio button and use the switch case further but getting null here 
    switch (//----) { 
     case SUNDAY : 
      break; 

     case MONDAY : 
      break; 

     case TUESDAY : 
      break; 
    } 

    return "someotherJSP"; 
    } 

Comment puis-je lier les boutons radio MyJsp.jsp aux valeurs ENUM pour que je obtenir la valeur enum basée sur le bouton radio sélectionné?
L'un des boutons radio simple ou ressort: radio peut fonctionner pour moi.
Aidez s'il vous plaît!

Répondre

0

Les boutons radio représentant une seule action doivent avoir la même valeur name. Commencez par les éléments suivants:

<form:form action="" method="post"> 
    <input type="radio" name="day" value="SUNDAY" > 
    <input type="radio" name="day" value="MONDAY" > 
    <input type="radio" name="day" value="TUESDAY" >    
</form:form> 

Puis, simplement recueillir la valeur de bouton radio dans le contrôleur:

@RequestMapping 
public String onSubmit(@RequestParam MyEnum day) 
{ 
    ... 
} 

Si l'utilisateur a sélectionné l'une des valeurs de bouton radio, vous serez en mesure de lire que valeur dans la méthode du contrôleur mappé. Vous pouvez également recueillir la valeur sélectionnée dans un champ à l'intérieur d'un objet modèle, tels que:

@RequestMapping 
public String onSubmit(FormModel model) 
{ 
    ... 
} 

FormModel est une classe Java contenant un champ appelé day.

+0

En référence à mon code ci-dessus pouvez-vous s'il vous plaît suggérer comment puis-je récupérer la valeur radio sélectionnée dans mon contrôleur après avoir changé le jsp selon votre réponse. Je veux dire comment récupérer la valeur du bouton radio sélectionné dans ce cas. – user3865751

+0

Les extraits de code pour récupérer la valeur du bouton radio sélectionné sont dans ma réponse ci-dessus (voir '@ RequestParam' et' FormModel'). Essayez ceci comme un petit échantillon et vous serez en mesure de le faire fonctionner. – manish

+0

Je veux dire à l'intérieur de la méthode onSubmit, comment puis-je récupérer la valeur radio sélectionnée à partir de FormModel où FormModel est quelque chose comme: public class FormModel { Day day; Temp de chaîne; } où Jour est l'enum – user3865751