Fixed issue where include-form tag failed when referencing a grid
(OFBIZ-13290)
diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/FormFactory.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/FormFactory.java
index 2a7e8f3..81ca151 100644
--- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/FormFactory.java
+++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/FormFactory.java
@@ -146,13 +146,20 @@
rootElement = UtilXml.firstChildElement(rootElement, "forms");
}
Element formElement = UtilXml.firstChildElement(rootElement, "form", "name", formName);
+ if (formElement == null) {
+ // look for grid definition
+ formElement = UtilXml.firstChildElement(rootElement, "grid", "name", formName);
+ }
+ if (formElement == null) {
+ throw new IllegalArgumentException("Could not find form with name [" + formName + "] in class resource [" + formLocation + "]");
+ }
return createModelForm(formElement, entityModelReader, visualTheme, dispatchContext, formLocation, formName);
}
public static ModelForm createModelForm(Element formElement, ModelReader entityModelReader, VisualTheme visualTheme,
DispatchContext dispatchContext, String formLocation, String formName) {
String formType = formElement.getAttribute("type");
- if (formType.isEmpty() || "single".equals(formType) || "upload".equals(formType)) {
+ if ("form".equals(formElement.getTagName()) && (formType.isEmpty() || "single".equals(formType) || "upload".equals(formType))) {
return new ModelSingleForm(formElement, formLocation, entityModelReader, visualTheme, dispatchContext);
}
return new ModelGrid(formElement, formLocation, entityModelReader, visualTheme, dispatchContext);