繁体   English   中英

primefaces 3.2 menuItem错误

[英]primefaces 3.2 menuItem error

我有3种形式,每种形式都有包含数据表的组件。 我希望将它们组合成一个表单(因为每个表单都包含相同的UI组件集)。 我想到了为此目的使用<p:menu> <p:menu>带有3个menuItems,并且单击每个项目时,应呈现适当的表单内容。 但是当我指定<p:menu>的action属性时,出现以下错误:

元素类型“ p:menuitem”之后必须是属性规范“>”或“ />”。

xhtml代码:

<h:form id="frm">
  <p:menu>
    <p:menuitem value="price losers" action="#{equityBean.onType("losers")}"/>
    <p:menuitem  value="price gainers"/>
    <p:menuitem  value="price volume"/>
  </p:menu>
  <p:tabView activeIndex="#{equityBean.activeIndex}">
    <p:ajax event="tabChange" listener="#{equityBean.onChange}" update=":frm"/>
    <p:tab title="NSE">                   

      <p:dataTable value="#{equityBean.scripList}" var="scrip">
        ....                        
      </p:dataTable>
    </p:tab>
    <p:tab title="BSE">
      <p:dataTable value="#{equityBean.scripList}" var="scrip">
        .....
      </p:dataTable>
    </p:tab>
  </p:tabView>
</h:form>

豆代码:

public void onType(String type)
{
    this.type=type;
}

public List<MasterScrip> getScripList() {

   if(type.equalsIgnoreCase("losers"))
   {
    scripList=new ArrayList<MasterScrip> ();
    scripList=getScripByPriceLosers(exchange);
    return scripList;
   }
   else if(type.equalsIgnoreCase("gainers"))
   {
    scripList=new ArrayList<MasterScrip> ();
    scripList=getScripByPriceLosers(exchange);
    return scripList;
   }
   else
   {
    scripList=new ArrayList<MasterScrip> ();
    scripList=getScripByVolumeType(exchange);
    return scripList;
   }
}

我在哪里弄错了?

您需要对字符串中的引号进行转义。 具体来说,

"#{equityBean.onType("losers")}"

无效,因为将"#{equityBean.onType(" )解析为值,然后解析器出现错误,因为losers不是有效的延续

你需要写

"#{equityBean.onType(&quot;losers&quot;)}"

要么

'#{equityBean.onType("losers")}'

第一报价,第二个使用的替代字符串分隔符( '代替" ),因此它不会与字符串内的报价冲突

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM