ManagedBean 未声明 [=10=] 无参数构造函数
ManagedBean doesn't declare a public no-argument constructor
我正在使用 PrimeFaces 5.0 并想在点击事件后在弹出框中创建 <p:treeTable>
但它显示以下错误
Unable to create managed bean popupTreeTableManagedBean
. The following
problems were found: - Managed bean class
beans.PopupTreeTableManagedBean
for managed bean
popupTreeTableManagedBean
doesn't declare a public no-argument
constructor. - Managed bean class beans.PopupTreeTableManagedBean
for
managed bean popupTreeTableManagedBean
doesn't declare a public
no-argument constructor.
这是我的代码片段
index.xhtml:
<p:dialog header="" widgetVar="dlg1" minHeight="200">
<p:treeTable value="#{popupTreeTableManagedBean.root}" var="node" style="" >
<p:column>
<f:facet name="header">Name</f:facet>
<h:outputText value="#{node.name}"></h:outputText>
</p:column>
<p:column>
<f:facet name="header">Value</f:facet>
<h:inputText value="#{node.value}" style="border-style: hidden;"/>
</p:column>
</p:treeTable>
</p:dialog>
PopupTreeTableManagedBean.java
@ManagedBean
@SessionScoped
public class PopupTreeTableManagedBean {
private TreeNode root = new DefaultTreeNode("Root Node", null);
List<String> selectedParams;
TreeNode scanParamsRoot = null;
PopupTreeTableManagedBean() {
selectedParams = GenrateScanList.getParamList();
createRootAndLeafNodes();
}
private TreeNode createRootAndLeafNodes() {
TreeNode scanSubRoot = null;
int size = selectedParams.size();
TreeNode scanRoot = new DefaultTreeNode(new Document("scanParams", ""), this.root);
scanSubRoot = new DefaultTreeNode(new Document("Sub Root", ""), scanRoot);
Document relationshipValue = new Document("Hi", "");
TreeNode documentss06 = new DefaultTreeNode(relationshipValue, scanSubRoot);
return root;
}
private DefaultTreeNode getTreeNodeObject() {
return new DefaultTreeNode();
}
private Document getDocumentObject() {
return new Document(null, null);
}
public TreeNode getRoot() {
return root;
}
public void setRoot(TreeNode root) {
this.root = root;
}
}
错误消息说您需要一个 public
构造函数,但您的构造函数是 package private。添加 public
关键字应该会有所帮助。
我正在使用 PrimeFaces 5.0 并想在点击事件后在弹出框中创建 <p:treeTable>
但它显示以下错误
Unable to create managed bean
popupTreeTableManagedBean
. The following problems were found: - Managed bean classbeans.PopupTreeTableManagedBean
for managed beanpopupTreeTableManagedBean
doesn't declare a public no-argument constructor. - Managed bean classbeans.PopupTreeTableManagedBean
for managed beanpopupTreeTableManagedBean
doesn't declare a public no-argument constructor.
这是我的代码片段
index.xhtml:
<p:dialog header="" widgetVar="dlg1" minHeight="200">
<p:treeTable value="#{popupTreeTableManagedBean.root}" var="node" style="" >
<p:column>
<f:facet name="header">Name</f:facet>
<h:outputText value="#{node.name}"></h:outputText>
</p:column>
<p:column>
<f:facet name="header">Value</f:facet>
<h:inputText value="#{node.value}" style="border-style: hidden;"/>
</p:column>
</p:treeTable>
</p:dialog>
PopupTreeTableManagedBean.java
@ManagedBean
@SessionScoped
public class PopupTreeTableManagedBean {
private TreeNode root = new DefaultTreeNode("Root Node", null);
List<String> selectedParams;
TreeNode scanParamsRoot = null;
PopupTreeTableManagedBean() {
selectedParams = GenrateScanList.getParamList();
createRootAndLeafNodes();
}
private TreeNode createRootAndLeafNodes() {
TreeNode scanSubRoot = null;
int size = selectedParams.size();
TreeNode scanRoot = new DefaultTreeNode(new Document("scanParams", ""), this.root);
scanSubRoot = new DefaultTreeNode(new Document("Sub Root", ""), scanRoot);
Document relationshipValue = new Document("Hi", "");
TreeNode documentss06 = new DefaultTreeNode(relationshipValue, scanSubRoot);
return root;
}
private DefaultTreeNode getTreeNodeObject() {
return new DefaultTreeNode();
}
private Document getDocumentObject() {
return new Document(null, null);
}
public TreeNode getRoot() {
return root;
}
public void setRoot(TreeNode root) {
this.root = root;
}
}
错误消息说您需要一个 public
构造函数,但您的构造函数是 package private。添加 public
关键字应该会有所帮助。