ofbiz实战5——创建学期管理新建和编辑页面

下面是实现的学期管理的编辑界面(新增和编辑在一起了实现了):


学期名称因为是主键,所以学期名称不能修改,只能作废,然后新增一个学期记录。

具体实现代码如下:

1. 配置controller.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://ofbiz.apache.org/Site-Conf" xsi:schemaLocation="http://ofbiz.apache.org/Site-Conf http://ofbiz.apache.org/dtds/site-conf.xsd">

    <include location="component://common/webcommon/WEB-INF/common-controller.xml"/>
    <include location="component://common/webcommon/WEB-INF/portal-controller.xml"/>

    <description>Booking Component Site Configuration File</description>

    <!-- Request Mappings -->
    <request-map uri="main"><security https="true" auth="true"/><response name="success" type="view" value="main"/></request-map>
	
	<!-- ================ Term Requests ================= -->
    <request-map uri="FindTerm">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="FindTerm"/>
    </request-map>
	

    <request-map uri="EditTerm">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="EditTerm"/>
    </request-map>

    <request-map uri="createTerm">
        <security https="true" auth="true"/>
        <event type="service"  invoke="createTerm"/>
        <response name="success" type="view" value="EditTerm"/>
        <response name="error" type="view" value="EditTerm"/>
    </request-map>
	
    <request-map uri="updateTerm">
        <security https="true" auth="true"/>
        <event type="service"  invoke="updateTerm"/>
        <response name="success" type="view" value="EditTerm"/>
        <response name="error" type="view" value="EditTerm"/>
    </request-map>

    <!-- View Mappings -->
	<view-map name="main" type="screen" page="component://booking/widget/booking/BookingScreens.xml#main"/>
    <view-map name="FindTerm" type="screen" page="component://booking/widget/term/TermScreens.xml#FindTerm"/>
	<view-map name="EditTerm" type="screen" page="component://booking/widget/term/TermScreens.xml#EditTerm"/>
	
</site-conf>

2. 配置TermScreens.xml

	<screen name="EditTerm">
        <section>
            <actions>
                <set field="titleProperty" value="TermManange"/>
                <set field="headerItem" value="TermManange"/>
				<!--<set field="termName" value="${parameters.termName}"/>-->
				<entity-one entity-name="Term" value-field="term"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonBookingDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
						<container style="button-bar">
							<link target="FindTerm" text="${uiLabelMap.CommonBack}" style="buttontext"/>
						</container>
                        <screenlet title="${groovy: parameters.termName ? uiLabelMap.CommonEdit : uiLabelMap.CommonAdd}">
                            <include-form name="EditTerm" location="component://booking/widget/term/TermForms.xml"/>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>


3. 配置TermForms.xml

	<form name="EditTerm" target="updateTerm" title="" type="single" header-row-style="header-row" 
		default-table-style="basic-table" default-map-name="term" default-entity-name="Term">
		<alt-target use-when="term==null" target="createTerm"/>
		<auto-fields-service service-name="updateTerm" map-name=""/>
		<field use-when="term!=null" name="termName" title="${uiLabelMap.TermTermName}" tooltip="${uiLabelMap.BookingNotModification}." ><display/></field>
        <field use-when="term==null" name="termName" title="${uiLabelMap.TermTermName}" required-field="true"><text size="20" maxlength="20" /></field>
        <field name="beginTime" title="${uiLabelMap.TermBeginTime}" required-field="true"><date-time type="date" /></field>
		<field name="endTime" title="${uiLabelMap.TermEndTime}" ><date-time type="date" /></field>
        <field name="used" title="${uiLabelMap.TermUsed}">
            <drop-down allow-empty="false" no-current-selected-key="Y">
				<option key="Y" description="${uiLabelMap.CommonYes}"/>
                <option key="N" description="${uiLabelMap.CommonNo}"/>
            </drop-down>
        </field>
        <field name="submitButton" title="${uiLabelMap.CommonSubmit}">
			<submit/>
		</field>
    </form>

4. 配置BookingUiLabels.xml

	<property key="BookingNotModification">
        <value xml:lang="en">BookingNotModification</value>
        <value xml:lang="zh">不能修改</value>
    </property>
BookingEntityLabels.xml配置暂时随便配一条记录,否则不能正常使用auto-fields-service标签。
这样页面就完成。感觉配置起来很简单,不用自己写太多的代码,只要配置好后,相关逻辑就自动实现了。

5.总结

学习了auto-fields-service标签的使用。

学习了field标签use-when和required-field属性的使用。

学习了下拉框控件和日期控件的使用,以及drop-down标签的allow-empty和no-current-selected-key属性的使用。

学会配置【后退】按钮。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值