Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从自定义JSP标记导出作用域变量_Jsp_Jstl_Jsp Tags_Var - Fatal编程技术网

从自定义JSP标记导出作用域变量

从自定义JSP标记导出作用域变量,jsp,jstl,jsp-tags,var,Jsp,Jstl,Jsp Tags,Var,在JSTLfmt标记库中是标记formatDate,它具有一个可选属性var。使用formatDate标记时,可以通过var属性传入一个字符串,该属性指定将要创建的变量的名称,其值将是格式化的日期字符串 不幸的是,Java(从Java8开始)不支持我需要的汤加和萨摩亚地区。因此,一位同事创建了一个自定义日期格式标签,该标签基本上只使用fmt:formatDate对日期进行格式设置,然后(在汤加和萨摩亚的情况下)用适当的翻译替换日期名和月份名值。但是,这个自定义标记只输出(使用c:out)结果,我

在JSTL
fmt
标记库中是标记
formatDate
,它具有一个可选属性
var
。使用
formatDate
标记时,可以通过
var
属性传入一个字符串,该属性指定将要创建的变量的名称,其值将是格式化的日期字符串

不幸的是,Java(从Java8开始)不支持我需要的汤加和萨摩亚地区。因此,一位同事创建了一个自定义日期格式标签,该标签基本上只使用
fmt:formatDate
对日期进行格式设置,然后(在汤加和萨摩亚的情况下)用适当的翻译替换日期名和月份名值。但是,这个自定义标记只输出(使用
c:out
)结果,我想增强自定义标记以能够创建一个变量,就像
fmt:formatDate
那样。不幸的是,我不知道怎么做

c:set
不允许在其
var
属性中使用表达式,并且由于某些原因,
pageContext
在自定义标记文件(date formatter.tag)中为空

下面是我对标记定义的定义,减去无关的细节(假设包括
c
fmt
taglib,以及
dateFormatterLocale
变量):


...
[翻译日名和月名的材料]
...
在所需范围映射上使用
${var}
上的
属性

例如,如果您需要将其限定为请求范围:

<c:set target="${requestScope}" property="${var}" value="${dfFormattedDate}" />

或页面范围:

<c:set target="${pageScope}" property="${var}" value="${dfFormattedDate}" />

<c:set target="${pageScope}" property="${var}" value="${dfFormattedDate}" />