OnChange radio buttons to pass value to Swing Controller and update model

632 Views Asked by At

Pretty new to Swing and Dojo, I have a very simple on/off toggle form with 2 radio buttons and I'm having trouble passing the value to my Java Swing Controller and then saving it in the model.

I won't go into too much detail about the model, you should get the jist from my code, it's very simple and straight forward.

index.jsp

<form:form name="ToggleForm" commandName="ToggleForm" method="POST" action="ToggleForm.do" dojoType="dijit.form.Form" id="ToggleForm">
    <input type="radio" dojoType="dijit.form.RadioButton" name="Toggle" id="toggleOn" value="1"> On
    <input type="radio" dojoType="dijit.form.RadioButton" name="Toggle" id="toggleOff" value="0"> Off
</form:form>

<script>

    dojo.addOnLoad(function() {
        // Required includes
        dojo.require("dijit.form.RadioButton");
    });

    function updateToggleValue(){

        dojo.connect(dojo.byId(this.ToggleForm), 'onchange' ,function(){

            // Find new checked item
            var emailToggleOpts = document.getElementsByName('Toggle');
            for (var i = 0, length = ToggleOpts.length; i < length; i++) {
                if (ToggleOpts[i].checked) {
                    var ToggleChecked = ToggleOpts[i].value;
                    break;
                }
            }

            // Set updated value
            dojo.byId(this.updateToggle).setAttribute('ToggleValue', ToggleChecked);

            dojo.xhrPost({
                form: "updateToggle"
                , timeout: 3000
                , load: function(response){
                    console.log(response);
                }
                , error: function(error){
                    console.log(error);
                }
            });

            dojo.disconnect(dijit.byId(self.form));

        });
    }
    dojo.ready(updateToggleValue);

</script>

ToggleFormController.java

@Resource
ToggleOptService toggleOptService;

@RequestMapping(value = "/Toggle.do", method = RequestMethod.POST)
public @ResponseBody String updateToggle(
    ModelMap model 
    , @ModelAttribute ToggleForm toggleForm 
    , BindingResult result) {


    // 1. Get value of radio button from form
    // This is the bit I'm having trouble with


    // 2. Update value in model with value from form
    ToggleOpt toggleOpt = new ToggleOpt();
    toggleOpt.setToggleName("anOption");
    toggleOpt.setToggleSetting(****form value****)
    toggleOptService.updateToggleOpt(toggleOpt);

    return "";

}

ToggleForm.java

public class ToggleForm {

    private long id;
    private String toggleName;
    private int toggleSetting;

    public long getId(){ return id; }
    public void setId(long Id) { this.Id = Id; }

    public String getToggleName() { return toggleName; }
    public void setToggleName(String toggleName) { this.toggleName = toggleName; }

    public int getToggleSetting() { return toggleSetting; }
    public void setToggleSetting(int setting) { this.setting = setting; }

}
0

There are 0 best solutions below