java实现热敏打印机打印小票

// 以下是热敏打印机的开发步骤(只适用于IE浏览器)
1.下载BTP-2002CPV2.22.zip和POSOCX-V1.23.zip
2.安装
    POSOCX-V1.23.zip 是安装打印机
    BTP-2002CPV2.22.zip 是注册

3.jsp页面:
3.1 引入js文件(xxx.js指自己的posocx的js文件)

<script type="text/javascript" src="<%=basePath%>/xxx.js" charset="utf-8"></script>

3.2 在页面的最大的div的最后引入posocx对象(注册表中搜索posocx,clsid是注册号)

<div>
    <!-- 页面的内容 -->
    <object id="POSOCX" classid="clsid:自己的注册码"  width="0" height="0" align="center" hspace="0">
    </object>
</div>

3.3 调用方法:(打印上下联)

var posObj = document.getElementById("POSOCX");
//调用自己js文件中的打印方法// 这是***.js中的方法



结合dwz实现打印小票,则稍微复杂一些。

情境描述:

    form表单提交,后台操作成功后,dwz弹框操作成功,我们点击确定则退出。现在想要修改弹框信息(提示是否打印小票),并且弹框上有两个按钮,确定和取消。点击确定我们打印,取消不打印。

jsp页面:

<div class="pageContent">
    <form method="post" action="test.action?flag=${flag }"
        class="pageForm required-validate"
        onsubmit="return validateCallback1(this, test1);">
        <!-- 页面的内容 -->
    </form>
    <!-- 页面的内容 -->
    <object id="POSOCX" classid="clsid:自己的注册码"  width="0" height="0" align="center" hspace="0">
    </object>
</div>

js开发过程如下:
我们常用场景:
如form标签中加上属性:

onsubmit="return validateCallback(this, dialogAjaxDone);" 

表单提交处理后,会弹框显示操作成功。
分析dwz的源代码,发现dwz.ajax.js中的validateCallback方法有三个参数,

/**
 * 普通ajax表单提交
 * @param {Object} form
 * @param {Object} callback
 * @param {String} confirmMsg 提示确认信息
 */
function validateCallback(form, callback, confirmMsg) { // form 提交的表单对象,callback回调函数,confirmMsg是提示确认信息。
    var $form = $(form);

    if (!$form.valid()) {
        return false;
    }

    var _submitFn = function(){
        $.ajax({
            type: form.method || 'POST',
            url:$form.attr("action"),
            data:$form.serializeArray(),   // 此处是form表单的数据
            dataType:"json",
            cache: false,
            success: callback || DWZ.ajaxDone,  // 回调
            error: DWZ.ajaxError
        });
    }

    if (confirmMsg) {
        alertMsg.confirm(confirmMsg, {okCall: _submitFn});
    } else {
        _submitFn();
    }

    return false;
}

我们想要实现自己的功能,肯定需要传递自己的callback方法。
控制器中我们:

resp.getWriter().write("{\"message\":\"操作成功!\",\"navTabId\":\"main\",\"callbackType\":\"closeCurrent\",\"statusCode\":\"200\"}");

查看dwz的dialogAjaxDone源码:

/**
 * dialog上的表单提交回调函数
 * 当前navTab页面有pagerForm就重新加载
 * 服务器转回navTabId,可以重新载入指定的navTab. statusCode=DWZ.statusCode.ok表示操作成功, 自动关闭当前dialog
 * 
 * form提交后返回json数据结构,json格式和navTabAjaxDone一致
 */
function dialogAjaxDone(json){
    DWZ.ajaxDone(json);
    if (json[DWZ.keys.statusCode] == DWZ.statusCode.ok){
        if (json.navTabId){ // 重新加载页面
            navTab.reload(json.forwardUrl, {navTabId: json.navTabId});
        } else {
            var $pagerForm = $("#pagerForm", navTab.getCurrentPanel());
            var args = $pagerForm.size()>0 ? $pagerForm.serializeArray() : {}
            navTabPageBreak(args, json.rel);
        }
        if ("closeCurrent" == json.callbackType) { 
            $.pdialog.closeCurrent();
        }
        // 我们可以在这里写自己的代码。此处我们需要form表单中的数据,但是jquery取不到。怎么办?
        //我们想到了validateCallback方法,他帮我们提交数据,他里面绝对有form的数据。前面查看validateCallback方法源码已经知道。
    }
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值