我在使用Primefaces 3.2和JSF 2.1时遇到了一些麻烦。
我的代码是这样的:
<p:toolbar id="jeditortoolbar" styleClass="jeditortoolbar">
<p:toolbarGroup align="left" height="25" style="height:25px">
<p:commandButton type="button" title="#{msg.beenden}"/>
<p:commandButton type="button" title="#{msg.neu}"/>
</p:toolbarGroup>
</p:toolbar>
当我看看Primefaces Showcase时,我的p:commandButton需要
actionListener="#{myBean.myActionMethod}"
我的Bean需要像
这样的方法public void myActionMethod(){}
我的h:form
标记周围有p:toolbar
!
我的Bean是ViewScoped。
我的解决方法是
在*.xhtml
文件
<p:commandButton type="button" title="#{msg.neu}" onclick="addNewEmptyFile()"/>
<p:remoteCommand name="addNewEmptyFile" update=":codeTabForm">
<f:setPropertyActionListener value="#{true}" target="#{myBean.myEvent}"/>
</p:remoteCommand>
在MyBean.java中
private String myEvent;
public void setMyEvent(String value){ myActionMethod();}
这对我有用,但我认为这是非常脏的代码。
每个人都可以帮助我吗?
答案 0 :(得分:12)
试试这个
<强> Bean.java 强>
@ManagedBean
@ViewScoped
public class Bean {
public String testButtonAction() {
System.out.println("testButtonAction invoked");
return "anotherPage.xhtml";
}
public void testButtonActionListener(ActionEvent event) {
System.out.println("testButtonActionListener invoked");
}
}
page.xhtml
<p:toolbar>
<p:toolbarGroup>
<p:commandButton action="#{bean.testButtonAction}"/>
<p:commandButton actionListener="#{bean.testButtonActionListener}"/>
</p:toolbarGroup>
</p:toolbar>