Spring java Controller get correct data from button when "apply"button is clicked but not pressing t

Discussion in 'Java' started by albert kao, Apr 9, 2010.

  1. albert kao

    albert kao Guest

    The group button in my form is set to "unack".
    The Spring ParameterizableViewController (HwController.java) receive
    the correct group "unack" when the "apply" button is clicked.
    However, the HwController receive the null group when the cursor is
    moved to the text box and press the <Enter> key.
    Only the data from the button is received incorrectly, the other form
    data are received correctly.
    Please help so that the HwController will receive the correct group
    when the <Enter> key is pressed.
    I use Spring 2.5.x to implement JSP.
    Eclipse console output:
    12:56:52,187 INFO com.mycomp.hw.monitoring.war.HwController:57 -
    groupStr unack
    12:56:52,187 INFO com.mycomp.hw.monitoring.war.HwController:60 -
    group unack
    12:56:52,187 INFO com.mycomp.hw.monitoring.war.HwController:71 -
    rowsPerPageStr 40
    12:56:52,187 INFO com.mycomp.hw.monitoring.war.HwController:80 -
    rowsPerPage 40
    12:57:14,156 INFO com.mycomp.hw.monitoring.war.HwController:57 -
    groupStr null
    12:57:14,156 INFO com.mycomp.hw.monitoring.war.HwController:60 -
    group all
    12:57:14,156 INFO com.mycomp.hw.monitoring.war.HwController:69 -
    acked null
    12:57:14,156 INFO com.mycomp.hw.monitoring.war.HwController:71 -
    rowsPerPageStr 60
    12:57:14,156 INFO com.mycomp.hw.monitoring.war.HwController:80 -
    rowsPerPage 60

    Hw.jsp file:
    <script type="text/javascript">
    function setgroup() {
    var group = 'all';
    var elem = document.getElementsByName("radio");
    for (var i = 0; i < elem.length; i++) {
    if (elem.checked) {
    group = elem.value;
    }
    }

    var rowsPerPageElem = document.getElementById("rowsPerPage");
    var rowsPerPage = rowsPerPageElem.value;
    var chkelem = document.getElementById("ok");
    var ok = chkelem.checked;

    window.location = "Hw?rowsPerPage=" + rowsPerPage + "&ok=" + ok +
    "&group=" + group;
    }
    </script>

    <form name="form">
    <c:set var="allchecked" value=""/>
    <c:set var="ackchecked" value=""/>
    <c:set var="unackchecked" value=""/>

    <c:if test="${group == 'all'}">
    <c:set var="allchecked" value="checked"/>
    </c:if>
    <c:if test="${group == 'ack'}">
    <c:set var="ackchecked" value="checked"/>
    </c:if>
    <c:if test="${group == 'unack'}">
    <c:set var="unackchecked" value="checked"/>
    </c:if>

    <input type="radio" name="radio" value="all" ${allchecked}
    onClick="setgroup()"> All
    <input type="radio" name="radio" value="ack" ${ackchecked}
    onClick="setgroup()"> Acknowledged
    <input type="radio" name="radio" value="unack" ${unackchecked}
    onClick="setgroup()"> Unacknowledged
    </form>

    <form name="hwform">
    <c:set var="unhwchk" value="" />
    <c:if test="${ok}">
    <c:set var="unhwchk" value="checked" />
    </c:if>
    <br><br><input type="checkbox" name="ok" id="ok" ${unhwchk}
    onClick="setgroup()">HW
    <br>Rows Per Page<input type="text" name="rowsPerPage"
    id="rowsPerPage" value="${rowsPerPage}" onsubmit="setgroup()"/>
    <input type="button" value="Apply" onClick="setgroup()"><br>
    </form>


    HwController.java:
    public ModelAndView handleRequestInternal(HttpServletRequest request,
    HttpServletResponse response) throws Exception {
    String group = "all";
    String groupStr = request.getParameter("group");
    logger.info("groupStr " + groupStr);
    if (groupStr != null)
    group = groupStr;
    logger.info("group " + group);
    }
    albert kao, Apr 9, 2010
    #1
    1. Advertising

  2. albert kao

    marisa lee Guest

    On Apr 9, 4:32 pm, albert kao <> wrote:
    > The group button in my form is set to "unack".
    > The Spring ParameterizableViewController (HwController.java) receive
    > the correct group "unack" when the "apply" button is clicked.
    > However, the HwController receive the null group when the cursor is
    > moved to the text box and press the <Enter> key.
    > Only the data from the button is received incorrectly, the other form
    > data are received correctly.
    > Please help so that the HwController will receive the correct group
    > when the <Enter> key is pressed.
    > I use Spring 2.5.x to implement JSP.
    > Eclipse console output:
    > 12:56:52,187  INFO com.mycomp.hw.monitoring.war.HwController:57 -
    > groupStr unack
    > 12:56:52,187  INFO com.mycomp.hw.monitoring.war.HwController:60 -
    > group unack
    > 12:56:52,187  INFO com.mycomp.hw.monitoring.war.HwController:71 -
    > rowsPerPageStr 40
    > 12:56:52,187  INFO com.mycomp.hw.monitoring.war.HwController:80 -
    > rowsPerPage 40
    > 12:57:14,156  INFO com.mycomp.hw.monitoring.war.HwController:57 -
    > groupStr null
    > 12:57:14,156  INFO com.mycomp.hw.monitoring.war.HwController:60 -
    > group all
    > 12:57:14,156  INFO com.mycomp.hw.monitoring.war.HwController:69 -
    > acked null
    > 12:57:14,156  INFO com.mycomp.hw.monitoring.war.HwController:71 -
    > rowsPerPageStr 60
    > 12:57:14,156  INFO com.mycomp.hw.monitoring.war.HwController:80 -
    > rowsPerPage 60
    >
    > Hw.jsp file:
    > <script type="text/javascript">
    >   function setgroup() {
    >     var group = 'all';
    >     var elem = document.getElementsByName("radio");
    >     for (var i = 0; i < elem.length; i++) {
    >        if (elem.checked) {
    >             group = elem.value;
    >        }
    >     }
    >
    >     var rowsPerPageElem = document.getElementById("rowsPerPage");
    >     var rowsPerPage = rowsPerPageElem.value;
    >     var chkelem = document.getElementById("ok");
    >     var ok = chkelem.checked;
    >
    >     window.location = "Hw?rowsPerPage=" + rowsPerPage + "&ok=" + ok  +
    > "&group=" + group;
    >   }
    > </script>
    >
    > <form name="form">
    >     <c:set var="allchecked" value=""/>
    >     <c:set var="ackchecked" value=""/>
    >     <c:set var="unackchecked" value=""/>
    >
    >     <c:if test="${group == 'all'}">
    >       <c:set var="allchecked" value="checked"/>
    >     </c:if>
    >     <c:if test="${group == 'ack'}">
    >       <c:set var="ackchecked" value="checked"/>
    >     </c:if>
    >     <c:if test="${group == 'unack'}">
    >       <c:set var="unackchecked" value="checked"/>
    >     </c:if>
    >
    >   <input type="radio" name="radio" value="all" ${allchecked}
    > onClick="setgroup()"> All
    >   <input type="radio" name="radio" value="ack" ${ackchecked}
    > onClick="setgroup()"> Acknowledged
    >   <input type="radio" name="radio" value="unack" ${unackchecked}
    > onClick="setgroup()"> Unacknowledged
    > </form>
    >
    > <form name="hwform">
    >   <c:set var="unhwchk" value="" />
    >   <c:if test="${ok}">
    >     <c:set var="unhwchk" value="checked" />
    >   </c:if>
    >   <br><br><input type="checkbox" name="ok" id="ok" ${unhwchk}
    > onClick="setgroup()">HW
    >   <br>Rows Per Page<input type="text" name="rowsPerPage"
    > id="rowsPerPage" value="${rowsPerPage}" onsubmit="setgroup()"/>
    >   <input type="button" value="Apply" onClick="setgroup()"><br>
    > </form>
    >
    > HwController.java:
    > public ModelAndView handleRequestInternal(HttpServletRequest request,
    >     HttpServletResponse response) throws Exception {
    >   String group = "all";
    >   String groupStr = request.getParameter("group");
    >   logger.info("groupStr " + groupStr);
    >   if (groupStr != null)
    >     group = groupStr;
    >   logger.info("group " + group);
    >
    >
    >
    > }

    The form is changed to the following.
    Now pressing the <Enter> key and clicking the "Apply" button has the
    same result - the button value is changed from "ack" to "all".
    However, I expect that the button value should not change.
    <form name="hwform" onsubmit="setgroup()">
    <c:set var="unhwchk" value="" />
    <c:if test="${ok}">
    <c:set var="unhwchk" value="checked" />
    </c:if>
    <br><br><input type="checkbox" name="ok" id="ok" ${unhwchk}/>HW
    <br>Rows Per Page<input type="text" name="rowsPerPage"
    id="rowsPerPage" value="${rowsPerPage}"/>
    <input type="submit" value="Apply"/><br>
    </form>
    marisa lee, Apr 10, 2010
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Stefan Siegl
    Replies:
    1
    Views:
    950
    Marrow
    Jul 18, 2003
  2. Nettar
    Replies:
    0
    Views:
    873
    Nettar
    Dec 1, 2006
  3. rmn190
    Replies:
    2
    Views:
    2,339
    Arne Vajhøj
    Jan 10, 2008
  4. Goldfish
    Replies:
    1
    Views:
    657
    Goldfish
    Nov 6, 2008
  5. iwasjoeking
    Replies:
    2
    Views:
    125
    iwasjoeking
    Jun 7, 2007
Loading...

Share This Page