开发运维日常坑 总结 51-100

51、json

好多种

JsonArray fromObject = JSONArray.fromObject(list<obj>);

String string = fromObject.toString();

Gson gson = new Gson();

String json = gson.toJson(list<obj>);

52、调用API

//参数url化

String city = java.net.URLEncoder.encode("北京", "utf-8");

//拼地址

String apiUrl = String.format("https://www.sojson.com/open/api/weather/json.shtml?city=%s",city);

//开始请求

URL url= new URL(apiUrl);

URLConnection open = url.openConnection();

InputStream input = open.getInputStream();

//这里转换为String,带上包名,怕你们引错包

String result = org.apache.commons.io.IOUtils.toString(input,"utf-8");

//输出

System.out.println(result);

53、https

Java  信任所有  SSL  证书,  HTTPS  请求抛错,忽略证书请求完美解决

方案一:

按照要求,把证书上传到服务器上,具体方法自行百度解决,这里不做叙述。

方案二:

添加下面的代码和工具类,工具类在下面附件中有,直接下载即可。

//省略代码。。。

realUrl = new URL(url);

if("https".equalsIgnoreCase(realUrl.getProtocol())){

SslUtils.ignoreSsl();

}

//省略代码。。。

SslUtils 工具类 代码 实现:

package com.stevezong.utils;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import javax.net.ssl.HostnameVerifier;

import javax.net.ssl.HttpsURLConnection;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSession;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

public class SslUtils {

private static void trustAllHttpsCertificates() throws Exception {

TrustManager[] trustAllCerts = new TrustManager[1];

TrustManager tm = new miTM();

trustAllCerts[0] = tm;

SSLContext sc = SSLContext.getInstance("SSL");

sc.init(null, trustAllCerts, null);

HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

}

static class miTM implements TrustManager,X509TrustManager {

public X509Certificate[] getAcceptedIssuers() {

return null;

}

public boolean isServerTrusted(X509Certificate[] certs) {

return true;

}

public boolean isClientTrusted(X509Certificate[] certs) {

return true;

}

public void checkServerTrusted(X509Certificate[] certs, String authType)

throws CertificateException {

return;

}

public void checkClientTrusted(X509Certificate[] certs, String authType)

throws CertificateException {

return;

}

}

/**

* 忽略HTTPS请求的SSL证书,必须在openConnection之前调用

* @throws Exception

*/

public static void ignoreSsl() throws Exception{

HostnameVerifier hv = new HostnameVerifier() {

public boolean verify(String urlHostName, SSLSession session) {

return true;

}

};

trustAllHttpsCertificates();

HttpsURLConnection.setDefaultHostnameVerifier(hv);

}

}

54、 Servlet 监听器

事件源:被监听的对象  ----- 三个域对象 request  session  servletContext

监听器:监听事件源对象  事件源对象的状态的变化都会触发监听器 ---- 6+2

注册监听器:将监听器与事件源进行绑定

响应行为:监听器监听到事件源的状态变化时 所涉及的功能代码 ---- 程序员编写代码

监听器的编写步骤(重点):

a、编写一个监听器类去实现监听器接口

b、覆盖监听器的方法

c、需要在web.xml中进行配置---注册

ServletContextListener监听器的主要作用

a、初始化的工作:初始化对象 初始化数据 ---- 加载数据库驱动  连接池的初始化

b、加载一些初始化的配置文件 --- spring的配置文件

c、任务调度----定时器----Timer/TimerTask

55、发邮件

package com.stevezong.utils;

import java.util.Properties;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMessage.RecipientType;

public class MailUtils {

public static void sendMail(String email, String emailMsg)

throws AddressException, MessagingException {

// 1.创建一个程序与邮件服务器会话对象 Session

Properties props = new Properties();

props.setProperty("mail.transport.protocol", "SMTP");

props.setProperty("mail.host", "smtp.126.com");

props.setProperty("mail.smtp.auth", "true");// 指定验证为true

// 创建验证器

Authenticator auth = new Authenticator() {

public PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication("haohao_itcast", "hao12345");

}

};

Session session = Session.getInstance(props, auth);

// 2.创建一个Message,它相当于是邮件内容

Message message = new MimeMessage(session);

message.setFrom(new InternetAddress("[email protected]")); // 设置发送者

message.setRecipient(RecipientType.TO, new InternetAddress(email)); // 设置发送方式与接收者

message.setSubject("用户激活");

// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");

message.setContent(emailMsg, "text/html;charset=utf-8");

// 3.创建 Transport用于将邮件发送

Transport.send(message);

}

}

56、定时器

//开启一个定时器

Timer timer = new Timer();

//task :任务   firstTime 第一次运行的事件   period 下次运行的事件 秒

//timer.scheduleAtFixedRate(task, firstTime, period);

timer.scheduleAtFixedRate(new TimerTask() {

@Override

public void run() {

System.out.println("开始任务");

}

},new Date(),5000);

57、pagecontext.request.getcontextpath

58、jsp页面 首行报错

在pom.xml文件中加入servlet依赖

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.5</version>

<scope>provided</scope>

</dependency>

在工程中添加 tomcat 运行环境

59、mybatis 报错:Invalid bound statement (not found)

检查xml文件所在package名称是否和Mapper interface所在的包名

<mapper namespace="me.tspace.pm.dao.UserDao">

mapper的namespace写的不对!!!注意系修改。

UserDao的方法在UserDao.xml中没有,然后执行UserDao的方法会报此

UserDao的方法返回值是List<User>,而select元素没有正确配置ResultMap,或者只配置ResultType!

如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存.问题解决

看下mapper的XML配置路径是否正确

60、java.lang.IllegalArgumentException: Name for argument type [java.lang.String]

解决方法:

修改参数的写法,比如修改为

public ModelAndView login(@RequestParam("userName") String userName, @RequestParam("password") String password){

//划水1

//划水n

}

修改编译脚本

SRC=$(find ./java/* | grep java$)

javac -g -d ./classes  $SRC -encoding utf-8

增加 -g 参数,即编译时生成所有debug的信息。

参考:https://blog.csdn.net/kouwoo/article/details/42869779

61、jq 选择器

$("input[name='submit']")

input 其中 name属性等于submit的

62、JQuery报错:Uncaught TypeError: Cannot read property 'trim' of undefined

var input = $("#EarningsTypes").val().trim();

var vname = $("#EarningsTypes").val() == undefined ? '' : $("#EarningsTypes").val().trim();

详情参考https://stackoverflow.com/questions/32733423/uncaught-typeerror-cannot-read-property-trim-of-undefined-in-jquery

https://blog.csdn.net/gongjing457/article/details/79001464

63、jq插件 表单校验

导入插件的步骤:

将jquery的原始文件和插件文件jquery.validate.js导入到工程中

编写js代码对表单进行验证

表单验证的格式:

$("form表单的选择器").validate(json数据格式);  //键值对  键:值({})

json数据格式:

"{

rules:{

表单项name值:校验规则,

表单项name值:校验规则... ...

},

messages:{

表单项name值:错误提示信息,

表单项name值:错误提示信息... ...

}

}"

$("#myform").validate({

rules:{

"username":{"required":true}

},

messages:{

"username":{"required":"用户名不能为空"}

}

})

其中:校验规则,可以是一个也可以是多个,如果是多个使用json格式

常用校验规则如下:

注意:当错误提示信息不按照我们预想的位置显示时,我们可以按照如下方式进行设置

"自定义错误显示标签放在我们需要显示的位置,当此表单项验证不通过时会将此

信息自动显示出来,jquery验证插件会自动帮助我们控制它的显示与隐藏"

<lable for="html元素name值" class="error" style="display:none">错误信息</lable>

如果设置了错误lable标签就不必在messages中设置此表单项错误提示信息了

如果预定义的校验规则尚不能满足需求的话可以进行自定义校验规则:

自定义校验规则步骤如下:

(1) 使用$.validator.addMethod("校验规则名称",function(value,element,params)){}

(2) 在rules中通过校验规则名称使用校验规则

(3) 在messages中定义该规则对应的错误提示信息

其中: value是校验组件的value值

element是校验组件的节点对象

params是校验规则的参数

1 required:true 必须输入的字段。

2 remote:"check.php" 使用 ajax 方法调用 check.php 验证输入值。

3 email:true 必须输入正确格式的电子邮件。

4 url:true 必须输入正确格式的网址。

5 date:true 必须输入正确格式的日期。日期校验 ie6 出错,慎用。

6 dateISO:true 必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22。只验证格式,不验证有效性。

7 number:true 必须输入合法的数字(负数,小数)。

8 digits:true 必须输入整数。

9 creditcard: 必须输入合法的信用卡号。

10 equalTo:"#field" 输入值必须和 #field 相同。

11 accept: 输入拥有合法后缀名的字符串(上传文件的后缀)。

12 maxlength:5 输入长度最多是 5 的字符串(汉字算一个字符)。

13 minlength:10 输入长度最小是 10 的字符串(汉字算一个字符)。

14 rangelength:[5,10] 输入长度必须介于 5 和 10 之间的字符串(汉字算一个字符)。

15 range:[5,10] 输入值必须介于 5 和 10 之间。

16 max:5 输入值不能大于 5。

17 min:10 输入值不能小于 10。

64、gson json String转list

List<Category> all =gson.fromJson(categoryListJson, new TypeToken<List<Category>>() {}.getType());

65、gson list 转String

Gson gson = new Gson();

List<Category> all = categoryDao.findAll();

String str = gson.toJson(all)

66、mybatis

$()和 #() 的区别

$() 会强转为 int

#() 是什么 就是什么

67、gson 解析 复杂的 json str

创建一个 json str 对象的类

先我们需要定义一个序列化的Bean,这里采用内部类的形式,这样比较容易看得清晰些

首先我们需要定义一个序列化的Bean,这里采用内部类的形式,看起来会比较清晰一些:

很多时候大家都是不知道这个Bean是该怎么定义,这里面需要注意几点:

内部嵌套的类必须是static的,要不然解析会出错;

类里面的属性名必须跟Json字段里面的Key是一模一样的;

内部嵌套的用[]括起来的部分是一个List,所以定义为 public List<B> b,而只用{}嵌套的就定义为 public C c,

然后想拿数据就很简单啦,直接在jsonBean里面取就可以了!

如果需要解析的Json嵌套了很多层,同样可以可以定义一个嵌套很多层内部类的Bean,需要细心的对照Json字段来定义哦。

Gson gson = new Gson();

EtouchBean etouch = gson.fromJson(string,EtouchBean.class);

68、Postman

69、yum install bind-utils

dig 域名工具

70、 git ssh 配置

ssh2 home 和 private keys 在同一个目录

C:\Users\Administrator\.ssh\config

============

Host gitlab.com

Hostname altssh.gitlab.com

User git

Port 443

PreferredAuthentications publickey

IdentityFile ~/.ssh/id_rsa

=====================

71、 git 拉取maven

https://blog.csdn.net/u014683538/article/details/61196791

https://www.jianshu.com/p/4c601f50aa75

72、eclipse:Project is already imported into workspace

有时候eclipse或者myeclipse导入项目的时候会发生上面这个错误,具体原因是在IDE的workspace中已经存在了相同名字的项目,所以不能导入。

解决方法:修改项目名称,修改.project.文件<name>项目名称</name>

在import projects那个界面把Copy projects into workspace前面的复选框√去掉再Browse,这样就OK了

73、eclipse A .project file already exists in directory

从GitHub上导入项目时突然无法导入,报错如下:

eclipse A .project file already exists in directory

最终解决方案:

从git导入general project后,到工作空间的导入项目目录下找到.project文件并干掉它 然后在eclipse点back,接着点next,导入成功

74、报错not authorized信息

有的朋友改了域用户名和密码,发现在eclipse下无法pull和push分支,报错not authorized信息。

window>preferences>general>security>content>git>delete 即可清除原有密码,再次pull时输入新密码即可。

75、eclipse下git不能拉取错误解决小记

用以下方式加入下边几行字:

Window->Preference->Team->Git->Configuration->Repository Settings->选择你的repository,然后点open

[branch "master"]

remote = origin

merge = refs/heads/master

76、jsp head和foot 引入

https://blog.csdn.net/nrlovestudy/article/details/50032995

77、The current branch is not configured for pull No value for key remote.origin

eclipse 不能拉取

window---preference--team---git--configuration---Repository Settings,Repository选择当前的仓库,然后点右边的open

[core]

repositoryformatversion = 0

filemode = false

logallrefupdates = true

[remote "origin"]

url = 自己项目的git地址

fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]

remote = origin

merge = refs/heads/master

78、Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

最近部署项目的时候,由于MIS配置的是Tomcat 8.5的服务端,导致Web应用不正常,报HTTP 400错误(Chrome无异常、IE报错)。问题原因初步判断为8.5版本的服务端接收请求不会对符号进行转义,Chrome不异常的原因或许是浏览器自身转义了。具体错误信息如下:

有两种解决方案:

Plan 1:

更换低版本的Tomcat来规避这种问题。

Plan 2:

在conf/catalina.properties中最后添加一行:

org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true

重启服务器后,解决问题。

官方指南地址:http://tomcat.apache.org/tomcat-8.5-doc/config/systemprops.html

官方说明:

org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH

If this is true ‘%2F’ and ‘%5C’ will be permitted as path.delimiters.If not specified, the default value of false will be used.

79、spring4 搭建 4.2.4

spring-beans

spring-context

spring-core

spring-expression

apache.commons.logging

apache.log4j

位置任意(建议放到src下)

配置文件名任意(建议applicationContext.xml)

80、重置用户名密码

删除C:\Users(用户)\"你的用户名"\AppData\Roaming\Subversion\auth\下的所有文件

81、nginx 查看安装了哪些模块

nginx -V

82、如何解决MySQL在高版本需要指明是否进行SSL连接问题

  在mysql连接字符串url中加入ssl=true或者false即可,如下所示。

  url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true

83、redis 第一个警告:The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

意思是:TCP  backlog设置值,511没有成功,因为 /proc/sys/net/core/somaxconn这个设置的是更小的128.

临时解决方法:(即下次启动还需要修改此值)

echo 511 > /proc/sys/net/core/somaxconn

永久解决方法:(即以后启动还需要修改此值)

将其写入/etc/rc.local文件中。

baklog参数实际控制的是已经3次握手成功的还在accept queue的大小。

参考linux里的backlog详解

84、redis 第二个警告:overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to/etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

意思是:overcommit_memory参数设置为0!在内存不足的情况下,后台程序save可能失败。建议在文件 /etc/sysctl.conf 中将overcommit_memory修改为1。

1.  echo "vm.overcommit_memory=1" > /etc/sysctl.conf  或 vi /etcsysctl.conf , 然后reboot重启机器

2.  echo 1 > /proc/sys/vm/overcommit_memory  不需要启机器就生效

永久解决方法:将其写入/etc/sysctl.conf文件中。

参考:有关linux下redis overcommit_memory的问题

85、第三个警告:you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix thisissue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain thesetting after a reboot. Redis must be restarted after THP is disabled.

意思是:你使用的是透明大页,可能导致redis延迟和内存使用问题。执行 echo never > /sys/kernel/mm/transparent_hugepage/enabled 修复该问题。

临时解决方法:

echo never > /sys/kernel/mm/transparent_hugepage/enabled。

永久解决方法:

将其写入/etc/rc.local文件中。

86、安装redis 及常见问题

#make

cd src && make all

make[1]: Entering directory `/software/redis-2.8.8/src'

CC adlist.o

In file included from adlist.c:34:

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory

zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

make[1]: *** [adlist.o] Error 1

make[1]: Leaving directory `/software/redis-2.8.8/src'

make: *** [all] Error 2

make MALLOC=libc (不知道为什么这么用?)

# make test

cd src && make test

make[1]: Entering directory `/software/redis-2.8.8/src'

You need tcl 8.5 or newer in order to run the Redis test

make[1]: *** [test] Error 1

make[1]: Leaving directory `/software/redis-2.8.8/src'

make: *** [test] Error 2

A.修改配置文件目录

mkdir /etc/redis

cp redis.conf /etc/redis

87、数据字段

用于枚举项目中的有限的

比如:status 表

88、easyui

屌丝公司 省去美工前端

自带一套页面的样式以及效果

89、maven 使用

apache maven

配置文件 (核心)

settings.xml

依赖

maven jdk -》1.7以上

在系统变量添加

环境变量的名称:MAVEN_HOME

变量值:就是maven软甲解压的目录d:\apache-maven-3.5.2

把MAVEN_HOME添加到path里 %MAVEN_HOME%\bin

验证maven是否配置成功:

打开dos窗口 输入: mvn –v

C:\Users\steve>mvn -v

Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T15:58:1

3+08:00)

Maven home: D:\apache-maven-3.5.2\bin\..

Java version: 1.8.0_111, vendor: Oracle Corporation

Java home: C:\Program Files\Java\jre1.8.0_111

Default locale: zh_CN, platform encoding: GBK

OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

90、用struts2.5版本,试了很久,一直报This method: add for action user1 is not allowed!

url:http://localhost:8888/struts2_0200_namespace/user/user1!add.action

这是因为 struts2.5 为了提升安全性,添加了 allomethod 这么个玩意。

解决方法是在配置文件中添加:

<package name="exam" extends="json-default">
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="user" class="userAction">
...
</action>
</package>

或者,针对action,在 action 块中添加

<allowed-methods>regex:.*</allowed-methods>

同样也支持在你的 action 上使用 @AllowedMethods 注解

默认的设置为

<global-allowed-methods>execute,input,back,cancel,browse,save,delete,list,index</global-allowed-methods>

全局设置是增量而不是覆盖的,支持正则和直接匹配方法,

源码在这两段

// com.opensymphony.xwork2.DefaultActionProxy#prepare

// com.opensymphony.xwork2.config.entities.ActionConfig#isAllowedMethod

老项目因为爆出漏洞然后我找了一下午这个问题,最终打开研发模式,并搜索官网文档解决。

struts 真是个坑啊。

91、JSP取得绝对路径方法

${pageContext.request.contextPath}
<c:set var="cp" value="${pageContext.request.contextPath}" />

将用c:set放入一个变量中,然后在用的时候用EL表达式取出来。

92、BeanFactory not initialized or already closed - call 'refresh' before access

Spring实例化BeanFactory的时候是默认到classPath下面查找名为applicationContext.xml的文件的,但是呢,你又没有指定,所以出现了这个错误。

就是spring 找不到xml文件

93、mybatis Pre-instantiating singletons in org.s[email protected]5811105: defining beans  。。。。 root of factory hierarchy

仔细看 。。。。中的内容

我遇到的是我在映射文件中多了一个其他项目的映射文件  查了好多

94、数据字典

枚举项目中有限个数的字典项

95、mysql的md5

INSERT INTO t_user(id,username,password) values("1","admin",MD5("1234"))

实在懒就是直接用mysql 自带的md5

96、任意元素提交表单

<a onclick="doucment.getElementById('loginform').submit()" id="loginform:j_id19" name="loginform:j_id19">
<a  href="javascript:loginform.submit();" id="loginform:j_id19" name="loginform:j_id19">

97、用户登出

@Controller
@RequestMapping("/user")
public class UserLogoutController {
@RequestMapping("/logout.do")
public String userLogout(HttpSession session) {
session.invalidate();
return "login";
}
}

98、 ssm 返回json 时 一直报错:java.lang.IllegalArgumentException: No converter found for return value of t

 1.原因:这是因为springmvc默认是没有对象转换成json的转换器的,需要手动添加jackson依赖。

   2.解决步骤:

     手动添加jackson依赖到pom.xml文件中

<properties>
<jackson.version>2.5.4</jackson.version>
</properties> 
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-core</artifactId>
 <version>${jackson.version}</version>
</dependency>
<dependency>
 <groupId>com.fasterxml.jackson.core</groupId>
 <artifactId>jackson-databind</artifactId>
 <version>${jackson.version}</version>
</dependency>

如果还是没有解决,则进行以下步骤

   在springmvc配置文件中进行如下配置

<mvc:annotation-driven>
 <mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
   </mvc:message-converters>
</mvc:annotation-driven>

99、ssm 重定向  即使配置了视图解析器还是可以用的

result = "redirect:../pages_common_index.do";

100、easyui的使用

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EUI</title>
<!-- easyui s -->
<link rel="stylesheet" type="text/css"
	href="../js/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css"
	href="../js/easyui/themes/icon.css">
<script type="text/javascript" src="../js/jquery-1.8.3.js"></script>
<script type="text/javascript" src="../js/easyui/jquery.easyui.min.js"></script>
<!-- easyui e -->
<!-- ztree s -->
<link rel="stylesheet" href="../js/ztree/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="../js/ztree/jquery.ztree.all-3.5.js"></script>
<!-- ztree e -->

<!-- e -->
<script type="text/javascript">
	$(function(){
		<!--:error,question,info,warning-->
		<!--消息提示框-->
		$.messager.alert("标题","内容","error");
		<!--消息确认框-->
		$.messager.confirm("标题","内容",function(r){
			alert(r);
		});
		<!--牛皮框-->
		$.messager.show({
			 title:'标题',  
			  msg:'内容',  
			  timeout:5000,  
			  showType:'slide'  
		});
	});
</script>
<!-- s -->

</head>
<body class="easyui-layout">
	<div data-options="region:'north'" style="height: 100px" title="BOS系统">
	<a class="easyui-menubutton" data-options="menu:'#mm',iconCls:'icon-help'">控制面板</a>
	<div id="mm">
		<div>修改密码</div>
		<div>联系管理员</div>
		<div class="menu-sep"></div>
		<div onclick="alert(123)">退出系统</div>
	</div>
	</div>
	<div data-options="region:'west'" style="width: 200px" title="系统菜单">
		<div class="easyui-accordion" data-options="fit:true">
			<div title="1">
				<a class="easyui-linkbutton" id="but1"> add tab easy</a> <a
					class="easyui-linkbutton" id="but2"> add tab iframe</a>
				<script type="text/javascript">
					$(function(){
						$("#but1").click(function(){
							/* 存在就不在打开新的,而是选中 */
							if($("#tabs").tabs("exists","系统操作")){
								$("#tabs").tabs("select","系统操作")
							}else{
							$("#tabs").tabs('add',{title:'系统操作',closable:true,content:'内容'});
							}
						});
						/* 不管是否存在都一直打开新的 */
						$("#but2").click(function(){
							$("#tabs").tabs('add',{title:'系统信息',closable:true,content:'<iframe frameborder="0" height="100%" width="100%" src="https://www.baidu.com"></iframe>'});
						});
					});
				</script>
			</div>

			<div title="2">
				<!-- ztree -->
				<!-- 标准json数据格式 -->
				<ul id="ztree" class="ztree"></ul>
				<script type="text/javascript">
					$(function(){
						var setting={};
						<!-- -->
						var zNodes=[
							{'name':"1","children":[
								{'name':"1.1"},
								{'name':"1.2"},
								{'name':"1.3"}
							]},
							{'name':"2"},
							{'name':"3"}
						];
						$.fn.zTree.init($("#ztree"),setting,zNodes);
					});
				</script>
			</div>
			<div title="3">
				<ul id="ztree2" class="ztree"></ul>
				<!-- 简单json 数据格式 -->
				<script type="text/javascript">
					$(function(){
						var setting={
								data:{
									simpleData:{
										enable:true
									}
								}
						};
						<!-- -->
						var zNodes=[
							{"id":"1","pId":"0",'name':"1"},
							{"id":"2","pId":"1",'name':"2"},
							{"id":"3","pId":"2",'name':"3"}
						];
						$.fn.zTree.init($("#ztree2"),setting,zNodes);
					});
				</script>
			</div>
			<div title="4">
				<ul id="ztree3" class="ztree"></ul>
				<!-- 简单json 数据格式 -->
				<script type="text/javascript">
					$(function(){
						var setting={
								data:{
									simpleData:{
										enable:true
									}
								},
								<!-- 绑定单击事件 固定写法-->
								callback:{
									onClick:function(event,treeId,treeNode){
										<!--节点是否有page 数据  有就是叶子节点 就可以打开-->
										if(treeNode.page != undefined){
											<!-- 节点是否已经被打开,打开就选中,没有打开就打开-->
											if($("#tabs").tabs("exists",treeNode.name)){
												$("#tabs").tabs("select",treeNode.name)
											}else{
												$("#tabs").tabs("add",{
													title:treeNode.name,
													closable:true,
													content:'<iframe frameborder="0" height="100%" width="100%" src="https://www.baidu.com"></iframe>'
												});
											}
										}
									}
								}
						};
						$.ajax({
							url:"../json/menu.json",
							type:"post",
							dataType:"json",
							success:function(result){
								$.fn.zTree.init($("#ztree3"),setting,result);
							},
							error:function(){
								alert("加载失败,请稍后重试");
							}
						});

					});
				</script>
			</div>
		</div>
	</div>
	<div data-options="region:'center'">
		<div class="easyui-tabs" id="tabs">
			<div title="1" data-options="closable:true">1</div>
			<div title="2">2</div>
			<div title="3">3</div>
		</div>
	</div>
	<div data-options="region:'east'" style="width: 200px">东</div>
	<div data-options="region:'south'" style="height: 50px">南</div>

</body>
</html>

原文地址:http://blog.51cto.com/lmdtx/2153229

时间: 2024-10-28 16:06:16

开发运维日常坑 总结 51-100的相关文章

开发运维日常坑 总结 1-50

注意: 1.jstl 不能获取 ${xx.isXXX}的值 is=get 有异常 2.Parameter 'XXX' not found. Available parameters are [1, 0, param1, param2] 修改前的代码: @Select("select * from fruitsell where f_id=#{f_id} and u_id=#{u_id}") public Fruitsell finbyfruitsell(Long f_id,Long u

6. 开发运维常见问题

#开发运维常见问题 fork操作 同步操作 与内存量息息相关:内存越大,耗时越长(与机器类型有关) info:latest_fork_usec 改善fork 有限使用物理机或高校支持fork操作的虚拟化技术 控制Redis实例最大可用内存:maxmemory 合理配置linux内存分配策略:vm.overcommit_memory=1 降低fork频率:例如放宽AOF重写自动触发时机,不必要的全量复制 ##子进程开销和优化 cpu 开销:RDb和AOF文件生成,属于CPU密集型 优化:不做CPU

Django开发运维后台(二):建立模型与更新数据

上一篇文章我已经新建了一个SaAdmin的APP,现在开始在这APP下面来code 1.修改setting.py的数据库连接: DATABASES = {     'default': {         'ENGINE':'django.db.backends.mysql',         'NAME': 'QjshAdmin',         'USER': 'root',         'PASSWORD': 'lihuipeng',         'HOST': 'localho

PHP开发运维管理系统笔记

开发运维管理系统采用ThinkPHP框架+mysql进行开发. 框架配置 return array(     //'配置项'=>'配置值'     'SHOW_PAGE_TRACE' => true,     //允许访问的控制器     'MODULE_ALLOW_LIST' => array('Home'),     //默认控制器     'DEFAULT_MODULE' => 'Home',     //URL模式     'URL_MODEL' => 2,     

(视频)《快速创建网站》 4.1 为啥造软件不同于造汽车,为啥是软件就一定会有Bug - 构建开发运维一体化(DevOps)

本文是<快速创建网站>系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文.访问本系列目录,请点击:http://anb.io/blog/tag/wordpress-on-azure/ 1. 网站管理平台WordPress和云计算平台Azure简介 (6分钟视频 )2.1 在Azure上创建网站及网站运行机制 (13分钟视频)2.2 域名绑定操作和Azure负载均衡机制 (12分钟视频)2.3 WordPress 初始化和网站管理功能 (11分钟视频)3

20款开发运维必备的顶级工具

开发运维工具与软件开发领域的最佳实践密切相关,也与必要的规范密切相关.在整个开发生命周期涉及到一大批新旧工具,从规划.编码.测试.发布到监控.本文介绍你应该考虑添加到工具箱中的20种开发运维工具,供大家参考. 开发运维是那些还没有得到明确定义,就流传开来的科技时髦词之一.这种情况时不时出现,某个好的概念问世后,人们还无法实际上解释它为何物,就趋之若鹜. 所以,考虑到开发运维本身在大家的头脑中还是一片模糊,开发运维工具怎么样呢? 有必要说清一点:开发运维是开发和运维的混合体,因为它代表了开发实践方

分享老男孩自动化开发运维Python12期

本套教程共L33天,完整版!!! 目录: L001-老男孩教育-Python12期VIP视频-18节 0001-开课介绍.mp40002-同学互相介绍.mp40003-python简史介绍.mp40004-python3的新特性.mp40005-开发工具ide介绍.mp40006-helloworld程序.mp40007-变量与赋值.mp40008-用户交互.mp40009-条件判断与缩进.mp40010-循环控制.mp40011-循环次数限制.mp40012-常用数据类型.mp40013-字符

Python开发运维之路day1

一. python介绍相关 1. Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. - Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构. - Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言. - Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序. - Python 是面向对

Python开发运维之路day3

一.python字典操作 1.字典的定义 字典一种key-value的数据类型,类似于json串. 2.字典的特性 key:value 字典不可变,key唯一 key的定义规则: 1.不可变,数字.字符串.字典.元组(定义符合(),与列表完全一致,唯一不同的是元组内元素不可变) 2.key必须是唯一的,所以字典天生有去重功能 value的定义规则: 1.任意数据类型 3.字典的使用方法 字典的增.删.改.查 1 查询: 2 print(dic['name']) 3 print(dic.get('