我正在使用JSF创建简单的应用程序。 这是我在数据库中添加项目的简单形式:
<composite:interface>
<composite:attribute name="product" required="true" type="dk.xakeps.web.models.Product"/>
</composite:interface>
<composite:implementation>
<c:set value="#{cc.attrs.product.localizedProducts[facesContext.viewRoot.locale]}" var="localizedProduct"/>
<b:form id="modalForm">
<b:label for="title" value="#{msg['product.edit.title']}"/>
<b:inputText id="title" value="#{localizedProduct.title}"/>
<b:label for="description" value="#{msg['product.edit.description']}"/>
<b:inputTextarea id="description" value="#{localizedProduct.description}"/>
<b:label for="price" value="#{msg['product.edit.price']}"/>
<b:message for="price"/>
<b:inputText id="price" value="#{localizedProduct.price}"/>
<b:commandButton action="#{productBean.saveProduct(cc.attrs.product, localizedProduct)}" value="#{msg['product.save']}"/>
</b:form>
</composite:implementation>
错误localizedProduct
传递给productBean.saveProduct
,传递的实例不为空,但为空。
以下是我在模板中获取Product
实例的方法:
<c:set value="#{productBean.getNewProduct()}" var="product"/>
<b:modal styleClass="addModal">
<custom:editProduct product="${product}"/>
</b:modal>
LocalizedProduct
有4个字段:标题,说明,价格和区域设置。只有区域设置不为空,其他字段为空。在表单提交上,LocalizedProduct
已填充,但saveProduct
已调用空实例。