![](/img/trans.png)
[英]primefaces 3.2 menuItem bean variable not set on action
[英]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("losers")}"
要么
'#{equityBean.onType("losers")}'
第一脱报价,第二个使用的替代字符串分隔符( '
代替"
),因此它不会与字符串内的报价冲突
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.