1

我的jsf中有这样的东西:

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

我想做这样的事情:

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

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

4

2 回答 2

1
  1. To go with <h:outputText> + converter, it is the best approach for this purpose in JSF. You can redesign your Html to separate the label "Percentage: " and the data. to use rendered value in JS code to pass it to 'title' attribute.

    <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. If you still want to stay without converters, then you can create one more bean per your view and render values in get methods.

  3. Other option is to use EL 2.2 Method call feature and to call your own format bean

    <div title="Percentage: #{formatBean.formatNumber(myBean.numberToBeConvertedToPercentage, 2)}"></div>
    
于 2012-08-28T13:30:07.690 回答
0

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

然后在您的页面中使用它

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

请参阅在 JSF 页面中定义和重用 EL 变量

于 2012-08-28T13:44:07.513 回答