gpt4 book ai didi

jsf-2 - JSF格式的IF-ELSE条件。需要知道正确的方法

转载 作者:行者123 更新时间:2023-12-04 16:35:11 24 4
gpt4 key购买 nike

我的表单上有if-else条件,其中显示标题和用于添加和更新的按钮文本。

下面的代码是我在struts2项目中使用的代码,而相同的代码想在xhtml页面的JSF2项目中使用。

Struts2页面

 <s:if test="person==null || person.id==null || person.id==''">
<s:set var="buttonText" value="getText('person.button.add')"/>
<s:text name="person.h1.add.text"/>
<i><s:text name="person.smallfont.add.text"/></i>
</s:if>
<s:else>
<s:set var="buttonText" value="getText('person.button.edit')"/>
<s:text name="person.h1.edit.text"/>
<s:text name="person.smallfont.edit.text"/>
</s:else>

我可以在xhtml页面中使用JSTL并按原样使用上面的代码,但是我看到了不同的方法,例如下面使用EL的方法。我不确定但不喜欢下面的方法
<h:outputLabel value="Add Information" rendered="#{!empty personBean.person.id}" />
<h:outputLabel value="Use the form below to add your information." rendered="#{!empty personBean.person.id}" />

<h:outputLabel value="Update Information" rendered="#{empty personBean.person.id}" />
<h:outputLabel value="Use the form below to edit your information." rendered="#{empty personBean.person.id}" />

我的问题:

请有人指导我如何在JSF项目的IF-ELSE条件下使用以上代码。使用EL/JSTL还是其他?

最佳答案

确实只是使用rendered属性。如有必要,您可以将其包装在根本不发出任何HTML的另一个组件中,例如<h:panelGroup><ui:fragment>,这样您就不需要在所有后续组件上重复相同的rendered条件。

<h:panelGroup rendered="#{not empty personBean.person.id}">
Add Information
<i>Use the form below to add your information.</i>
</h:panelGroup>
<h:panelGroup rendered="#{empty personBean.person.id}">
Update Information
<i>Use the form below to edit your information.</i>
</h:panelGroup>
请注意, <h:outputLabel>生成一个HTML <label>元素,该元素在语义上与您最初拥有的 <s:text>完全不同。您可能想改用 <h:outputText>或完全忽略它。 JSF2/Facelets仅支持纯文本,甚至支持模板文本中的EL,而无需 <h:outputText>
也可以看看:
  • Conditionally displaying JSF components
  • 关于jsf-2 - JSF格式的IF-ELSE条件。需要知道正确的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13591618/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com