注解: CRUD——Create,Retrieve, Update, Delete
文件结构
一、添加控制器(controller和action)—— /app/controllers/Products.java
package controllers;
import play.mvc.Controller;
import play.mvc.Result;
public class Products extends Controller {
public static Result list() { // 列出所有的产品
return TODO;
}
public static Result newProduct() { // 显示一个空的产品Form
return TODO;
}
public static Result details(String ean) { // 显示一个编辑产品的Form
return TODO;
}
public static Result save() { // 保存产品资料
return TODO;
}
}
说明: controllers的action方法必须满足以下三个条件:
必须是public
必须是static
返回类型必须是Result和Result的子类
完整代码为
package controllers;
import models.Product;
import play.data.Form;
import play.mvc.Controller;
import play.mvc.Result;
import java.util.ArrayList;
import java.util.List;
import views.html.*;
public class Products extends Controller {
// constant for Form
private static final Form productForm = Form.form(Product.class );
public static Result list(){
List products = Product.findAll();
return ok(list.render(products));
}
public static Result newProduct(){
return ok(details.render(productForm));
}
public static Result details(String ean){
final Product product = Product.findByEan(ean);
if (product == null ){
return notFound(String.format("Product %s does not exist.", ean));
}
Form filledForm = productForm.fill(product);
return ok(details.render(filledForm));
}
public static Result save(){
Form boundForm = productForm.bindFromRequest();
if (boundForm.hasErrors()){
flash( "error","Please correct the form below.");
return badRequest(details.render(boundForm));
}
Product product = boundForm.get();
product.save();
flash( "success",String.format("Successfully added product %s", product));
return redirect(routes.Products.list());
}
public static Result delete(String ean){
final Product product = Product.findByEan(ean);
if (product == null ){
return notFound(String.format("Product %s does not exist.", ean));
}
Product.remove(product);
return redirect(routes.Products.list());
}
}
Java Code
二. 修改routes文件
GET /products/ controllers.Products.list()
GET /products/new controllers.Products.newProduct()
GET /products/:ean controllers.Products.details(ean: String)
POST /products/ controllers.Products.save() DELETE /products/:ean controllers.Products.delete(ean: String)
action和route对应关系如下图
三 . 添加Model Class—— /app/models/Product.java
3.1) 数据模型
public class Product {
public String ean;
public String name;
public String description;
public Product(){}
public Product(String ean, String name, String description){
this .ean = ean;
this .name = name;
this .description = description;
}
public String toString(){
return String.format("%s - %s", ean, name, description);
}
}
说明: 不同于Java,play使用public,不用setter和getter方法
3.2)为了模拟练习,在Product.java中加一些模拟数据
// mocking some data
private static List products;
static {
products = new ArrayList();
products.add( new Product("111111111","Paperclips 1","Paperclips description 1"));
products.add( new Product("222222222","Paperclips 2","Paperclips description 2"));
products.add( new Product("333333333","Paperclips 3","Paperclips description 3"));
products.add( new Product("444444444","Paperclips 1","Paperclips description 4"));
products.add( new Product("555555555","Paperclips 1","Paperclips description 5"));
}
3.3) 数据处理方法——findAll(), findByEan(), findByName(), remove(), save()
public static List findAll(){
return new ArrayList(products);
}
public static Product findByEan(String ean){
for (Product candidate : products){
if (candidate.ean.equals(ean)){
return candidate;
}
}
return null ;
}
public static List findByName(String term){
final List results = new ArrayList();
for (Product candidate : products){
if (candidate.name.toLowerCase().contains(term.toLowerCase())){
results.add(candidate);
}
}
return results;
}
public static boolean remove(Product product){
return products.remove(product);
}
public void save(){
products.remove(findByEan( this .ean));
products.add( this );
}
完整代码为
Java Code
四、添加和修改模板文件 ——list.scala.html, details.scala.html
4.1) list.scala.html
@(products:List[Product])
@main("Product catalogue"){
< h2 > All Producth2 >
< table class ="table table-striped" >
< thead >
< tr >
< th > EANth >
< th > Nameth >
< th > Descriptionth >
tr >
thead >
< tbody >
@for(product < - products){
>
< td >< a href ="@routes.Products.details(product.ean)" > @product.eana > td >
< td >< a href ="@routes.Products.details(product.ean)" > @product.namea > td >
< td >< a href ="@routes.Products.details(product.ean)" > @product.descriptiona > td >
tr >
}
tbody >
table >
}
相应的,修改controller用于显示该模板的HTML内容,即修改/app/controllers/Products.java中的list()方法
...
import views.html.*; // 引入模板
public class Products extends Controller {
public static Result list() {
List products = Product.findAll();
return ok(list.render(products));
}
...
}
在浏览器地址栏输入: http://localhost:9000/products
4.2) details.scala.html
说明: 本模板使用了Play表单Form
@(productForm:Form[Product]) —>— productForm 是play.data.Form.form()的方法,在controller中定义
@import helper._ —>— 引入生产HTML,@import helper.twitterBootstrap._ 生产的HTML符合 Twitter Bootstrap标准
@helper.form(action = routes.Products.save()){ —>— 生产的 HTML的Form代码, 并将数据提交给controller的save()方法处理,@helper.inputText 生产的 HTML的input代码,@helper.textarea 生产的 HTML的textarea代码
Product(@productForm("name").valueOr("New")) —>— productForm.field("name")的缩写,请求表单中名为name的域(field)值,如何该值不存在,则创建一个"New"为默认值。
最后生产的HTML代码如下
< form action ="/products" method ="GET" >
< fieldset >
< legend > Product(New)legend >
< div class ="clearfix " id ="ean_field" >
< label for ="ean" > EANlabel >
< div class ="input" >
< input type ="text" id ="ean" name ="ean" value ="" >
< span class ="help-inline" > span >
< span class ="help-block" > Requiredspan >
div >
div >
< div class ="clearfix " id ="name_field" >
< label for ="name" > Namelabel >
< div class ="input" >
< input type ="text" id ="name" name ="name" value ="" >
< span class ="help-inline" > span >
< span class ="help-block" > Requiredspan >
div >
div >
< div class ="clearfix " id ="description_field" >
< label for ="description" > descriptionlabel >
< div class ="input" >
< textarea id ="description" name ="description" > textarea >
< span class ="help-inline" > span >
< span class ="help-block" > span >
div >
div >
fieldset >
< input type ="submit" class ="btn btn-primary" value ="Save" />
< a class ="btn" href ="/products" > Cancela >
form >
HTML Code
相应的,修改controller用于显示该模板的HTML内容,即修改/app/controllers/Products.java中的newProduct()()方法
public static Result newProduct(){
return ok(details.render(productForm));
}
在浏览器地址栏输入: http://localhost:9000/products/new
五、处理表单提交和验证 ——binding values from the request
play可以从HTTP request获取一个包含name/value对的映射Map,实现这个功能的是类Form的bindFromRequest()方法,该方法会返回一个Form对象,故我们可以在保存的时候获取页面表单的数据。
5.1) 在/app/models/Products.java中加入
public class Products extends Controller {
...
public static Result save() {
Form boundForm = productForm.bindFromRequest();
Product product = boundForm.get();
product.save();
return ok(String.format("Saved product %s", product));
}
}
5.2) 在/app/models/Product.java中加入验证
...
import play.data.validation.Constraints;
public class Product {
...
@Constraints.Required
public String ean;
@Constraints.Required
public String name;
public String description;
...
}
5.3) 对/app/models/Products.java中save()的改进
对模型加入验证数据后,希望能在controller中显示相应的成功、失败信息,这里可以使用play的validation表单功能,修改save()方法如下:
public static Result save() {
Form boundForm = productForm.bindFromRequest();
if (boundForm.hasErrors()) {
flash( "error", "Please correct the form below.");
return badRequest(details.render(boundForm));
}
Product product = boundForm.get();
product.save();
flash( "success",String.format( "Successfully added product %s", product));
return redirect(routes.Products.list());
}
同时还必须在app/views/main.scala.html的
标签的开头中加入实现flash scope的代码:
@if(flash.containsKey("success")){
< div class ="alert alert-success" >
@flash.get("success")
div >
}
@if(flash.containsKey("error")){
< div class ="alert alert-error" >
@flash.get("error")
div >
}
说明: flash scope是用于 在请求(request)的时候存储变量的一个地方,在下一次请求开始之前存储在flash scope的值一直保持着,所以flash 是flash scope用来显示失败和成功是最理想的!
六、在列表中加入删除功能 ——app/views/products/list.scala.html
6.1) 在routes中加入DELETE路由
DELETE /products/:ean controllers.Products.delete(ean: String)
6.2) 在list.scala.html中加入JS代码,本例用JS处理Ajax请求
说明: 整个案例代码
你可能感兴趣的:(《Play for Java》学习笔记(二)基本的CRUD应用)
有声书配音工作,有声书配音员招聘
配音就业圈
一、有声书配音工作有声书配音工作指的是将文字转化为声音的工作,包括朗读、演绎等环节。兼职副业推荐公众号,配音新手圈,声优配音圈,新配音兼职圈,配音就业圈,鼎音副业,有声新手圈,每天更新各种远程工作与在线兼职,职位包括:写手、程序开发、剪辑、设计、翻译、配音、无门槛、插画、翻译、等等。。。每日更新兼职。有声书配音可以让听众通过声音来感受书中的情节和人物形象,为听书体验增添了更多乐趣。二、有声书配音员
党员干部要勇于自我革命
雪莲花812
2023年第3期《求是》发表《全面从严治党探索出依靠党的自我革命跳出历史周期率的成功路径》文章,文章强调,自我革命就是补钙壮骨、排毒杀菌、壮士断腕、去腐生肌,不断清除侵蚀党的健康肌体的病毒,不断提高自身免疫力,防止人亡政息。勇于自我革命是我们党最鲜明的品格,也是我们党最大的优势。党员干部应加强自我革命、促进自我提高,让自己的思想状态、能力水平、工作作风能够适应新时代新任务的需要。要做理念理论求真求
口说作文
库保辉
前几天偶然听到儿子在念诗:“《咏海》作者:库煜阳大海蓝如天,一望不见头。看见鱼儿游,赶紧去抓鱼。”听到这首“诗”,感觉有点怪怪的。我好奇地问了他一句:“你念的诗是你自己创作的吧?”儿子自豪地说:“是啊!是我自己创作的,你要是不相信,我还可以念几首你听听。”接着他又念了几首,随便一个主题,他都能说四句,感觉还真有点“诗”的味道。看到儿子的表现,我很开心。我开始有意识地引导他口头说作文,这时候,我发现
忙碌
樂馭
这两天盯着时间工作,专注完成一件事情,一直都在解决问题,跟进问题,沟通问题。一直在循环模式,搞得时间过得很快,但还没得到想要的结果,有点折腾。希望今天能把昨天发现的问题都解决了。原计划的事情虽然拖延了一天,但还是希望可以在今天内得到解决。
python automl_自动化的机器学习(AutoML):将AutoML部署到云中
编辑推荐:在本文中,将介绍一种AutoML设置,使用Python、Flask在云中训练和部署管道;以及两个可自动完成特征工程和模型构建的AutoML框架。本文来自于搜狐网,由火龙果软件Alice编辑、推荐。AutoML到底是什么?AutoML是一个很宽泛的术语,理论上来说,它囊括从数据探索到模型构建这一完整的数据科学循环周期。但是,我发现这个术语更多时候是指自动的特征预处理和选择、模型算法选择和超
雌雄莫辨的醉酒人
花小趣
漆黑寒冷的雨夜,阴冷的风呼呼挂过街道,透着一丝诡异。屋檐下,传来嘀嗒—嘀嗒的雨声。这时一个凄厉的叫声从一排灯红酒绿的房子后面传了出来,萦绕低徊一阵后,消失在夜空里。厕所里,一个赤裸的女人,不知是死是活。一个吓得屁股尿流的男人跌跌撞撞爬出厕所,结结巴巴地说。昏黄的路灯下,一只野狗猫着腰,小心翼翼向女人走去,正要张口,一根棒子便结结实实打在了狗背上,野狗狂叫着夹着尾巴逃跑了。一辆黑色轿车停在路边,一个
区块链来了|跨境转账可以实时到账?全球支付体系将重构
weixin_34185512
swift 数据库 区块链
面对资金的速度远不及信息传输速度的现实,欧美银行巨头们期望通过区块链技术,实现全球范围的实时结算清算。从金融业到IT领域,去年下半年开始,凭借其去中心化、去信任的机制迅速蹿红,在全球市场上得到包括各国央行、欧美银行们的认同后,迅速蹿红的“区块链”技术,将首先对哪个行业产生冲击?不少人的答案都指向了支付行业。毕竟,眼下传统的支付方式并不令人满意,从银行到企业,都希望利用新科技重构原本累赘的业务体系,
RN 新架构到底牛在哪?一张图看懂「砍线程、省 Bridge、帧率拉满」
wayne214
架构 react native
新旧架构的核心区别“新架构把原来基于Bridge的异步JSON通信,变成了基于JSI的同步直接调用,并拆掉了启动时全量初始化、按需加载模块”。下面从6个维度把差异展开说明。维度旧架构(≤0.67)新架构(Fabric+TurboModules)通信模型Bridge:JS→JSON→原生,异步、串行、易阻塞JSI:JS直接持有C++HostObject引用,可同步调用渲染管线JS线程→Shadow线
马小秋秋言物语直播间|不甘平庸的普通人,如何才能修得高境界?
秋言物语
今天是马小秋陪伴您的第4231天【读者提问】每个人的境界不同,面对失去、损失、被欺骗,高境界的人会觉得这不过是一段缘、自有因果相随;但普通人会觉得懊悔不已,甚至备受打击。请问马老师,普通人该如何修得一种高境界呢?人在不同的阶段,有不同的心境,对待人事物的态度和方法也不一样。这一切都取决于个人的认知能力。由于每个人的认知能力不同,在面对问题、处理问题的时候,就会产生不同的心态和结果。认知能力强的人,
为广大网友收集的经典小游戏合辑(VC++),你想要的都有
程序员欧阳沐
很多经典小游戏合辑(VC++),有超级玛丽,坦克大战,黑白棋,飞机大战,还有两款不知道名字,还附有源码,学习和娱乐都有哦。源码目录结构图:部分源码展示(由于源码比较多,所以就不在此全部展示,需要的可以私信me):如果你想学c++编程可以私信小编,发送“01”获取源码或2019年最新学习资料“从零基础到精通”。部分资料展示如下:您的关注便是小编每日不断更新分享的源动力,谢谢。学c++可抠裙:74五五
今日头条极速版邀请码是多少?(附22个邀请码三连冠与填写方法)确定详细
桃朵十三
今日头条极速版(免费22个邀请码三连冠)邀请码大全,今日头条极速版邀请码是【1552042938】或【Q04911201】或【1451455648】百人大战的战场上需要的是对局势的把控,下面给大家带来一些今日头条极速版专属的福利,大家可以免费的兑换到不少皮肤和道具,今日头条极速版app上吃鸡其实更有把握。今日头条极速版是一款十分精彩的动作新闻app,根据热门动漫改编的资讯软件,还原经典角色和技能,
如何维持长期的恋爱关系?
自先沉稳而后爱人呀
年轻的时候家里长辈们都比较奇怪,让我多谈一点恋爱,说要多多积累人生体验。可我对待感情总是很认真,认识一个人就想跟他走一辈子。再后来,发现他们说的是对的,恋爱中很多人都只是“陪练”,让你最终知道自己真正想要什么样的人和生活。喜欢是因为缘分和吸引,而长久和一个人相处,需要很多的因缘和选择能力。我哥从小就告诉我,遇到喜欢的一定要执着一点,这样自己虽折磨一时,但不会后悔。我经历了很多轰轰烈烈的感情,都如同
《娇妻迷雾》王菲菲老陈(完结篇)全文免费阅读【笔趣阁】
寒风书楼
《娇妻迷雾》王菲菲老陈(完结篇)全文免费阅读【笔趣阁】主角:王菲菲老陈简介:“刷了那么多礼物,不知道菲菲会不会偷偷让我......”老陈望着手机视频里女主,忍不住的惊叹道。可以关注微信公众号【叶子书楼】去回个书號【5】,即可免费阅读【娇妻迷雾】小说全文!王菲菲故作生气,嘟着小嘴,心里却不反感,因为老陈救过她,被一个自己不讨厌的人欣赏,反而有点淡淡得意。好你个老陈,亏我平时那么高看你,看来你跟其他男
剧本杀《误入杀手镇的0和1》复盘详细解析+凶手角色剧透答案真相
VX搜_小燕子复盘
为了你获得更好的游戏体验,本文仅显示《误入杀手镇的0和1》剧本杀部分真相复盘,获取完整真相复盘只需两步①【微信关注公众号:集美复盘】②回复【误入杀手镇的0和1】即可查看获取哦﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎1、剧本杀《误入杀手镇的0和1》角色介绍洛萝和刘嘎子作案过程中,萧贱贱先用枕头捂四了王有钱,然后扮作王有钱的模样在【王有钱大宫殿】游荡,所以洛萝扮
33、CentOS系统安装与配置全攻略
tgb34567890
Linux服务器管理实战指南 CentOS安装 CentOS配置 系统更新
CentOS系统安装与配置全攻略1.安装CentOS及系统更新与增强在使用引导加载器命令时要格外小心,因为不当使用可能会导致操作系统无法启动。接下来,我们将学习如何增强CentOS7的最小安装,添加额外的管理和开发工具。1.1准备工作拥有具有root权限的CentOS7操作系统的最小安装。连接到互联网,以便下载额外的软件包。1.2操作步骤系统更新:以root用户登录,输入以下命令:yum-yupd
手游内部号申请平台 游戏托号内部福利号平台 仙侠手游内部号申请平台怎么找
会飞滴鱼儿
(如果你玩手游,请你认真看完这篇文章。因为下面的内容可能会颠覆你的认知。)我本人从2015年从事手游研发和运营5年时间,曾经是某一游戏大厂的运营主管,这五年时间里我接手过17款热门游戏的研发与运营工作。但在2020年,我毅然决然的退出游戏行业。所有才敢爆出手游产业链的内幕。大家玩游戏肯定都遇到过托,其实市面上百分之85的手游里面都有手游托,甚至达到一款游戏一个服都有一个托。我们业内以内部号来称呼。
云原生环境中Consul的动态服务发现实践
AI云原生与云计算技术学院
AI云原生与云计算 云原生 consul 服务发现 ai
云原生环境中Consul的动态服务发现实践关键词:云原生,服务发现,Consul,微服务,动态注册,健康检查,Raft算法摘要:本文深入探讨云原生环境下Consul在动态服务发现中的核心原理与实践方法。通过剖析Consul的架构设计、核心算法和关键机制,结合具体代码案例演示服务注册、发现和健康检查的全流程。详细阐述在Kubernetes、Docker等云原生技术栈中的集成方案,分析实际应用场景中的
云原生环境里Nginx的故障排查思路
AI云原生与云计算技术学院
AI云原生与云计算 云原生 nginx 运维 ai
云原生环境里Nginx的故障排查思路关键词:云原生、Nginx、故障排查、容器化、Kubernetes摘要:本文聚焦于云原生环境下Nginx的故障排查思路。随着云原生技术的广泛应用,Nginx作为常用的高性能Web服务器和反向代理服务器,在容器化和编排的环境中面临着新的故障场景和挑战。文章首先介绍云原生环境及Nginx的相关背景知识,接着阐述核心概念和联系,详细讲解故障排查的核心算法原理与操作步骤
谷歌云(GCP)入门指南:从零开始搭建你的第一个云应用
AI云原生与云计算技术学院
AI云原生与云计算 perl 服务器 网络 ai
谷歌云(GCP)入门指南:从零开始搭建你的第一个云应用关键词:谷歌云、GCP、云应用搭建、入门指南、云计算摘要:本文旨在为初学者提供一份全面的谷歌云(GCP)入门指南,详细介绍如何从零开始搭建第一个云应用。通过逐步分析推理,我们将涵盖背景知识、核心概念、算法原理、数学模型、项目实战、实际应用场景、工具资源推荐等多个方面,帮助读者深入理解GCP的使用方法和搭建云应用的流程,为后续的云计算实践打下坚实
青春就这么回事,那么喧嚣,最后却沉寂到无人知晓
超喜番你
青春啊,提到这个词,我们多多少少有些怀念,甚至有些热泪盈眶呢。那是我们已逝去的最美好的时光,那是我们最无忧无虑的时光。我们的青春是那么的喧嚣1.我们的青春啊,是那么的喧嚣,记忆中的我们是那么的欢乐,好像大部分的时光都是带着微笑的。2.记忆中的画面是白色的桌布,干净的校服,满满操场的人望着冉冉升起的国旗。3.记忆中的画面是夕阳将正片天空染上了金黄色,远处传来妈妈呼唤回家吃饭的声音。4.我们的青春是与
Java-Script学习笔记-1
许我写余生ღ
JavaScript 学习 javascript 前端
文章目录前言JavaScript基本介绍一、js的嵌入方法内嵌式外链式行内式二、js简单语法语句注释变量JavaScript保留关键字三、JavaScript作用域Javascrpt局部变量JavaScript全局变量四、运算符算术运算符比较运算符赋值运算符逻辑运算符五、JavaScript数据类型JavaScript如何判断数据类型数字类型(Number)字符串型(string)布尔类型(boo
今日冥想:创造一个有价值感的内在
子木有痕
现在让你的身体放松,让自己感觉到很舒服,保持脊椎的中正,双腿稍微的分开,给自己一个欣赏的微笑,慢慢地闭上你美丽的眼睛。关注你的呼吸,我的眼睑合上了,合上双眼时,我感觉自己又创造了另一番景象,那是属于我内在的景象。当我离开外在的环境,就不再能觉察到你的眼神和你的身体,而只能觉察到自己。我感觉到自己是在有意识地创造一种情景,在这个情景中,我想要做一些特别的事情,这个特别的事情就是从内在给予自己关注、尊
leetcode 46 全排列
小小尧
把第一个数值依次和后面的交换,并把第一个数值固定,后面的数字进行递归。改进点:其中是从第一位和第一位开始的,所以当i==left的时候,需要做交换操作,可以节约一些时间leetcode46全排列
新年寄语
罗桥果
不知不觉,在一场突如其来的大雪中,在严寒中在哆嗦中不情愿的迈入了2019。年龄越来越大就越是不希望各种节日的到来,特别是我这种一无文化二无特长三无力气的农民。过节又收不到红包不说还得把本是拮据的毛爷爷往外送。孩子们越来越大,父母也越来越年老,心里的压力和焦虑也是越来越多,时刻都感觉身心疲累。每天长达十四五个小时的上班时间对于我这个腰椎盘突出的人来说是苦不堪言。曾经无数次动过不干的念头可是又一次次的
苔
coffee漫
一滴清如澈的水珠苔清·袁枚白日不到处,青春恰自来。苔花如米小,也学牡丹开。过年那会第一次看到好多公众号上分享了《经典咏流传》中梁俊老师和他的孩子们一起唱的《苔》,于是我也去看看到底有多好。当梁老师问到你知道为啥要带你们唱《苔》吗?是希望我们可以像牡丹一样开放。当孩子们开口唱《苔》时,那纯真的声音,简单的曲调,就像是见到了许久未见的老朋友,见到了倾慕已久的心上人的感觉,激动,更多的是感动。教孩子们唱
操作系统笔记:进程调度(Process Scheduling)
笑衬人心。
操作系统笔记 笔记 os 进程调度
一、什么是进程调度进程调度(ProcessScheduling)是操作系统中负责选择下一个要运行的进程的一项核心功能。在多道程序设计系统中,多个进程竞争CPU资源,调度器根据特定策略选择一个进程运行。目标:提高CPU利用率提高系统吞吐量减少平均等待时间保证响应时间实现公平性与优先级二、调度类型调度类型说明长程调度(Long-term)决定哪些进程进入就绪队列中程调度(Mid-term)暂停/恢复进
性能优化实践:Modbus 在高并发场景下的吞吐量提升(一)
一、引言**在工业自动化领域,Modbus协议凭借其简单易用、开放性高以及广泛的设备支持等特点,成为了设备间通信的重要标准之一。自1979年由Modicon公司(现为施耐德电气)首次开发以来,Modbus协议历经多年发展,已广泛应用于各类工业场景,从工厂自动化生产线到智能建筑控制系统,从能源管理系统到远程监控平台,Modbus协议无处不在,连接着各种不同类型的设备,实现数据的交换与控制指令的传递。
正面的表达
心语交流
我们每天都要和家人、朋友、同事、陌生人等进行大量的沟通,通过沟通表达进行协作,让他人知道自己的想法,也让自己知道他人的想法。虽然每天都在用,可真的是在用正确的方式表达吗。也许还真的没有,不然怎么会有那么多因为说话不投机,说话方式不对等原因造成的人际关系紧张及家庭关系紧张的情况。不同的场合有不同的说话表达方式和方法,我这次想分享的是如何在家庭生活中进行正确的表达,我看到过很多案例,夫妻反目,孩子叛逆
杭州
李某某_777e
和我在杭州的街头走一走不停留不停留是不存在的七月的杭州街头闷的人不得不时而驻足休息三个小时后就要起飞去张家口了又是一个陌生环境tips不要为别人说过的话而感动,说了什么不重要,做了什么才重要
这些句子,怕是一辈子也写不出来
一念only
1、且视他人之疑目如盏盏鬼火,大胆地去走你的夜路。——史铁生(我的座右铭)2、矮人看戏何曾见,都是随人说短长。——赵翼3、无法达成的目标才是我的目标,迂回曲折的路才是我想走的路,而每次的歇息,总是带来新的向往。——赫尔曼·黑塞4、如果想征服生命中的焦虑,活在当下,活在每一个呼吸里。——马特·海格5、于浩歌狂热之际中寒;于天上看见深渊。于一切眼中看见无所有;于无所希望中得救。——鲁迅6、愿中国青年都
iOS http封装
374016526
ios 服务器交互 http 网络请求
程序开发避免不了与服务器的交互,这里打包了一个自己写的http交互库。希望可以帮到大家。
内置一个basehttp,当我们创建自己的service可以继承实现。
KuroAppBaseHttp *baseHttp = [[KuroAppBaseHttp alloc] init];
[baseHttp setDelegate:self];
[baseHttp
lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具
brotherlamp
linux linux教程 linux视频 linux自学 linux资料
那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和“淘气” 。
在本文中,我将讨论一个名为“lolcat”的小工具 – 它可以在终端中生成彩虹般的颜色。
何为 lolcat ?
Lolcat 是一个针对 Linux,BSD 和 OSX 平台的工具,它类似于 cat 命令,并为 cat
MongoDB索引管理(1)——[九]
eksliang
mongodb MongoDB管理索引
转载请出自出处:http://eksliang.iteye.com/blog/2178427 一、概述
数据库的索引与书籍的索引类似,有了索引就不需要翻转整本书。数据库的索引跟这个原理一样,首先在索引中找,在索引中找到条目以后,就可以直接跳转到目标文档的位置,从而使查询速度提高几个数据量级。
不使用索引的查询称
Informatica参数及变量
18289753290
Informatica 参数 变量
下面是本人通俗的理解,如有不对之处,希望指正 info参数的设置:在info中用到的参数都在server的专门的配置文件中(最好以parma)结尾 下面的GLOBAl就是全局的,$开头的是系统级变量,$$开头的变量是自定义变量。如果是在session中或者mapping中用到的变量就是局部变量,那就把global换成对应的session或者mapping名字。
[GLOBAL] $Par
python 解析unicode字符串为utf8编码字符串
酷的飞上天空
unicode
php返回的json字符串如果包含中文,则会被转换成\uxx格式的unicode编码字符串返回。
在浏览器中能正常识别这种编码,但是后台程序却不能识别,直接输出显示的是\uxx的字符,并未进行转码。
转换方式如下
>>> import json
>>> q = '{"text":"\u4
Hibernate的总结
永夜-极光
Hibernate
1.hibernate的作用,简化对数据库的编码,使开发人员不必再与复杂的sql语句打交道
做项目大部分都需要用JAVA来链接数据库,比如你要做一个会员注册的 页面,那么 获取到用户填写的 基本信后,你要把这些基本信息存入数据库对应的表中,不用hibernate还有mybatis之类的框架,都不用的话就得用JDBC,也就是JAVA自己的,用这个东西你要写很多的代码,比如保存注册信
SyntaxError: Non-UTF-8 code starting with '\xc4'
随便小屋
python
刚开始看一下Python语言,传说听强大的,但我感觉还是没Java强吧!
写Hello World的时候就遇到一个问题,在Eclipse中写的,代码如下
'''
Created on 2014年10月27日
@author: Logic
'''
print("Hello World!");
运行结果
SyntaxError: Non-UTF-8
学会敬酒礼仪 不做酒席菜鸟
aijuans
菜鸟
俗话说,酒是越喝越厚,但在酒桌上也有很多学问讲究,以下总结了一些酒桌上的你不得不注意的小细节。
细节一:领导相互喝完才轮到自己敬酒。敬酒一定要站起来,双手举杯。
细节二:可以多人敬一人,决不可一人敬多人,除非你是领导。
细节三:自己敬别人,如果不碰杯,自己喝多少可视乎情况而定,比如对方酒量,对方喝酒态度,切不可比对方喝得少,要知道是自己敬人。
细节四:自己敬别人,如果碰杯,一
《创新者的基因》读书笔记
aoyouzi
读书笔记 《创新者的基因》
创新者的基因
创新者的“基因”,即最具创意的企业家具备的五种“发现技能”:联想,观察,实验,发问,建立人脉。
第一部分破坏性创新,从你开始
第一章破坏性创新者的基因
如何获得启示:
发现以下的因素起到了催化剂的作用:(1) -个挑战现状的问题;(2)对某项技术、某个公司或顾客的观察;(3) -次尝试新鲜事物的经验或实验;(4)与某人进行了一次交谈,为他点醒
表单验证技术
百合不是茶
JavaScript DOM对象 String对象 事件
js最主要的功能就是验证表单,下面是我对表单验证的一些理解,贴出来与大家交流交流 ,数显我们要知道表单验证需要的技术点, String对象,事件,函数
一:String对象;通常是对字符串的操作;
1,String的属性;
字符串.length;表示该字符串的长度;
var str= "java"
web.xml配置详解之context-param
bijian1013
java servlet web.xml context-param
一.格式定义:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>contextConfigLocationValue></param-value>
</context-param>
作用:该元
Web系统常见编码漏洞(开发工程师知晓)
Bill_chen
sql PHP Web fckeditor 脚本
1.头号大敌:SQL Injection
原因:程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,
获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
本质:
对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。
示例:
String query = "SELECT id FROM users
【MongoDB学习笔记六】MongoDB修改器
bit1129
mongodb
本文首先介绍下MongoDB的基本的增删改查操作,然后,详细介绍MongoDB提供的修改器,以完成各种各样的文档更新操作 MongoDB的主要操作
show dbs 显示当前用户能看到哪些数据库
use foobar 将数据库切换到foobar
show collections 显示当前数据库有哪些集合
db.people.update,update不带参数,可
提高职业素养,做好人生规划
白糖_
人生
培训讲师是成都著名的企业培训讲师,他在讲课中提出的一些观点很新颖,在此我收录了一些分享一下。注:讲师的观点不代表本人的观点,这些东西大家自己揣摩。
1、什么是职业规划:职业规划并不完全代表你到什么阶段要当什么官要拿多少钱,这些都只是梦想。职业规划是清楚的认识自己现在缺什么,这个阶段该学习什么,下个阶段缺什么,又应该怎么去规划学习,这样才算是规划。
国外的网站你都到哪边看?
bozch
技术 网站 国外
学习软件开发技术,如果没有什么英文基础,最好还是看国内的一些技术网站,例如:开源OSchina,csdn,iteye,51cto等等。
个人感觉如果英语基础能力不错的话,可以浏览国外的网站来进行软件技术基础的学习,例如java开发中常用的到的网站有apache.org 里面有apache的很多Projects,springframework.org是spring相关的项目网站,还有几个感觉不错的
编程之美-光影切割问题
bylijinnan
编程之美
package a;
public class DisorderCount {
/**《编程之美》“光影切割问题”
* 主要是两个问题:
* 1.数学公式(设定没有三条以上的直线交于同一点):
* 两条直线最多一个交点,将平面分成了4个区域;
* 三条直线最多三个交点,将平面分成了7个区域;
* 可以推出:N条直线 M个交点,区域数为N+M+1。
关于Web跨站执行脚本概念
chenbowen00
Web 安全 跨站执行脚本
跨站脚本攻击(XSS)是web应用程序中最危险和最常见的安全漏洞之一。安全研究人员发现这个漏洞在最受欢迎的网站,包括谷歌、Facebook、亚马逊、PayPal,和许多其他网站。如果你看看bug赏金计划,大多数报告的问题属于 XSS。为了防止跨站脚本攻击,浏览器也有自己的过滤器,但安全研究人员总是想方设法绕过这些过滤器。这个漏洞是通常用于执行cookie窃取、恶意软件传播,会话劫持,恶意重定向。在
[开源项目与投资]投资开源项目之前需要统计该项目已有的用户数
comsci
开源项目
现在国内和国外,特别是美国那边,突然出现很多开源项目,但是这些项目的用户有多少,有多少忠诚的粉丝,对于投资者来讲,完全是一个未知数,那么要投资开源项目,我们投资者必须准确无误的知道该项目的全部情况,包括项目发起人的情况,项目的维持时间..项目的技术水平,项目的参与者的势力,项目投入产出的效益.....
oracle alert log file(告警日志文件)
daizj
oracle 告警日志文件 alert log file
The alert log is a chronological log of messages and errors, and includes the following items:
All internal errors (ORA-00600), block corruption errors (ORA-01578), and deadlock errors (ORA-00060)
关于 CAS SSO 文章声明
denger
SSO
由于几年前写了几篇 CAS 系列的文章,之后陆续有人参照文章去实现,可都遇到了各种问题,同时经常或多或少的收到不少人的求助。现在这时特此说明几点:
1. 那些文章发表于好几年前了,CAS 已经更新几个很多版本了,由于近年已经没有做该领域方面的事情,所有文章也没有持续更新。
2. 文章只是提供思路,尽管 CAS 版本已经发生变化,但原理和流程仍然一致。最重要的是明白原理,然后
初二上学期难记单词
dcj3sjt126com
english word
lesson 课
traffic 交通
matter 要紧;事物
happy 快乐的,幸福的
second 第二的
idea 主意;想法;意见
mean 意味着
important 重要的,重大的
never 从来,决不
afraid 害怕 的
fifth 第五的
hometown 故乡,家乡
discuss 讨论;议论
east 东方的
agree 同意;赞成
bo
uicollectionview 纯代码布局, 添加头部视图
dcj3sjt126com
Collection
#import <UIKit/UIKit.h>
@interface myHeadView : UICollectionReusableView
{
UILabel *TitleLable;
}
-(void)setTextTitle;
@end
#import "myHeadView.h"
@implementation m
N 位随机数字串的 JAVA 生成实现
FX夜归人
java Math 随机数 Random
/**
* 功能描述 随机数工具类<br />
* @author FengXueYeGuiRen
* 创建时间 2014-7-25<br />
*/
public class RandomUtil {
// 随机数生成器
private static java.util.Random random = new java.util.R
Ehcache(09)——缓存Web页面
234390216
ehcache 页面缓存
页面缓存
目录
1 SimplePageCachingFilter
1.1 calculateKey
1.2 可配置的初始化参数
1.2.1 cach
spring中少用的注解@primary解析
jackyrong
primary
这次看下spring中少见的注解@primary注解,例子
@Component
public class MetalSinger implements Singer{
@Override
public String sing(String lyrics) {
return "I am singing with DIO voice
Java几款性能分析工具的对比
lbwahoo
java
Java几款性能分析工具的对比
摘自:http://my.oschina.net/liux/blog/51800
在给客户的应用程序维护的过程中,我注意到在高负载下的一些性能问题。理论上,增加对应用程序的负载会使性能等比率的下降。然而,我认为性能下降的比率远远高于负载的增加。我也发现,性能可以通过改变应用程序的逻辑来提升,甚至达到极限。为了更详细的了解这一点,我们需要做一些性能
JVM参数配置大全
nickys
jvm 应用服务器
JVM参数配置大全
/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -
搭建 CentOS 6 服务器(14) - squid、Varnish
rensanning
varnish
(一)squid
安装
# yum install httpd-tools -y
# htpasswd -c -b /etc/squid/passwords squiduser 123456
# yum install squid -y
设置
# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
# vi /etc/
Spring缓存注解@Cache使用
tom_seed
spring
参考资料
http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/
http://swiftlet.net/archives/774
缓存注解有以下三个:
@Cacheable @CacheEvict @CachePut
dom4j解析XML时出现"java.lang.noclassdeffounderror: org/jaxen/jaxenexception"错误
xp9802
java.lang.NoClassDefFoundError: org/jaxen/JaxenExc
关键字: java.lang.noclassdeffounderror: org/jaxen/jaxenexception
使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式
执行时却抛出以下异常:
Exceptio