Изход int като шестнадесетичен в JSP

Преди да напиша персонализиран етикет, за да направя това, искам да съм сигурен, че не съм пропуснал нещо в EL или JSTL.

Има int, върнат от свойство на bean, което се съхранява в обхвата на заявката. Трябва да го изведа като шестнадесетичен. Но след търсене, изглежда, че няма начин в JSP да изведе int, който се връща от bean от EL по този начин...

${someBean.someInt}

...като шестнадесетична стойност, по начина, по който...

<%= String.format("0x%X", someBean.getSomeInt()) %>

...би се.

Прав ли съм? Ако не, как се прави? (Нашите ведомствени стандарти за кодиране не позволяват Java директно да се включва в JSP, използвайки синтаксиса <% %>. Трябва да пишем тагове, ако не можем да намерим нещо, което вече е налично.)


person John Fitzpatrick    schedule 12.09.2012    source източник


Отговори (1)


Не можете да направите това в EL или с помощта на маркерите за форматиране на JSTL. Написването на персонализиран етикет или EL функция е най-добрият вариант.

Ако това е само един int, който трябва да форматирате, можете да добавите String getter към вашия bean, за да извършите форматирането

public String getSomeIntAsHex(){
  return String.format("0x%X", someInt);
}

и тогава можете да използвате този гетер в EL

${someBean.someIntAsHex}
person Jasper de Vries    schedule 12.09.2012
comment
Използвах второто ти предложение. Но съм любопитен за подхода на EL функцията. Как да изведа текст към страницата от EL функция? Или върнатата стойност на функцията се извежда автоматично на страницата? - person John Fitzpatrick; 12.09.2012
comment
Нещо като ${myTagLib:intToHex(someBean.someInt)}, което можете директно да изведете или използвате в <c:out value=""/>. - person Jasper de Vries; 12.09.2012