Форма Spring: ввод не нулевой - PullRequest
0 голосов
/ 02 октября 2019

У меня есть форма с формой: ввод, который выглядит как текстовое поле. Моя проблема в том, что этот ввод имеет значение по умолчанию "0", и я не могу заменить его на ноль.

Поле в настоящее время установлено в значение = "". Когда значение изменяется на что-то другое, поле ДОЛЖНО содержать новое значение, если оно не равно нулю или "". Я пытался удалить значение, без эффекта. Я попытался использовать значение по умолчанию, без эффекта.

Я перенес то, что, как я считаю, обсуждаемую линию, влево, чтобы он выделялся больше. Кажется, я не могу выделить жирный код.

    <tbody>
        <c:if test="${not empty drillobject.newList}">
            <c:forEach var="newREC" items="${drillobject.newRecList}" varStatus="vs">
                <tr>
                    <c:choose>
                        <c:when test="${newRec.filenumber==0}">
                            <td>
    <form:input id="fileNumber${vs.index}" path="newRecList[${vs.index}].filenumber" cssClass="form-control" value=""  />
                            </td>
                        </c:when>
                        <c:otherwise>
                            <td style="text-align: center">
                                <a href="Record?FileNumber=${newRec.filenumber}" target="blank_"><c:out value="${newRec.filenumber}" /></a>
                            </td>
                        </c:otherwise>
                    </c:choose>
                </tr>
            </c:forEach>
        </c:if>
    </tbody>

Вот контроллер.

    @RequestMapping(value = "/thispage", method = {RequestMethod.GET, RequestMethod.POST})
    public String thispage(HttpServletRequest request, Model model)
    {
        NewRecInfo RecList = new NewRecInfo();
        RecList.setNewRecList(myService.getRecList());
        model.addAttribute("drillobject",  RecList);

        return "thispage";
    }

Вот класс java со всем для filenumber.

    public class NewRecRow  {
        private String filenumber;
        public String getfilenumber()
        {
            return filenumber;
        }
        public void setfilenumber(String newfile)
        {
            filenumber=newfile;
        }
    }

Вещичто я пытался (коротко для убеждения)

    <form:input value=""  />
    <form:input value=" "  />
    <form:input   />
    <form:input value="" default="" />
    <form:input value="" default="asdf" />
    <form:input value="${newRec.filenumber}"  />

1 Ответ

0 голосов
/ 03 октября 2019

Я обнаружил проблему, это было с rowmapper в DAO. Итак, что произошло, когда значение было прочитано первым как целое число, которое присваивает нулевое значение 0, поскольку целые числа не могут быть нулевыми, если они инициированы, и при приведении к строке значение 0 передается.

    class myMapper implements RowMapper<NewRecRow> {
        public NewRecRow mapRow(ResultSet rs, int arg1) throws SQLException 
        { 
            NewRecRow model = new NewRecRow();

            //replace this
            //model.setfilenumber(Integer.toString(rs.getInt("FILE_NUMBER")));

            //with this
            int mytemp = rs.getInt("FILE_NUMBER");
            boolean iszero = (mytemp==0);
            model.setfilenumber((iszero?"":Integer.toString(mytemp)));

            return model;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...