2

在我编写自定义标记来执行此操作之前,我想确保我没有遗漏 EL 或 JSTL 中的某些内容。

存储在请求范围内的 bean 属性返回了一个 int。我需要将其输出为十六进制。但是经过搜索,似乎JSP中没有办法输出EL从bean返回的int这样......

${someBean.someInt}

...作为十六进制值,以...

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

...将。

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

4

1 回答 1

2

您不能在 EL 中或使用 JSTL 的格式标记来执行此操作。编写自定义标签或EL 函数是最佳选择。

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

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

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

${someBean.someIntAsHex}
于 2012-09-12T10:44:43.177 回答