2014-07-22 50 views
2

我找到了一些关于此的示例和帖子,但找不到完整的解决方案或示例。
我想使用枚举来保存单选按钮的值。
请帮忙。将枚举绑定到jsp中的单选按钮

我有一个枚举象下面这样:

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

我在我的JSP形式如下:

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> 

我有一个型号分类如下:
MyModel.java

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

我有一个控制器,如下:
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"; 
    } 

如何可以结合在MyJsp.jsp单选按钮来枚举值,这样我根据所选的单选按钮获取枚举值?
简单的单选按钮或弹簧:无线电标签可以为我工作。
请帮忙!

回答

0

表示单个动作的单选按钮必须具有相同的name。先从以下内容:

<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> 

然后,只需收集控制器的单选按钮值:

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

如果用户已经选择的单选按钮值之一,你将能够读取映射控制器方法中的值。您也可以收集在一个领域的选定值模型对象中,如:

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

其中FormModel是包含一个领域的Java类称为day

+0

参考我上面的代码,可以请您建议如何根据您的答案更改jsp后,在我的控制器中查找选定的无线电值。 我的意思是在这种情况下如何检索所选单选按钮的值。 – user3865751

+0

用于检索所选单选按钮值的代码片段位于上面的答案中(请参阅'@ RequestParam'和'FormModel')。试试这个作为一个小样本,你将能够使其工作。 – manish

+0

我的意思是在onSubmit方法中,我如何从FormModel中检索FormModel类似的选定无线电值: public class FormModel { Day day; String temp; } 其中Day是枚举 – user3865751