Переменная из контроллера пружины в jstl jsp не принимается функцией Math-lib - PullRequest
0 голосов
/ 18 февраля 2020

Это немного расстраивает, у меня есть:

@RequestMapping(value = "", method = RequestMethod.GET)
public String getFoo(ModelMap modelMap) {
    // omissions
    modelMap.addAttribute("myVar", 1);
    return bar;
}

В моем jsp есть:

<c:set var="otherVar" value="${7-3}"/> // calculation

Этот myVar и другие Var я хочу использовать для некоторых вычислений. Но что-то не так с myVar, я не могу использовать его в математическом Math.min () без лишних вещей.

Работает, страница загружается правильно, выводится разумное значение:

${Math.min(10, myVar - 0)}
${Math.min(otherVar, myVar - 0)}
${Math.min('1', myVar)}
${10 > myVar ? myVar : 10}
${Math.min(10, otherVar)}
${Double.valueOf(myVar)}
${Integer.valueOf(myVar)}
${Math.min(Integer.valueOf(otherVar), Integer.valueOf(myVar))}
${Math.min(Double.valueOf(otherVar), Double.valueOf(myVar))}
${Math.min('1', Integer.valueOf(myVar))}

Не работа: (я получаю пустую страницу, плохо знакомы с jsp, поэтому навыки отладки низкие)

${Math.min(1, myVar)}
${Math.min(otherVar, myVar)} // This is the line I'd want, and which took a long time until I found not working
${myVar.class.simpleName} // This is probably just junk, but it conveys the main line in my debugging efforts
${Math.min(1, Integer.valueOf(myVar))}
${Math.min(1, Double.valueOf(myVar))}

Что случилось? Почему так себя ведет, какой тип / класс myVar? Вышеприведенные результаты не очень хороши, поскольку они являются либо обычной строкой, либо целым числом.

Редактировать / обновить:

${Math.min(myVar, Integer.valueOf(1))}

Так что это работает ... так что это myVar, который целое число ... и значения, установленные с помощью <c:set>, которые являются ... строками? всегда? или что-то другое? примитив int как-нибудь?

Редактировать / обновить 2:

нет ок

<c:set var="otherVar" value="${Integer.valueOf(7-3)}"/>
${Math.min(myVar, otherVar)}

работает. Так что просто myVar - это просто класс Integer, который все портит?

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