网上介绍的关于Ofbiz的curd大多是java写的,有点过于繁杂.这里介绍的是minilang书写的简单crud,相比java书写的十分快速简单,页面上关于表单,就不再赘述.
一.controller.xml请求的配置
<request-map uri="createNoteSmart">
<security auth="true" https="false" />
<event type="service" invoke="createNoteSmart" />
<response name="success" type="request-redirect-noparam" value="FindNoteSmart" />
<response name="error" type="view" value="EditNoteSmart" />
</request-map>
<request-map uri="updateNoteSmart">
<security auth="true" https="false" />
<event type="service" invoke="updateNoteSmart" />
<response name="success" type="request-redirect-noparam" value="FindNoteSmart" />
<response name="error" type="view" value="EditNoteSmart" />
</request-map>
<request-map uri="deleteNoteSmart">
<security auth="true" https="false" />
<event type="service" invoke="deleteNoteSmart" />
<response name="success" type="request-redirect-noparam" value="FindNoteSmart" />
</request-map>
二.services.xml请求的配置
<service name="createNoteSmart" default-entity-name="Note" engine="simple" auth="true"
invoke="createNote" location="component://note/script/net/ecpt/note/NoteServices.xml">
<description>Create a Note</description>
<auto-attributes include="pk" mode="INOUT" optional="true" />
<auto-attributes include="nonpk" mode="IN" optional="true" />
</service>
<service name="updateNoteSmart" default-entity-name="Note" engine="simple" auth="true"
invoke="updateNote" location="component://note/script/net/ecpt/note/NoteServices.xml">
<description>Update a Note</description>
<auto-attributes include="pk" mode="IN" optional="false" />
<auto-attributes include="nonpk" mode="IN" optional="true" />
</service>
<service name="deleteNoteSmart" default-entity-name="Note" engine="simple" auth="true"
invoke="deleteNote" location="component://note/script/net/ecpt/note/NoteServices.xml">
<description>Delete Note</description>
<auto-attributes include="pk" mode="IN" optional="false" />
</service>
三.script下minilang文件的配置文件格式如:NoteServices.xml.
<simple-method method-name="createNote" short-description="create Note" login-required="true">
<make-value value-field="entity" entity-name="Note" />
<set-pk-fields value-field="entity" map="parameters" />
<if>
<condition>
<if-empty field="parameters.noteId"></if-empty>
</condition>
<then>
<sequenced-id sequence-name="Note" field="entity.noteId" />
</then>
</if>
<set-nonpk-fields value-field="entity" map="parameters" />
<create-value value-field="entity" />
</simple-method>
<simple-method method-name="updateNote" short-description="Update an Note" login-required="true">
<entity-one entity-name="Note" value-field="entity">
<field-map field-name="noteId" from-field="parameters.noteId" />
</entity-one>
<set-nonpk-fields map="parameters" value-field="entity" />
<store-value value-field="entity" />
</simple-method>
<simple-method method-name="deleteNote" short-description="Delete Note" login-required="true">
<entity-one entity-name="Note" value-field="entity">
<field-map field-name="noteId" from-field="parameters.noteId" />
</entity-one>
<remove-value value-field="entity" />