在JSP中将int输出为十六进制

时间:2012-09-12 08:48:35

标签: jsp jstl el

在我编写自定义标签之前,我想确保我没有错过EL或JSTL中的内容。

由bean属性返回的int存储在请求范围中。我需要输出为十六进制。但是在搜索之后,似乎JSP中没有办法输出一个由EL返回的int,因此......

${someBean.someInt}

...作为十六进制值,以......的方式。

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

...那样。

我说错了吗?如果没有,它是如何完成的? (我们的部门编码标准不允许使用<% %>语法将JSP直接包含在JSP中。如果我们找不到已有的东西,我们必须编写标签。)

1 个答案:

答案 0 :(得分:2)

您无法在EL中执行此操作或使用JSTL的格式标记。编写自定义标记或EL function是最佳选择。

如果它只是一个int你需要格式化,你可以在你的bean中添加一个String getter来进行格式化

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

然后你可以在EL中使用那个getter

${someBean.someIntAsHex}