在JSF中设置变量

时间:2012-08-28 12:05:43

标签: jsf jsf-2

我的jsf中有这样的东西:

<div title="Percentage: #{myBean.numberToBeConvertedToPercentage}"></div>

我想做这样的事情:

<h:outputText value="#{myBean.numberToBeConvertedToPercentage}">
    <f:convertNumber maxFractionDigits="2" type="percent"/>
</h:outputText>

当然,不是在输出文本中,而是将转换后的数字设置为变量,所以我可以在我的div中使用它。 我不想直接从我的bean中获取这个转换后的数字,因为我在我的视图的另一个地方使用它而不格式化它,并为此创建一个get,我不喜欢这个想法。有什么方法可以在我看来做到这一点吗?

2 个答案:

答案 0 :(得分:1)

  1. 要使用<h:outputText> +转换器,它是JSF中用于此目的的最佳方法。您可以重新设计Html 以分隔标签“Percentage:”和数据。以使用JS代码中的呈现值将其传递给“title”属性。

    <div id="titleDiv" />
    
    <script type="text/javascript">
    $('#titleDiv').title = 'Percentage: <h:outputText value="#{myBean.numberToBeConvertedToPercentage}"><f:convertNumber maxFractionDigits="2" type="percent"/></h:outputText>';
    </script> 
    
  2. 如果您仍希望不使用转换器,那么您可以为每个视图创建一个bean,并在get方法中呈现值。

  3. 其他选项是使用 EL 2.2方法调用功能并调用自己的格式bean

    <div title="Percentage: #{formatBean.formatNumber(myBean.numberToBeConvertedToPercentage, 2)}"></div>
    

答案 1 :(得分:0)

我没有检查过这个,但也许你可以使用ui:param并为其分配一个转换器。

          

然后在您的页面中使用它

<div title="Percentage: #{myVar}></div>

请参阅Defining and reusing an EL variable in JSF page