我正在处理我的第一个 Web 元素并为其使用 PrimeFaces 组件套件。
我想在调整中心布局单元大小时触发调整大小事件。我已经尝试了代码,但是永远不会调用 bean 类中的方法。
我在这里做错了什么?如果我错了请纠正我?
<p:layout fullPage="true" resizeListner="#{resizeBean.handleResize}">
<p:layoutUnit id="top" position="north" resizable="true" size="20%">
<ui:insert name="header">
<ui:include src="Header.xhtml" />
</ui:insert>
</p:layoutUnit>
<p:layoutUnit id="bottom" styleClass="class-bottom" position="south"
resizable="true" size="25%">
<ui:insert name="footer">
<ui:include src="Footer.xhtml" />
</ui:insert>
</p:layoutUnit>
<p:layoutUnit id="left" styleClass="class-left" position="west"
resizable="true" size="24%">
<ui:insert name="tree">
<ui:include src="Tree.xhtml" />
</ui:insert>
</p:layoutUnit>
<p:layoutUnit id="addDlg" position="center">
<ui:insert>
<ui:include src="AddDevice.xhtml" />
</ui:insert>
</p:layoutUnit>
<p:layoutUnit id="center" position="center">
<ui:insert name="centerPage">
<ui:include src="Center.xhtml" />
</ui:insert>
</p:layoutUnit>
</p:layout>
这是bean类的代码
@ManagedBean(name = "resize")
public class ResizeBean implements Serializable {
private long width;
private long height;
public void handleResize(ResizeEvent event) {
width = event.getWidth();
height = event.getWidth();
System.out.println("in resize");
}
public long getWidth() {
return this.width;
}
public long getHeight() {
return this.height;
}
}
最佳答案
好吧,我不知道您使用的 PrimeFaces 的女巫版本,但是在 PrimeFaces 手册中找不到属性 resizeListener。您还为您的 bean 命名了 name
属性:
@ManagedBean(name = "resize")
因此,如果您想在您的 View 中使用它,请像这样引用您的名字:
#{resize.handleResize}
如果不使用name属性可以引用resizeBean。更多信息可以在这里找到:http://docs.oracle.com/javaee/6/api/javax/faces/bean/ManagedBean.html
要获取调整大小事件,请添加 <p:ajax>
在您的 View 中标记如下内容:
<p:ajax event="resize" listener="#{resize.handleResize}" />
现在添加 <h:form>
标记您的布局,一切都应该有效。
完整 View :
<h:form>
<p:layout fullPage="true">
<p:ajax event="resize" listener="#{resize.handleResize}" />
<p:layoutUnit id="top" position="north" resizable="true" size="20%">
<ui:insert name="header">
<ui:include src="Header.xhtml" />
</ui:insert>
</p:layoutUnit>
<p:layoutUnit id="bottom" styleClass="class-bottom" position="south"
resizable="true" size="25%">
<ui:insert name="footer">
<ui:include src="Footer.xhtml" />
</ui:insert>
</p:layoutUnit>
<p:layoutUnit id="left" styleClass="class-left" position="west"
resizable="true" size="24%">
<ui:insert name="tree">
<ui:include src="Tree.xhtml" />
</ui:insert>
</p:layoutUnit>
<p:layoutUnit id="addDlg" position="center">
<ui:insert>
<ui:include src="AddDevice.xhtml" />
</ui:insert>
</p:layoutUnit>
<p:layoutUnit id="center" position="center">
<ui:insert name="centerPage">
<ui:include src="Center.xhtml" />
</ui:insert>
</p:layoutUnit>
</p:layout>
<h:/form>
关于css - 在 PrimeFaces 中调整布局单元大小时处理调整大小事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18733626/