仍然使用之前的XML文件,然后设置生成参数如下:

生成调整后的页面如下:

生成的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ConfirmationForPayment.ascx.cs"
    Inherits="NBShop.UserControls.Form.ConfirmationForPayment" EnableViewState="true" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<script type="text/javascript">
    var valCss = '';
    function showMsg(title, content, cs) {
        if (valCss != cs) {
            valCss = cs;
            Ext.net.Notification.show({
                hideFx: {
                    fxName: 'switchOff',
                    args: [{}]
                },
                showFx: {
                    args: [
                              'C3DAF9',
                              1,
                              {
                                  duration: 2.0
                              }
                          ],
                    fxName: 'frame'
                },
                iconCls: cs,
                closeVisible: true,
                html: content,
                title: title + '   ' + new Date().format('g:i:s A')
            });
        }
    }
</script>
<center>
    <div style="width: 830px; text-align: left;">
        <ext:FormPanel ID="FormPanel1" Collapsible="true" Header="false" Icon="PageAdd" runat="server"
            MonitorValid="true" Padding="5" ButtonAlign="Right"
            Width="830px" Layout="Form">
            <Items>
                <ext:FormPanel ID="fpGroup0" Icon="PhoneAdd" Border="true" Collapsible="true" runat="server" Title="表单信息" AutoHeight="true" LabelWidth="120">
    <Items>
    <ext:TableLayout runat="server" ColumnWidth="0.5" Columns="2"><Cells><ext:Cell><ext:TextField ID="txtAreaName" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtBranchCompany" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtProvince" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtCitys" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtShopName" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtName" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtOracleNO" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtMarginNumber" runat="server" /></ext:Cell>
    <ext:Cell><ext:DateField ID="txtPayTime" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtPayer" runat="server" /></ext:Cell>
    <ext:Cell ColSpan="2"><ext:FormPanel Border="false" IsFormField="true" ID="tblPaymentAmount" runat="server" ><Items><ext:DisplayField runat="server" Text="---动态生成--" /></Items></ext:FormPanel></ext:Cell>
    <ext:Cell><ext:ComboBox Editable="false" ID="ddlCollectingCompany" runat="server" /></ext:Cell>
    <ext:Cell><ext:ComboBox Editable="false" ID="ddlDueBank" runat="server" /></ext:Cell>
    <ext:Cell><ext:ComboBox Editable="false" ID="ddlCollectingBankAccount" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtBranchContacts" runat="server" /></ext:Cell>
    <ext:Cell><ext:TextField ID="txtContactPhoneNumber" runat="server" /></ext:Cell>
    <ext:Cell ColSpan="2"><ext:FormPanel Border="false" IsFormField="true" ID="tblFinancialConfirm" runat="server" ><Items><ext:DisplayField runat="server" Text="---动态生成--" /></Items></ext:FormPanel></ext:Cell>
    </Cells>   </ext:TableLayout></Items>
    </ext:FormPanel>
     
                    <ext:Panel ID="pnlExamineList" runat="server" Collapsible="true" Header="true" Icon="UserFemale" Border="true"
                    Title="审批历史" Height="200">
                    <AutoLoad Url="/FormServerTemplates/ExamineList.aspx" NoCache="true" Mode="IFrame"
                        ShowMask="true" />
                    <Listeners>
                        <Expand Handler="this.reload();" />
                        <Collapse Handler="this.clearContent();" />
                    </Listeners>
                </ext:Panel>
            </Items>
            <Buttons>
                <ext:Button ID="btnSave" runat="server" Text="保存" CausesValidation="true" Icon="Disk">
                    <DirectEvents>
                        <Click OnEvent="btnSave_Click" Single="true">
                            <EventMask ShowMask="true" Msg="正在处理..." />
                        </Click>
                    </DirectEvents>
                </ext:Button>
                <ext:Button ID="btnSumbit1" runat="server" Text="提交" CausesValidation="true" Icon="PageAdd">
                    <DirectEvents>
                        <Click OnEvent="btnSubmit_Click" Single="true">
                            <EventMask ShowMask="true" Msg="正在处理..." />
                        </Click>
                    </DirectEvents>
                </ext:Button>
            </Buttons>
            <BottomBar>
                <ext:StatusBar ID="StatusBar1" runat="server" />
            </BottomBar>
            <TopBar>
                <ext:Toolbar ID="Toolbar1" runat="server">
                    <Items>
                        <ext:ToolbarFill ID="ToolbarFill1" runat="server"/>
                        <ext:Button ID="tbSave" runat="server" Icon="Disk" CausesValidation="true" Text="保存">
                            <DirectEvents>
                                <Click OnEvent="btnSave_Click" Single="true">
                                    <EventMask ShowMask="true" Msg="正在处理数据..." />
                                </Click>
                            </DirectEvents>
                        </ext:Button>
                        <ext:Button ID="btnSumbit2" runat="server" Icon="PageAdd" CausesValidation="true"
                            Text="提交">
                            <DirectEvents>
                                <Click OnEvent="btnSubmit_Click" Single="true">
                                    <EventMask ShowMask="true" Msg="正在处理..." />
                                </Click>
                            </DirectEvents>
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </TopBar>
            <Listeners>
                <ClientValidation Handler="#{btnSave}.setDisabled(!valid);#{tbSave}.setDisabled(!valid);#{btnSumbit1}.setDisabled(!valid);#{btnSumbit2}.setDisabled(!valid);var valCs=valid ? 'valaccept' : 'valexclamation';var msg=valid ? '<span style=\'color:green;\'>验证通过,可以提交数据</span>' : '<span style=\'color:red;\'>输入有误,请检查标红的输入项。</span>';this.getBottomToolbar().setStatus({text :msg, iconCls: valCs});showMsg('温馨提示',msg,valCs);"/>
            </Listeners>
        </ext:FormPanel>
    </div>
</center>
<script type="text/javascript">
    Ext.onReady(function () {
        $(function(){
            setTimeout("setLabelClass()",300);           
        });
        //当前窗体最大化
        top.Ext.getCmp('frmStatesRequestList').maximize();
    });    
    function setLabelClass() {
        //表单控件设置Label样式
        $("label.x-form-item-label").addClass("labelStyle");
        //设置表格宽度
        $("table.x-table-layout").attr("width", "100%");
    }
</script>
1
 

模板如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
<%--
Name: 根据XML生成用户控件表单
Author: LWQ
--%>
<%@ CodeTemplate Language="C#" TargetLanguage="Html" Debug="True"
CompilerVersion="v3.5" Description="根据XML生成Ext.NET用户控件" ResponseEncoding="UTF-8"%>
 
<%@ Assembly Name="CodeSmith.CustomProperties" %>
<%@ Property Name="ClassName" Type="System.String" Default="" Optional="True" Category="Optional" Description="用户控件名称。" %>
<%--加载使用访问数据库的组件SchemaExplorer,并声明其使用的命名空间。--%>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context"  Description="对应的数据主表" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Text.RegularExpressions" %>
<%--加载Linq to xml组件,并声明其使用的命名空间。--%>
<%@ Import Namespace="System.Xml.Linq" %>
<%@ Assembly Name="System.Xml.Linq" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Windows.Forms.Design"%>
<%@ Assembly Name="System.Design" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%%@ Control Language="C#" AutoEventWireup="true" CodeBehind="<%=ClassName%>.ascx.cs"
    Inherits="NBShop.UserControls.Form.<%=ClassName%>" EnableViewState="true" %>
<%%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<script type="text/javascript">
    var valCss = '';
    function showMsg(title, content, cs) {
        if (valCss != cs) {
            valCss = cs;
            Ext.net.Notification.show({
                hideFx: {
                    fxName: 'switchOff',
                    args: [{}]
                },
                showFx: {
                    args: [
                              'C3DAF9',
                              1,
                              {
                                  duration: 2.0
                              }
                          ],
                    fxName: 'frame'
                },
                iconCls: cs,
                closeVisible: true,
                html: content,
                title: title + '   ' + new Date().format('g:i:s A')
            });
        }
    }
</script>
<center>
    <div style="width: 830px; text-align: left;">
        <ext:FormPanel ID="FormPanel1" Collapsible="true" Header="false" Icon="PageAdd" runat="server"
            MonitorValid="true" Padding="5" ButtonAlign="Right"
            Width="830px" Layout="Form">
            <Items>
                <%=GetFormItem()%>
                    <ext:Panel ID="pnlExamineList" runat="server" Collapsible="true" Header="true" Icon="UserFemale" Border="true"
                    Title="审批历史" Height="200">
                    <AutoLoad Url="/FormServerTemplates/ExamineList.aspx" NoCache="true" Mode="IFrame"
                        ShowMask="true" />
                    <Listeners>
                        <Expand Handler="this.reload();" />
                        <Collapse Handler="this.clearContent();" />
                    </Listeners>
                </ext:Panel>
            </Items>
            <Buttons>
                <ext:Button ID="btnSave" runat="server" Text="保存" CausesValidation="true" Icon="Disk">
                    <DirectEvents>
                        <Click OnEvent="btnSave_Click" Single="true">
                            <EventMask ShowMask="true" Msg="正在处理..." />
                        </Click>
                    </DirectEvents>
                </ext:Button>
                <ext:Button ID="btnSumbit1" runat="server" Text="提交" CausesValidation="true" Icon="PageAdd">
                    <DirectEvents>
                        <Click OnEvent="btnSubmit_Click" Single="true">
                            <EventMask ShowMask="true" Msg="正在处理..." />
                        </Click>
                    </DirectEvents>
                </ext:Button>
            </Buttons>
            <BottomBar>
                <ext:StatusBar ID="StatusBar1" runat="server" />
            </BottomBar>
            <TopBar>
                <ext:Toolbar ID="Toolbar1" runat="server">
                    <Items>
                        <ext:ToolbarFill ID="ToolbarFill1" runat="server"/>
                        <ext:Button ID="tbSave" runat="server" Icon="Disk" CausesValidation="true" Text="保存">
                            <DirectEvents>
                                <Click OnEvent="btnSave_Click" Single="true">
                                    <EventMask ShowMask="true" Msg="正在处理数据..." />
                                </Click>
                            </DirectEvents>
                        </ext:Button>
                        <ext:Button ID="btnSumbit2" runat="server" Icon="PageAdd" CausesValidation="true"
                            Text="提交">
                            <DirectEvents>
                                <Click OnEvent="btnSubmit_Click" Single="true">
                                    <EventMask ShowMask="true" Msg="正在处理..." />
                                </Click>
                            </DirectEvents>
                        </ext:Button>
                    </Items>
                </ext:Toolbar>
            </TopBar>
            <Listeners>
                <ClientValidation Handler="#{btnSave}.setDisabled(!valid);#{tbSave}.setDisabled(!valid);#{btnSumbit1}.setDisabled(!valid);#{btnSumbit2}.setDisabled(!valid);var valCs=valid ? 'valaccept' : 'valexclamation';var msg=valid ? '<span style=\'color:green;\'>验证通过,可以提交数据</span>' : '<span style=\'color:red;\'>输入有误,请检查标红的输入项。</span>';this.getBottomToolbar().setStatus({text :msg, iconCls: valCs});showMsg('温馨提示',msg,valCs);"/>
            </Listeners>
        </ext:FormPanel>
    </div>
</center>
<script type="text/javascript">
    Ext.onReady(function () {
        $(function(){
            setTimeout("setLabelClass()",300);           
        });
        //当前窗体最大化
        top.Ext.getCmp('frmStatesRequestList').maximize();
    });    
    function setLabelClass() {
        //表单控件设置Label样式
        $("label.x-form-item-label").addClass("labelStyle");
        //设置表格宽度
        $("table.x-table-layout").attr("width", "100%");
    }
</script>
<script runat="template">
     ///配置文件路径
     private string _userFileName = string.Empty;
     [Editor(typeof(FileNameEditor), typeof(System.Drawing.Design.UITypeEditor)),Category("Custom"), Description("请选择配置XML文件。")]
     public string UserFileName
     {
          get {return _userFileName;}
          set {_userFileName= value;}
     }
     //返回生成的项的HTML
      public string GetFormItem()
     {
          Debugger.Break();
          if (File.Exists(_userFileName))
          {
               StringBuilder _sbText = new StringBuilder();
               XElement elements = XElement.Load(_userFileName);
               var _group = elements.Descendants("Group");
               if (_group == null || _group.Count() == 0)
               {
                   var _fields = elements.Descendants("Field");
                   CreateFields(_sbText, _fields);
               }
               else
               {
                    int _groupIndex=0;
                   foreach (var item in _group)
                   {
                       var _GroupID = item.Attribute("GroupID") == null ? "fpGroup"+_groupIndex : item.Attribute("GroupID").Value;
                       var _title = item.Attribute("Title") == null ? string.Empty : item.Attribute("Title").Value;
                       var _Columns = item.Attribute("Columns") == null ? string.Empty : item.Attribute("Columns").Value;
                       _sbText.Append("<ext:FormPanel ID=\"").Append(_GroupID).Append("\" Icon=\"PhoneAdd\" Border=\"true\" Collapsible=\"true\" runat=\"server\" Title=\"").Append(_title).Append("\" AutoHeight=\"true\" LabelWidth=\"120\">\r\n\t<Items>\r\n\t");
                       _sbText.Append("<ext:TableLayout runat=\"server\" ColumnWidth=\"");
                       switch (_Columns)
                       {
                           case "2":
                               _sbText.Append("0.5");
                               break;
                           case "3":
                               _sbText.Append("0.33");
                               break;
                           case "4":
                               _sbText.Append("0.25");
                               break;
                           case "1":
                               _sbText.Append("1");
                               break;
                           default:
                               break;
                       }
                       _sbText.Append("\" Columns=\"").Append(_Columns).Append("\"><Cells>");
                       var _fields = item.Descendants("Field");
                       CreateFields(_sbText, _fields);
                       _sbText.Append("</Cells>   </ext:TableLayout>");
                       _sbText.Append("</Items>\r\n\t</ext:FormPanel>\r\n\t");
                      _groupIndex++;
                   }
               }
               return _sbText.ToString();
            }
          return string.Empty;
     }
      private void CreateFields(StringBuilder _sbText, IEnumerable<XElement> _fields)
    {
        foreach (var item in _fields)
        {
           
            //文本控件ID
            string _textControlID = item.Attributes("TextControlID").First().Value;
            string _attr = _textControlID.Substring(0, 3);
            string _fieldName=_textControlID.Substring(3);
 
            if (_attr == "tbl")
                _sbText.Append("<ext:Cell ColSpan=\"2\">");
            else
                _sbText.Append("<ext:Cell>");
 
            //判断是否为数字
            if (item.Attributes("MaximumValue").FirstOrDefault() != null || item.Attributes("MinimumValue").FirstOrDefault() != null)
            {
                _sbText.Append("<ext:NumberField ID=\"").Append(_textControlID).Append("\" runat=\"server\" />");
            }
            else
            {
                switch (_attr)
                {
                    case "txt":
                        if ( _textControlID.ToLower().Contains("date")
                              || _textControlID.ToLower().Contains("time")
                              || _textControlID.ToLower().Contains("DeadLine")
                              || _textControlID.ToLower().Contains("birthday")
                              )
                            _sbText.Append("<ext:DateField ID=\"").Append(_textControlID).Append("\" runat=\"server\" />");
                        else
                            _sbText.Append("<ext:TextField ID=\"").Append(_textControlID).Append("\" runat=\"server\" />");
                        break;
                    case "ddl":
                        _sbText.Append("<ext:ComboBox Editable=\"false\" ID=\"").Append(_textControlID).Append("\" runat=\"server\" />");
                        break;
                    case "cbl":
                        _sbText.Append("<ext:CheckboxGroup ID=\"").Append(_textControlID).Append("\" runat=\"server\" ><Items><ext:Checkbox runat=\"server\" BoxLabel=\"测试\" /> </Items></ext:CheckboxGroup>");
                        break;
                    case "rbl":
                        _sbText.Append("<ext:RadioGroup ID=\"").Append(_textControlID).Append("\" runat=\"server\" ><Items><ext:Radio runat=\"server\" BoxLabel=\"测试\" /> </Items></ext:RadioGroup>");
                        break;
                    case "tbl":
                        _sbText.Append("<ext:FormPanel Border=\"false\" IsFormField=\"true\" ID=\"").Append(_textControlID).Append("\" runat=\"server\" ><Items><ext:DisplayField runat=\"server\" Text=\"---动态生成--\" /></Items></ext:FormPanel>");
                        break;
                    case "chk":
                        _sbText.Append("<ext:Checkbox ID=\"").Append(_textControlID).Append("\" runat=\"server\" />");
                        break;
                     case "rdo":
                        _sbText.Append("<ext:Radio ID=\"").Append(_textControlID).Append("\" runat=\"server\" />");
                        break;
                    default:
                        Response.WriteLine("警告:代码生成错误。未知的控件前缀:"+_attr);
                        return;
                }
            }
            _sbText.Append("</ext:Cell>\r\n\t");
        }
    }
</script>

CodeSmith系列(三)——使用CodeSmith生成ASP.NET页面的更多相关文章

  1. asp.net页面生命周期

    Asp.Net页面生命周期 本文转载自:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html 一.什么是Asp.Net页面生命周期 当 ...

  2. Asp.Net页面生命周期--转发(学海无涯)

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  3. Asp.Net页面生命周期【转载,地址:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html】

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  4. 【转载】Asp.Net页面生命周期

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  5. Asp.Net页面生命周期[转]

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  6. ASP.Net Core 2.2 MVC入门到基本使用系列 (三)

    本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...

  7. 《Entity Framework 6 Recipes》中文翻译系列 (20) -----第四章 ASP.NET MVC中使用实体框架之在MVC中构建一个CRUD示例

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第四章  ASP.NET MVC中使用实体框架 ASP.NET是一个免费的Web框架 ...

  8. 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  9. 【深入ASP.NET原理系列】--ASP.NET页面生命周期

    前言 ASP.NET页面运行时候,页面将经历一个生命周期,在生命周期中将执行一系列的处理步骤.包括初始化.实例化控件.还原和维护状态.运行时间处理程序代码以及进行呈现.熟悉页面生命周期非常重要,这样我 ...

随机推荐

  1. vue.js 组件之间传递数据

    前言 组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.如何传递数据也成了组件的重要知识点之一. 组件 组件与组件之间,还存在着不同的关 ...

  2. C# 百分比的获取

    这里介绍 C# 百分比转换有2种方式 例: double a=50; double b=100; a/b.ToString("0.00%"); 或 a/b.ToString(&qu ...

  3. Jersey +jetty 实现微服务(一)

    微服务:    传输协议基本都是http,数据序列化,协议层目前protocol buffer,Json, xml,Java序列化,最多使用Json.实现以上二点并不难,spring 就可以,但spr ...

  4. 浅谈JVM与内存分配

    一.程序内存分配 初始内存分配 当一个程序准备运行时,它首先向java虚拟机要内存,但是java虚拟机本身没有权限,它只能向操作系统申请内存,此时java虚拟机会拥有一个初始内存, 此处额外说明一下e ...

  5. python数据结构之链表

    在程序中,经常需要将⼀组(通常是同为某个类型的)数据元素作为整体 管理和使⽤,需要创建这种元素组,⽤变量记录它们,传进传出函数等. ⼀组数据中包含的元素个数可能发⽣变化(可以增加或删除元素). 对于这 ...

  6. 【highchart】经典问题

    摘要 记录遇到的一些问题和解决方案 时差 数据容量 多表联动 1. 时差 问题描述 highcharts 默认是标准 UTC 时间,而国内默认是东八区时间,所以会有8个小时的时差 解决方法 使用hig ...

  7. mybatis 详解(一)------JDBC

    1.什么是MyBatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且 ...

  8. Linux(4)系统管理

    系统管理 cal :查看当前月份和日历, 加-y查看整年日历 date :显示或设置时间 设置时间格式(需要管理员权限) date [MMDDhhmm[[CC]YY][.ss]]+format CC为 ...

  9. app请求服务器数据方法1-HttpUrlConnection

    1. 实例化URL对象 首先第一步实例化一个URL对象,传入参数为请求的数据的网址. URL url = new URL("http://www.imooc.com/api/teacher? ...

  10. CentOS服务器运维监控Nagios(一)

    CentOS下搭建Nagios 王尚 2014.11.09 操作系统:CentOS-6.5-i386-bin-DVD1.iso 安装在VM中进行测试的. 本章需要的软件链接: php-5.3.2.ta ...