提问人:TheIngo 提问时间:9/22/2021 最后编辑:TheIngo 更新时间:9/22/2021 访问量:85
JSF/PrimeFaces:基于选择的可见性
JSF/PrimeFaces: Selection based visibility
问:
我想显示/现在显示(例如)基于广播选择的文本。
在 ajax 样式中,无需往返服务器。
如何使用 JSF/PrimeFaces 执行此操作?
<h:outputText value="Show some stupid Text." id="testShowText" />
<p:selectOneRadio id="testRadio" widgetVar="testRadio" value="True" layout="grid" columns="1">
<f:selectItem itemLabel="Show Text" itemValue="True"/>
<f:selectItem itemLabel="Do NOT show Text" itemValue="False"/>
</p:selectOneRadio>
更新
我在测试中以这种方式管理了它,但我不确定,这是否是“最佳实践”,我有一些疑问;我真的需要一个托管的 Bean 吗?
首先,我创建了一个 Bean 来存储所选值:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class ShowTextBean {
private boolean showBool = false;
private String showString = "False";
public ShowTextBean() {
}
public boolean isShowBool() {
return showBool;
}
public void setShowBool(boolean showBool) {
this.showBool = showBool;
}
public String getShowString() {
return showString;
}
public void setShowString(String showString) {
this.showString = showString;
}
}
然后,我将 Facelets 代码更改为:
<p:panel id="testShowTextPanel" style="display: #{showTextBean.showString eq 'False' ? 'none' : 'block'} ">
<h:outputText value="Show some stupid Text." id="testShowText"/>
</p:panel>
<p:selectOneRadio id="testRadio" widgetVar="testRadio" value="#{showTextBean.showString}" layout="grid" columns="1">
<f:selectItem itemLabel="Show Text" itemValue="True"/>
<f:selectItem itemLabel="Do NOT show Text" itemValue="False"/>
<p:ajax update="testShowTextPanel" />
</p:selectOneRadio>
答: 暂无答案
评论
ui:param