有没有办法暂时保存JSF页面中的计算值?我想在不计算两次的情况下执行以下操作:
<h:outputText value="#{complexModel.currencyAmount.currency}">
<h:outputText value="#{complexModel.currencyAmount.amount}">
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用别名bean但是我收到一个错误,说java.lang.IllegalArgumentException - 行不可用.
例如
<t:aliasBean id="bean" alias="#{bean}" value="#{complexModel.currencyAmount}">
<h:outputText value="#{bean.currency}">
<h:outputText value="#{bean.amount}">
</t:aliasBean>
Run Code Online (Sandbox Code Playgroud)
谢谢.
两种方式(至少):
使用你的lazy-init字段complexModel.就像是:
private Currency currencyAmount;
public Currency getCurrencyAmount() {
if (currencyAmount == null) {
currencyAmount = calculateCurrencyAmount();
}
return currencyAmount;
}
Run Code Online (Sandbox Code Playgroud)使用JSTL <c:set>标记:
(名称空间优先)
xmlns:c="http://java.sun.com/jstl/core"
Run Code Online (Sandbox Code Playgroud)
然后
<c:set var="varName" value="#{complexModel.currencyAmount}" />
Run Code Online (Sandbox Code Playgroud)
然后可以通过获得计算出的值#{varName}.
| 归档时间: |
|
| 查看次数: |
13322 次 |
| 最近记录: |