访问 ManagedBean 中的属性 valueExpression
Access attributes valueExpression in ManagedBean
我有一个自定义的 facelet 标签,它只包含一个 outputText。使用自定义标签的原因是根据实体字段修改值。例如:如果 outputText 用于百分比值,我想打印带有 % 的值而无需客户端添加它
我的问题是如何访问辅助 bean 中的属性值表达式
<f:attribute name="value" value="#{value}" />
<h:outputText value="#{outputBean.value}"></h:outputText>
在支持 bean 中
public String getValue() {
//ValueExpression valueExpression = Read the page attributes and get the value expression of attribute "value"
// String value = set the value according to the value expression after necessary modifications
return value;
}
您想从 f:attribute 组件中获取 ValueExpression #{value} 吗?如果不搜索视图会更简单,只需将属性添加到 h:outputText 组件并检查它,并为该属性指定一个特殊的唯一名称:
XHTML 片段:
<h:outputText value="#{myBean.value}" >
<f:attribute name="tofuwurst" value="#{chunk}"/>
</h:outputText>
MyBean.java:
import javax.el.ValueExpression;
import javax.enterprise.context.RequestScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.inject.Named;
@Named
@RequestScoped
public class MyBean {
private Object value;
public Object getValue() {
FacesContext context = FacesContext.getCurrentInstance();
UIComponent currentComponent = UIComponent.getCurrentComponent(context);
ValueExpression veTofuwurst = currentComponent.getValueExpression("tofuwurst");
assert null != veTofuwurst;
// have fun with a #{chunk} of Tofuwurst here
return value;
}
public void setValue(Object value) {
this.value = value;
}
}
我有一个自定义的 facelet 标签,它只包含一个 outputText。使用自定义标签的原因是根据实体字段修改值。例如:如果 outputText 用于百分比值,我想打印带有 % 的值而无需客户端添加它
我的问题是如何访问辅助 bean 中的属性值表达式
<f:attribute name="value" value="#{value}" />
<h:outputText value="#{outputBean.value}"></h:outputText>
在支持 bean 中
public String getValue() {
//ValueExpression valueExpression = Read the page attributes and get the value expression of attribute "value"
// String value = set the value according to the value expression after necessary modifications
return value;
}
您想从 f:attribute 组件中获取 ValueExpression #{value} 吗?如果不搜索视图会更简单,只需将属性添加到 h:outputText 组件并检查它,并为该属性指定一个特殊的唯一名称:
XHTML 片段:
<h:outputText value="#{myBean.value}" >
<f:attribute name="tofuwurst" value="#{chunk}"/>
</h:outputText>
MyBean.java:
import javax.el.ValueExpression;
import javax.enterprise.context.RequestScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.inject.Named;
@Named
@RequestScoped
public class MyBean {
private Object value;
public Object getValue() {
FacesContext context = FacesContext.getCurrentInstance();
UIComponent currentComponent = UIComponent.getCurrentComponent(context);
ValueExpression veTofuwurst = currentComponent.getValueExpression("tofuwurst");
assert null != veTofuwurst;
// have fun with a #{chunk} of Tofuwurst here
return value;
}
public void setValue(Object value) {
this.value = value;
}
}