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

A

albert kao

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);
}
 
M

marisa lee

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>
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top