前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用jquery-easyui写的CRUD插件(3)

使用jquery-easyui写的CRUD插件(3)

作者头像
cloudskyme
发布2018-03-19 18:12:46
1.2K0
发布2018-03-19 18:12:46
举报
文章被收录于专栏:cloudskyme

好,静态的页面已经可以完成了,下面就开始加上后台的处理部分。

查看easyui的API可以看到,如果需要后台支持的话,需要设置url属性,下面用java来做后台处理数据。

传输的格式用的是JSON,如果你还不知道JSON那么就去baidu一下好了。

后台现在只添加了struts和spring的支持,如果需要连接数据库那么添加上hibernate或者用jdbc等数据处理层的框架好了

好新建jsp页面,添加默认的编码格式为UTF-8

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

 设置默认路径

代码语言:javascript
复制
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setAttribute("basepath",basePath);
%>

 添加默认的css和必须的js包

代码语言:javascript
复制
    <link rel="stylesheet" type="text/css" href="${basepath}resources/default.css"/>
    <link rel="stylesheet" type="text/css" href="${basepath}resources/themes/default/easyui.css"/>
    <link rel="stylesheet" type="text/css" href="${basepath}resources/themes/icon.css">
    
    <script type="text/javascript" src="${basepath}resources/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="${basepath}resources/jquery.easyui.min.js"></script>
    <script type="text/javascript" src="${basepath}resources/jquery[1].json-1.3.min.js"></script>

 OK,现在可以开始写生成表格的程序了。

在$(function(){}中添加调用表格的程序

代码语言:javascript
复制
$('#tt').datagrid({
                title:'订购鉴权依赖设置',
                iconCls:'icon-save',
                width:500,
                height:200,
                nowrap: false,
                striped: true,
                collapsible:true,
                url:'${basepath}simulation/simulation.do?method=yilai',
                remoteSort: false,
                idField:'id',
                frozenColumns:[[
                    {field:'ck',checkbox:true},
                    {title:'id',field:'id',width:80}
                ]],
                columns:[
                    [
                        {title:'产品编号1',field:'key',width:160},
                        {title:'产品编号2',field:'value',width:160}
                    ]
                ],
                rownumbers:true
//                toolbar:[{
//                    id:'btncut',
//                    text:'删除',
//                    iconCls:'icon-cut',
//                    handler:function(){
//                        alert('del')
//                    }
//                }]
            });
        });

 要注意生成的数据的格式,是标准的JSON的格式。

将struts所使用的action配置到struts-config.xml中

在Action中调用的方法的内容如下:

代码语言:javascript
复制
    /**
     * 依赖性设置
     * 
     * @param map
     * @param form
     * @param req
     * @param res
     * @return
     * @throws Exception
     */
    public ActionForward huchi(ActionMapping map, ActionForm form,
            HttpServletRequest req, HttpServletResponse res) throws Exception {

        List<PropertyBean> l = simulationBO.propForGrid("huchi");
        JSONArray jsonArray = JSONArray.fromObject(l);

        String baseStr = "{\"total\":1,\"rows\":" + jsonArray.toString()
                + "}";

        outJsonUTFString(res, baseStr);
        return null;
    }

注意返回的值的内容,编码格式为UTF-8,看一下outJsonUTFString方法

代码语言:javascript
复制
    /**
     * dengwei add JSON数据输出
     * 
     * @param response
     * @param json
     */
    private void outJsonUTFString(HttpServletResponse response, String json) {
        // response.setContentType("text/javascript;charset=UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        try {
            outString(response, json);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

使用response的输出返回给调用的页面

代码语言:javascript
复制
    // 输出json格式数据
    private void outString(HttpServletResponse response, String str) {
        try {
            PrintWriter out = response.getWriter();
            // out.write(str);
            out.println(str);
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

其中使用net.sf.json.JSONArray来处理生成的json对象,将list中的内容格式化成页面上需要返回的json格式,当然也可以使用其它的工具类来完成。

下面把完整的jsp页面和要使用的几个类文件的源码贴上来吧

代码语言:javascript
复制
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setAttribute("basepath",basePath);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html:html>
<head>
	<base href="<%=basePath%>">
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>依赖设置</title>
	
	<link rel="stylesheet" type="text/css" href="${basepath}resources/default.css"/>
	<link rel="stylesheet" type="text/css" href="${basepath}resources/themes/default/easyui.css"/>
	<link rel="stylesheet" type="text/css" href="${basepath}resources/themes/icon.css">
	
	<script type="text/javascript" src="${basepath}resources/jquery-1.4.2.min.js"></script>
	<script type="text/javascript" src="${basepath}resources/jquery.easyui.min.js"></script>
	<script type="text/javascript" src="${basepath}resources/jquery[1].json-1.3.min.js"></script>

	<script>
		
		$(function(){
			$('#tt').datagrid({
				title:'订购鉴权依赖设置',
				iconCls:'icon-save',
				width:500,
				height:200,
				nowrap: false,
				striped: true,
				collapsible:true,
				url:'${basepath}simulation/simulation.do?method=yilai',
				remoteSort: false,
				idField:'id',
				frozenColumns:[[
	                {field:'ck',checkbox:true},
	                {title:'id',field:'id',width:80}
				]],
				columns:[
					[
						{title:'产品编号1',field:'key',width:160},
	                	{title:'产品编号2',field:'value',width:160}
					]
				],
				rownumbers:true
//				toolbar:[{
//					id:'btncut',
//					text:'删除',
//					iconCls:'icon-cut',
//					handler:function(){
//						alert('del')
//					}
//				}]
			});
		});
		
		function setProp(){
			$('#formId').form('submit',{
				url:"${basepath}simulation/simulation.do?method=modifyYilai",
				onSubmit:function(){},
				success:function(data){
					eval('data='+data);
					if (data.success){
						$.messager.alert('操作提示','操作成功!','info');
						$('#tt').datagrid('reload');
						$('#formId').form('clear');
					} else {
						$.messager.alert('错误',data.msg,'error');
					}
			    }
			});
		}

	</script>
</head>
<body>


		<html:form action="/simulation/simulation.do?method=setSimulation" styleId="formId">
			
			<div align="center">
				<table>
					<tr>
						<td align="left">产品编号1:</td>
						<td><input id="pbkey" type="text" name="pb.key" value=""/></td>
					</tr>
					<tr>
						<td align="left">产品编号2:</td>
						<td align="left"><input id="pbvalue" type="text" name="pb.value" value=""/></td>
					</tr>
				</table>
			</div>
			
			

		<div style="text-align:center;padding:5px;">
			<a href="javascript:void(0)" onclick="setProp()" id="btn-save" class="easyui-linkbutton" icon="icon-ok">设置</a>
		</div>
		
		<div align="center">
			<table id="tt"></table>
		</div>
		
		
		
		</html:form>
	
	
</body>
</html:html>

要使用的struts文件就自己配置一下吧

代码语言:javascript
复制
	<action-mappings>
		<action attribute="SimulationForm" input="/index.jsp"
			name="SimulationForm" path="/simulation/simulation" parameter="method"
			scope="request"
			type="org.springframework.web.struts.DelegatingActionProxy">
			<forward name="index" path="/views/vsopsimulation/index.jsp" />
			<forward name="crmindex" path="/views/crmsimulation/index.jsp" />
		</action>

	</action-mappings>

 接下来是Action中的代码可以在上边找一下

然后是逻辑类中的代码文件

代码语言:javascript
复制
public List<PropertyBean> propForGrid(String type){
		List<PropertyBean> l = new ArrayList<PropertyBean>();
		String value = "";
		if("yilai".equals(type)){
			value = ConfigParser.get("yilai_list");
		}else{
			value = ConfigParser.get("huchi_list");
		}
		if(value.length()>0){
			String[] str = value.split(";");
			for (int i = 0; i < str.length; i++) {
				String[] kvStr = str[i].split(",");
				PropertyBean prob = new PropertyBean();
				prob.setId(i);
				prob.setKey(kvStr[0]);
				prob.setValue(kvStr[1]);
				l.add(prob);
			}
		}
		return l;
	}

好了,看一下运行的效果吧,这个工程中没有加上分页,因为数据量不大。

如果有需要源码的我可以把源码分享出来,下一步会完成在产品编号1和产品编号2中添加值后在列表中动态显示。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-10-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档