ssh+dwr 的使用源码案例
加入dwr.jar包
======jsp===============
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page import="javax.smartcardio.ATR"%>
<%@page import="java.util.LinkedHashMap"%>
<%@page import="java.util.HashMap"%>
<%@page import="com.lhwebcrm.commons.DataCommonFunction"%>
<%@page import="com.lhwebcrm.commons.CommonFunction"%>
<%@page import="com.lhwebcrm.bean.Xskhfl"%>
<%@page import="java.util.List"%>
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>客户关系管理系统-客户类型界面</title>
<c:set value="${pageContext.request.contextPath}" var="path"
scope="page" />
<!-- jquery,iframe不能使用主框架中已导入的js和css,所以必须在这里还要引入一次 -->
<script type="text/javascript"
src="${path}/js/jquery/jquery-1.7.2.min.js"></script>
<!-- 本模块具体的js -->
<script type="text/javascript"
src="${path}/js/qrykcsp.js?v=1.0" charset="utf-8"></script>
<!-- 如果有公用css,需要再此引入 -->
<!-- 模块具体的css -->
<link rel="stylesheet" type="text/css"
href="${path}/css/qrykcsp.css" />
<!-- .js固定写法 -->
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<!-- .js名称与dwr.XML配置名称一样 -->
<script type="text/javascript" src="dwr/interface/dwrQryKcspData.js"></script>
</head>
<body>
<div id="divMainContent">
<!-- bom属性 -->
<input type="hidden" id="hidbom_option" value=""/>
<!-- 价格类型 -->
<input type="hidden" id="hidpricetype" value="${pricetype}" />
<!-- 单据类型 -->
<input type="hidden" id="hidbilltype" value="${billtype}"/>
<!-- 是否可以多选 -->
<input type="hidden" id="hidismul" value="<%=ismul%>"/>
<!-- 条件区域 -->
<div id="divSearchArea">
关键字
<input type="text" id="txtKeyWord" value="${keyword}"/>
品牌
<input type="text" id="txtGuid_brand" value="${brandname}" hint="${guid_brand}"/>
<input type="checkbox" id="chkrslttype" checked="checked"/>高级查询
<br/>
编码
<input type="text" id="txtAcode"/>
名称
<input type="text" id="txtAname"/>
类型
<input type="text" id="txtKindname"/>
型号规格
<input type="text" id="txtAmodel"/>
<input type="checkbox" id="chkzero" /><span id="spanchkzero">包含零库存</span>
<br/>
标准型号
<input type="text" id="txtAmodel_param"/>
库位
<input type="text" id="txtGuid_place" value="${placename}" hint="${guid_place}"/>
<input type="radio" name="grpbomoption" id="radioAll" value="" checked="checked" onclick="setBomOptionValue(this.value);"/>全部
<input type="radio" name="grpbomoption" id="radioMaterial" value="材料" onclick="setBomOptionValue(this.value);"/>材料
<input type="radio" name="grpbomoption" id="radioHalfProduct" value="半成品" onclick="setBomOptionValue(this.value);"/>半成品
<input type="radio" name="grpbomoption" id="radioProduct" value="成品" onclick="setBomOptionValue(this.value);"/>成品
<input type="button" id="btnQuery" value="查询"/>
</div>
<TABLE class="tblresultM" id="tblresultM">
<THEAD id="tblresultHead">
</thead>
</table>
<TBODY id="tblresultBody">
==================js=========================
$j(function() {
// 查询方法
var pxxh = 0;
var ismul = "false";
ismul = $j("#hidismul").attr("value");
function getQryKcspList() {
var data;
data = {
"keyword" : $j("#txtKeyWord").attr("value"),// 关键字
"pricetype" : $j("#hidpricetype").attr("value"),// 价格类型
"rslttype" : $j("#chkrslttype").attr("checked"),// 人性化查询
"rsltqty" : $j("#chkzero").attr("checked"),// 带数量
"guid_brand" : $j("#txtGuid_brand").attr("hint"),
"brandname" : $j("#txtGuid_brand").attr("value"),
"acode" : $j("#txtAcode").attr("value"),
"aname" : $j("#txtAname").attr("value"),
"kindname" : $j("#txtKindname").attr("value"),
"amodel" : $j("#txtAmodel").attr("value"),
"amodel_param" : $j("#txtAmodel_param").attr("value"),
"guid_place" : $j("#txtGuid_place").attr("hint"),
"placename" : $j("#txtGuid_place").attr("value"),
"bom_option" : $j("#hidbom_option").attr("value"),
"billtype" : $j("#hidbilltype").attr("value")
};
dataResult = new Array();
dwrQryKcspData.getQryKcspResultByWhere(data, userListCallBack);// 调用查询的方法
pxxh = 0;
}
var map;
// 查询后的回调函数获取list(resultTabelCallBack)
function userListCallBack(resultTabelCallBack) {
if (resultTabelCallBack.length <= 0) {
DWRUtil.removeAllRows("tblresultBody");
return;
}
map = resultTabelCallBack[0];
DWRUtil.removeAllRows("tblresultHead");
//DWRUtil.addRows("tblresultHead", resultTabelCallBack, cellFun1);
var trHead = document.createElement("tr");
var tdselect = document.createElement("td");
tdselect.innerHTML = "选择";
trHead.appendChild(tdselect);
var tdxh = document.createElement("td");
tdxh.innerHTML = "序号";
trHead.appendChild(tdxh);
for ( var key in map) {
var td = document.createElement("td");
td.innerHTML = key;
if (key.indexOf("guid") >= 0) {
td.style.display = "none";
}
trHead.appendChild(td);
}
document.getElementById("tblresultHead").appendChild(trHead);
DWRUtil.removeAllRows("tblresultBody");
for ( var i = 0; i < resultTabelCallBack.length; i++) {
var mapchild = resultTabelCallBack[i];
var trbody = document.createElement("tr");
var tdselect = document.createElement("td");
if (ismul == "false") {
tdselect.innerHTML = "<input type='radio' name='radioselect'/>";
} else {
tdselect.innerHTML = "<input type='checkbox' name='chkselect'/>";
}
trbody.appendChild(tdselect);
var tdxh = document.createElement("td");
tdxh.innerHTML = i + 1;
trbody.appendChild(tdxh);
for ( var key in map) {
var td = document.createElement("td");
if (mapchild[key] != null && mapchild[key] != "null") {
td.innerHTML = mapchild[key];
} else {
td.innerHTML = "";
}
td.setAttribute("fldname", key);
if (key.indexOf("guid") >= 0) {
td.style.display = "none";
}
trbody.appendChild(td);
}
trbody.className = "trResult";
trbody.onclick = function() {
trResultClick(this.rowIndex);
};
document.getElementById("tblresultBody").appendChild(trbody);
}
}
// 查询
$j("#btnQuery").click(function() {
getQryKcspList();
});
=========action=====================
// 通用商品查询
public String getQryKcspResult(){
try {
String selAcode = request.getParameter("selacode");//确定该使用什么查询语句
String keyword = request.getParameter("keyword");//关键字
String ismul = request.getParameter("ismul");//是否可以多选
String pricetype = request.getParameter("pricetype");//价格类型
String bkc = request.getParameter("bkc");//是否包含零库存
keyword = new String(keyword.getBytes("ISO-8859-1"),"GBK");
System.out.println(selAcode);
System.out.println(keyword);
List<LinkedHashMap<String, String>> lsqls = DataCommonFunction.getResultData("select wheresql from syskeyfield where acode='"+selAcode+"'");
String lsqltmp = "";
if (lsqls.size()>0) {
lsqltmp = lsqls.get(0).get("wheresql").toString();
}
System.out.println(lsqltmp);
lsqltmp = lsqltmp.replaceAll("\\'\\[value\\]\\'", "");
lsqltmp = lsqltmp.replaceAll("exec", "");
System.out.println(lsqltmp);
StringBuffer lsql = new StringBuffer();
lsql.append("{call ").append(lsqltmp).append("(@keyword='").append(keyword).append("')").append("}");
System.out.println(lsql.toString());
qrykcsps = DataCommonFunction.getResultData(lsql.toString());
System.out.println(qrykcsps.toString());
List<LinkedHashMap<String,String>> xsbrandmanagements = DataCommonFunction.getResultData("select aguid,aname from xsbrandmanagement order by aname");
List<LinkedHashMap<String,String>> kcplaces = DataCommonFunction.getResultData("select aguid,aname from kcplace order by aname");
if (keyword!=null && !"".equals(keyword) && !"null".equals(keyword)) {
if(keyword.indexOf("|")<0){
request.setAttribute("keyword", keyword);
}else{
String[] astr = keyword.split("|");
//品牌
if(astr[0]!=null && !"".equals(astr[0])){
request.setAttribute("guid_brand", astr[0]);
String brandname = DataCommonFunction.getFld0Value("select top 1 aname from xsbrandmanagement where aguid='"+astr[0]+"'");
request.setAttribute("brandname", brandname);
}
//库位
if(astr[1]!=null && !"".equals(astr[1])){
request.setAttribute("guid_place", astr[1]);
String placename = DataCommonFunction.getFld0Value("select top 1 aname from kcplace where aguid='"+astr[1]+"'");
request.setAttribute("placename", placename);
}
//区域经理
if(astr[2]!=null && !"".equals(astr[2])){
}
//单据类型
if(astr[3]!=null && !"".equals(astr[3])){
request.setAttribute("billtype", astr[3]);
}
//剩下 的关键字
if(astr[4]!=null && !"".equals(astr[4])){
request.setAttribute("keyword", astr[4]);
}
}
}
request.setAttribute("XSBRANDMANAGEMENTS", xsbrandmanagements);
request.setAttribute("KCPLACES", kcplaces);
request.setAttribute("ISMUL", ismul);
request.setAttribute("pricetype", pricetype);
request.setAttribute("bkc", bkc);
} catch (Exception e) {
e.printStackTrace();
return "error";
}
return "qrykcsp";
}
=====dwr.xml===============
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create javascript="dwrQryKcspData" creator="spring">
<param name="beanName" value="commonActionBean"></param>
</create>
<convert match="com.lhwebcrm.bean.*" converter="bean"></convert>
</allow>
</dwr>
=============web。xml=====================
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>webCRM</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<!-- dwr -->
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
ssh+dwr 的使用源码案例的更多相关文章
- Shiro学习笔记总结,附加" 身份认证 "源码案例(一)
Shiro学习笔记总结 内容介绍: 一.Shiro介绍 二.subject认证主体 三.身份认证流程 四.Realm & JDBC reaml介绍 五.Shiro.ini配置介绍 六.源码案例 ...
- Appium+python自动化17-启动iOS模拟器APP源码案例
前言 上一篇已经可以启动iOS模拟器上的safari浏览器了,启动app比启动浏览器要复杂一点,本篇以github上的源码为案例详细介绍如何启动iOS模拟器的app 一.clone源码 1.githu ...
- Appium+python自动化17-启动iOS模拟器APP源码案例【转载】
前言 上一篇已经可以启动iOS模拟器上的safari浏览器了,启动app比启动浏览器要复杂一点,本篇以github上的源码为案例详细介绍如何启动iOS模拟器的app 一.clone源码 1.githu ...
- 阿里高级架构师教你使用Spring JMS处理消息事务源码案例
消费者在接收JMS异步消息的过程中会发生执行错误,这可能会导致信息的丢失.该源码展示如何使用本地事务解决这个问题.这种解决方案可能会导致在某些情况下消息的重复(例如,当它会将信息储存到数据库,然后监听 ...
- 开源电影项目源码案例重磅分析,一套代码发布小程序、APP平台多个平台
uni-app-Video GitHub地址:https://github.com/Tzlibai/uni-app-video 一个优秀的uni-app案例,旨在帮助大家更快的上手uni-app,共同 ...
- 使用 IDEA 创建 SpringBoot 项目(详细介绍)+ 源码案例实现
使用 IDEA 创建 SpringBoot 项目 一.SpringBoot 案例实现源码 二.SpringBoot 相关配置 1. 快速创建 SpringBoot 项目 1.1 新建项目 1.2 填写 ...
- SSH 之 Spring的源码(一)——Bean加载过程
看看Spring的源码,看看巨人的底层实现,拓展思路,为了更好的理解原理,看看源码,深入浅出吧.本文基于Spring 4.0.8版本. 首先Web项目使用Spring是通过在web.xml里面配置 o ...
- 微信小程序源码案例大全
微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo: ...
- uni-app高分开源电影项目源码案例分析,支持一套代码发布小程序、APP平台多个平台(前端入门必看)
uni-app-Video 一个优秀的uni-app案例,旨在帮助大家更快的上手uni-app,共同进步! Features 代码编写简洁,注释清晰,快速入门必备: 支持在线模糊搜索: 程序类目懒 ...
随机推荐
- Android程序架构基本内容概述
在Android操作系统中开发的应用程序都有一个结构缜密的架构.我们今天就来对这一Android程序架构做一个详细的分析.帮助大家了解程序开发的特点,以方便将来在应用程序开中明确自己的程序架构. An ...
- Heritrix源码分析(十三) Heritrix的控制中心(大脑)CrawlController(二)
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/650744 本博客已迁移到本人独立博客: http://www.yun5u. ...
- SmartWeatherAPI_Lite_WebAPI C# 获取key加密
中国气象局面向网络媒体.手机厂商.第三方气象服务机构等用户,通过 web 方式提供数据气象服务的官方载体. 在一周前已经申请到appid,但是苦于没有C#版的key 的算法,一直验证不通过,经过几天查 ...
- library cache lock和cursor: pin S wait on X等待
1.现象: 客户10.2.0.4 RAC环境,出现大量的library cache lock和cursor: pin S wait on X等待,经分析是由于统计信息收集僵死导致的.数据库在8点到9点 ...
- android studio开发工具的android library打包文件(.aar)本地引用
by 蔡建良 2014-5-13 关键点: 利用Gradle发布本地maven库支持android library 打包文件(*.aar) 的本地引用 开发环境: windows7 64位操作系统 a ...
- Unicode和汉字编码小知识
Unicode和汉字编码小知识 将汉字进行UNICODE编码,如:“王”编码后就成了“\王”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的 ...
- [再寄小读者之数学篇](2014-11-19 $\sin x/x$ 在 $(0,\pi/2)$ 上递增)
$$\bex \frac{\sin x}{x}\nearrow. \eex$$ Ref. [Proof Without Words: Monotonicity of $\sin x/x$ on $(0 ...
- Android无限级树状结构
通过对ListView简单的扩展.再封装,即可实现无限层级的树控件TreeView. package cn.asiontang.nleveltreelistview; import android.a ...
- margin四个元素的顺序
如果margin给的是四个值比如:margin:0px 0px 0px 0px;代表:margin: top right bottom left代表从上右下左,顺时针方向.如果margin给的是三个值 ...
- Tcl之load
做一个ASIC项目,基本结构是MCU+ROM+RAM.目前想把单片机程序下载到ROM中,然后在ModelSim中仿真程序,得到运行结果.好二哥给出的Tcl下载文件如下,细细研读中... puts &q ...