Необязательный параметр int 'rating' присутствует, но не может быть преобразован в нулевое значение из-за того, что он объявлен как примитивный тип - PullRequest
0 голосов
/ 11 июня 2018

Я использую mvc spring вместе с MySQL для своего проекта.На одной из моих страниц пользователь может добавить свой комментарий и оценку в магазин.Проблема в том, что я хочу, чтобы оценка и комментирование были необязательными - комментирование - это не оценка.И когда я использую свой контроллер следующим образом:

 @RequestMapping(value={"/", "/shop"}, method=RequestMethod.POST)
public String kmetija11(@RequestParam(value = "rating", required = false) int mark,
                        @RequestParam(value = "content", required = false) String comment)
{
    markDao.addMark(mark);
    commentDao.addComment(comment);
    return "redirect:/input";

}

я получаю значение рейтинга из этой формы:

<form method="POST" action="/shop">
                        <div class="form-group">
                            <textarea class="form-control" rows="2" value="Add comment ..." name="content"></textarea>
                            <ul class="rate-area">
                                <input type="radio" id="5-star" name="rating" value="5" /><label for="5-star">5 stars</label>
                                <input type="radio" id="4-star" name="rating" value="4" /><label for="4-star">4 stars</label>
                                <input type="radio" id="3-star" name="rating" value="3" /><label for="3-star">3 stars</label>
                                <input type="radio" id="2-star" name="rating" value="2" /><label for="2-star">2 stars</label>
                                <input type="radio" id="1-star" name="rating" value="1" /><label for="1-star">1 star</label>
                            </ul>
                            <br/><br/>

                        </div>
                        <button type="submit" class="btn" >Add comment / mark</button>
                    </form>

Так что же происходит, если я не ставлю -> значение= "рейтинг", обязательный = ложный) <- говорит о том, что параметр является обязательным, поскольку значение по умолчанию - true.Но если я поставлю код таким, какой он есть сейчас, я получу эту ошибку: <a href="http://prntscr.com/jtppgo" rel="nofollow noreferrer">http://prntscr.com/jtppgo

Если у кого-то есть какие-либо идеи относительно того, что делать, я был бы рад услышать ответ.Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Просто измените int на Integer, и все готово.Примитивы не могут быть нулевыми, объекты могут ..

0 голосов
/ 11 июня 2018

Это происходит потому, что тип int является примитивным типом данных со значением по умолчанию ноль.

Пожалуйста, используйте класс-оболочку Integer вместо int.

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