On Apr 9, 4:32*pm, albert kao <albertk...@gmail.com> 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[i].checked) {
> * * * * * * group = elem[i].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>
|