我的目标是将带有参数 ( Hello {0}
) 的字符串从支持 bean 传递给 JavaScript。我目前的做法是将字符串放入a中h:inputHidden
,让JS读取onLoad的值。可悲f:param
的是,里面h:inputHidden
没有像在h:outputFormat
.
什么方法通常是可取的?
- 我可以将字符串与支持 bean 中的参数结合起来,但 imo 这不应该是 bean 关心的问题。
- 我可以将它们组合在 JS 中,但这似乎又像是在重新发明轮子(使用
replace
函数......) - 我没有看到使用 a 的(好)方法,
h:outputFormat
但使其对用户不可见。 - 我看不出有什么办法让
h:inputHidden
acceptf:param
s。
编辑:使用的实际实现是 Apache MyFaces 1.1.4,所以我将标题更新为 JSF 1.1。
由于 BalusCs 的回答,我记得我的第一个(和丢弃的)方法:
直接包含在 JS 源代码中。
<script> var text = '<h:outputFormat value="Hello {0}"><f:param value="World" /></h:outputFormat>'; </script>
可悲的是,在 JSF 1.1 中,我必须使用<f:verbatim>
这使得代码非常难看(甚至 eclipses 语法检查器也不理解它——尽管它可以工作):
<f:verbatim>
<script>
var text = '</f:verbatim>
<h:outputFormat value="Hello {0}"><f:param value="World" /></h:outputFormat>
<f:verbatim>';
</script>
</f:verbatim>
还有一个缺点是我不能把它放在里面,<head>
因为它必须在里面<f:view>
。