简要精通怎样才算精通mysql理解

快速精通心理学_百度百科
快速精通心理学
《快速精通心理学》是2009年中国言实出版社出版的图书。
《快速精通心理学》告诉你社交中的心理现象;教给你与人交往的技巧;剖析了交往中的不良心理;帮你塑造温馨的家庭氛围;帮你建立和谐稳定的工作圈;为你扫除心理障碍,为你的社交铺设通途。
上篇 走近心理学
第一章 感觉——在与外界环境的接触中实现自我的成长
我们怎样触摸世界——感觉
大学生宁愿放弃每天20美元的报酬,也要离开实验室——感觉剥夺
五彩缤纷的世界从何而来——视觉
水墨画中“皎洁”的月亮——有趣的视觉现象
优美动听的声音从何而来——听觉
我们怎样感受冷、热、疼痛——人类的其他感觉
变了味的“珍珠翡翠白玉汤”——感觉适应
第二章 知觉——带有感情色彩的心理印刻
拇指怎能遮住帝国大厦——知觉
花瓶还是人头——知觉的选择性
B还是13——知觉的理解性
有趣的点子图——知觉的整体性
“左看右看上看下看”都一样——知觉的恒常性
戴上棱镜之后还能准确指认目标吗一知觉适应
一斤棉花和一斤铁哪个更重——错觉及其产生原因
第三章 意识——持久而神秘的精神能量
心理学的鸡尾酒会现象——意识及其特征
深不可测的海底冰山——潜意识
梦是妻子,睡眠是丈夫——睡眠与梦
梦从何处而来——梦的形成
做梦会影响休息吗一梦的作用
“忽忽悠悠就瘸了”——心理暗示
舒舒服服地“睡”吧——催眠
为什么会“视而不见,听而不闻”——注意
你能一手画方一手画圆吗——注意分配
第四章 记忆——个可实时更新却无法改写的人脑硬盘
我们是怎么记住事物的——记忆的奥秘
为什么看得清,却记不住——感觉记忆
为什么打完电话就把刚才的号码忘了——短时记忆
一旦记住就永远不会忘记吗——长时记忆
不要等墙倒塌了再来造墙——艾滨浩斯遗忘曲线
记忆中的“虎头豹尾”现象——系列位置效应
怎样记忆会更有效——记忆方法
第五章 动机——解读行为背后的内在动因
徐悲鸿为何在买画时赞画——动机及其功能
五个玩牌的小孩为何心思各异——需要决定动机
为何人在饥肠辘辘时难以自我实现——需要层次理论
为何一心想考好成绩的考生却发挥失常——动机与行为
一夜的真诚换来了一生的辉煌回报——动机与效果不一致
第六章 情绪和情感一一种可控非遗传的后天智力
喜怒哀乐是怎么回事——情绪
情绪是需要满足与否的晴雨表——情绪由需要而定
心境、激情、应激—一隋绪状态分类
短暂的情绪Vs持久的情感——情绪与隋感的区别和联系
情绪的指南针——表情
被“法液”吓死的凶手——情绪与身心健康
如何与不良情绪说“再见”——隋绪调节五法
第七章 智力——智力就是适应力
警车鸣笛寻找受伤的老太太——思维及其特征
人会越来越聪明吗一智力成长曲线
大器晚成的马援——智力的个体差异
高智商就一定有能力吗——智力≠能力
第八章 人格一探究独具魅力的个性
江山易改,本性难移——人格及其特征
人格是天生的还是后天形成的——人格成因
多血质、黏液质、胆汁质、抑郁质——气质及其类型
人心如面,各不相同——性格
性格是生命的“导向仪”——性格影响身心健康
性格可以改变吗——健康性格的培养
第九章 人的社会性——每个人都害怕孤独
我们害怕孤独——人是社会的动物
跟着大多数人走——从众
发人深省的米尔格拉姆实验——社会服从
洪川大师的“神品”是怎样诞生的——社会助长VS社会干扰
为什么“三个和尚没水喝”——社会懈怠
面对呼救,为何人们会坐视不管——旁观者效应
下篇 心理学的应用
第十章 婚恋中的心理学——透视人们的情感世界
刻骨铭心的初恋——初恋的内心体验
情人眼里出西施——恋爱中的晕轮效应
热恋之后的茫然与失落——恋爱中的“高原心理”
多次的谈,多次的等待——恋爱的自惑心理
爱有多深,恨就有多深——热恋需要心理距离
当爱已成往事——失恋后的心理调节
落花有意,流水无情——如何走出单相思
婚礼前迟疑的新娘——“婚前恐惧症”
罗曼蒂克之后的迷茫一新婚心理调适
婚后无话可讲的夫妻——婚后“爱情沉默症”
家庭航船沉没后——离婚后的心理调适
重入围城你做好准备了吗——再婚的心理调适
第十一章 教育中的心理学——了解教育孩子的玄机
布猴妈妈的启示——有奶不是娘
“弄假成真”的谎言——每个孩子都是天才
给孩子一件合适的“睡袍”——配套效应
三次“奖励”后,王老师如愿以偿——巧用褒贬教育孩子
奖励越多就越能延续孩子的好习惯吗一奖励的艺术
再怎么努力也比不上楼上的明明了——习得性无助
半途而止的讲解更有效——蔡加尼克效应
教育孩子莫“超限”——超限效应的启示
第十二章 管理中的心理学——探索管理中人的心理规律
纺织厂调入男工之后的惊人变化——男女搭配,干活不累
鲶鱼的追逐使沙丁鱼存活了下来——引入外部竞争机制
一次失败的研究得来的启示——让员工宣泄不满
六名女工成为被试后工作效率不断提高——人人需要尊重
王先生的困惑迎刃而解了——激励员工有方法
“得到上级的认可,是我最引以为豪的”——让员工拥有归属感
第十三章 职场中的心理学——洞悉职场生存的奥秘
从学生到职员的转变——初涉职场的角色转换
良好的第一印象是职场的敲门砖——走好职场第一步
情绪会像病毒一样传播一防止办公室“情绪污染”
恐惧上班,害怕工作的背后——警惕上班恐瞑症
长假之后为何萎靡不振——摆脱假期综合征
为何精英英年早逝的悲剧频频上演——提防精英综合征
莫做职场“休克”的鱼——越过职场休克期
频繁跳槽带来的恶果——应激反应综合征
第十四章 健康与心理——构建身体与心理的和谐统一
身体健康=健康吗——健康的含义
笑一笑,十年少——心理健康与身体健康息息相关
逃出现代压力网——学会给自己减压
一个陌生女人的来电——合理宣泄有助于健康
强忍眼泪等于“自杀”——哭泣有益健康
一把小小的遮阳伞避免了一场械斗——情绪中的“蝴蝶效应”
第十五章 身边的心理学——解读经典心理效应
“鬼苹果”土豆的推广——禁果效应
被出版商利用了的总统一名人效应
“机长综合征”的心理学解释一权威效应
山里的水真甜——安慰剂效应
“长沙妹子不可交,面如桃花心似刀”——刻板效应
以小人之心,度君子之腹——投射效应
被噪音吓得大败而逃的元军——噪音效应
算命先生为什么说得很准——巴纳姆效应
排队上车一拥而上的原因何在一破窗效应
乐极生悲,祸福相随—一心理摆效应
李白缘何一生漂泊,壮志难酬——亡斧疑邻效应
大街上跟我穿一样衣服的人为何越来越多——视网膜效应
师不必贤于弟子一贝尔效应与戴维现象红脸血DK 装备主要是堆全能还是堆精通?_百度知道
红脸血DK 装备主要是堆全能还是堆精通?
习惯除力量耐力外首堆精通急速全能暴击(脸黑指望暴击直没堆)
其他类似问题
为您推荐:
其他6条回答
虽我堆精通理解副属性绿甲优先其溅射、精通、全能收益相差仿佛急速略优于爆击全能实太难堆
除主属性 精通 绿甲这两个是最好的 绿甲这个随缘吧 我现在就披风戒指饰品有 哎 剩下的推荐溅射 全能看起来挺美 但堆起来难 但相比之下急速暴击更没用
精通吧,全能不会成为主属性的加成太低,代价太大
回复 一刀萌死大捅德 :哦,谢谢
绿甲,力量,精通,全能
那应该是全能和什么?
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
在这一期的
中,Scott Davis 将向您展示 Grails 插件的精彩世界。向应用程序中添加新功能将是一件再简单不过的事情。您将领略插件是如何具有如此魔力的,您还会在 Blogito 应用程序中使用一个插件来实现强大的搜索功能。
Scott Davis 是国际知名作家、演讲家、软件开发人员。他是
的创始人,这是一家 Groovy 和 Grails 培训公司。他出版的书籍有 、、 和 。他为 IBM developerWorks 撰写两部正在刊发的系列文章: 和 。
在开始阶段, 主要着眼于核心 Grails 功能。对如何将基础部件组合在一起了解得越多,将其结合起来构建一个完善的产品应用程序就会变得越容易。尽管我前面多次提到过插件,但我均有意回避了对插件做深入的介绍。现在,该是介绍的时候了。
在接下来的几篇系列文章中,我将与您一起探索 Grails 插件系统。最早,Grails 平台的构建对可插入性是有所考虑的。正因为有了这个虽小却十分重要的考虑,我们才能很方便地利用上百个预捆绑的功能块。
在本文写作之时,清单 1 所示的 Groovy 脚本已经能够返回 225 个插件。(有关此脚本如何工作的详细信息,请参见 “”。)清单 1. 计算可用 Grails 插件的简单 Groovy 脚本def addr = "http://plugins.grails.org/.plugin-meta/plugins-list.xml"
def plugins = new XmlSlurper().parse(addr)
def count = 0
plugins.plugin.each{
println it.@name
println "Total number of plugins: ${count}"要获得一个更为友好的列表,可以在命令提示符后键入 grails list-plugins 或访问 Grails Plugins 站点(参见 )。何为插件?老练的 Java™ 开发人员都是一些精明的探寻者和收集者。他们从不梦想着去编写自已的日志库;而是简单地把 log4j JAR 放入其类路径。需要一个 XML 解析器吗?那好,将 Xerces JAR 添加到您的项目中即可。这些可插入的功能块是面向对象编程的可重用性的一种体现。
Grails 插件可服务于同样的目的,不过,规模更大。它们可以包括很多 JAR 及 GroovyServer Page (GSP)、控制器、TagLib、服务等。就像 SiteMesh 将两个 GSP 合并成一个一样,插件可以将两个或多个 Grails 应用程序合并成一个。这样您就可以将更多的精力用于核心业务需求,在需要的时候,从外部资源加入所需的额外功能 — 查询、认证、备用表示层等。
此外,插件实质上也是外部 资源。虽然 Grails 开发团队已经编写了一些有价值的插件,但绝大多数插件仍来自于社区。实际上,Grails 团队一直致力于在适当的时候将其核心功能整合进插件,这就使得 Grails 自身在每次发布的时候都更小也更为稳定。
那么如何将其应用到 Blogito — 您在本系列中逐步构建的这个 “小型博客” 应用程序中呢?假设您想添加的下一个功能是本地搜索功能。并且您愿意采用一个现有的解决方案而不是从头构建一个您自已的搜索基础架构,那么请往下看。
安装一个搜索插件这个搜索插件能为您的应用程序带来类似 Google 那样的搜索能力。它使用 Apache Lucene 创建索引,用 Compass 将索引钩挂到 Grails Object Relational Mapping (GORM)/Hibernate 生命周期(参见 )。这就意味着每当您创建、更新或删除一个 domain 类时,Lucene 索引都会相应更新。
要想安装此插件,请键入 grails install-plugin searchable。(下一章节将会深入介绍安装插件时的技术细节。)
接下来,将这行代码 — static searchable = true — 添加到 grails-app/domain/Entry.groovy,如清单 2 所示:清单 2. 让 Entry 类成为可查询的class Entry {
static searchable = true
static constraints = {
summary(maxSize:1000)
filename(blank:true, nullable:true)
dateCreated()
lastUpdated()
static mapping = {
sort "lastUpdated":"desc"
static belongsTo = [author:User]
String title
String summary
String filename
Date dateCreated
Date lastUpdated
}请注意:必须要显式地让 domain 类变成可搜索的。这意味着您可以继续将基础架构数据,比如登录和密码,保存在隐藏的 User 类中。(关于可搜索主题的在线文档提供了有关如何指定哪些类和字段可被包括到索引中的更多信息;请参见 。)
有了这一行代码,就为 Blogito 赋予了 Lucene 和 Compass 的强大功能。键入 grails run-app,启动这个应用程序,然后访问 http://localhost:9090/blogito/searchable。键入一个搜索关键词,比如 grails,看一下搜索结果,如图 1 所示:
图 1. 默认的搜索结果虽然搜索出一些结果,但结果不容易描述。要解决这个问题,可以为 Entry.groovy 添加一个 toString() 方法,如清单 3 所示:
清单 3. 为 Entry 添加一个 toString()class Entry {
static searchable = true
String toString(){
"${title} (${lastUpdated})"
}再次搜索 grails 。这次的结果的用户友好性会有所提高,如图 2 所示:
图 2. 用 toString() 方法得到的搜索结果这个可搜索插件的原始功能已经就绪,现在可以采取下一个步骤了:将它深入地集成到您的应用程序内。探索这个插件的基础架构纵览 Blogito 的所有目录,这里似乎没有任何新的文件。如果通过 Web 浏览器访问 http://localhost:9090/blogito/searchable,那里应该会有一个 grails-app/controllers/SearchableController.groovy 文件。但奇怪的是,该文件不在那里。在 lib 目录中也应该有一些 Lucene 与 Compass 的 JAR 文件,但它一如您首次键入 grails create-app 启动这个项目时一样,是空的。实际上,对 Blogito 的惟一更改就是在 application.properties 中加入的这一行新代码,如清单 4 所示:
清单 4. application.properties,显示了新安装的 Searchable 插件#utf-8
#Wed Jun 24 15:41:16 MDT 2009
app.version=0.4
app.servlet.version=2.4
app.grails.version=1.1.1
plugins.searchable=0.5.5
plugins.hibernate=1.1.1
app.name=blogito通过 plug-ins.searchable 这一行代码,可以判断 Blogito 已经知晓 Searchable 插件的存在。那么所有这些功能都藏在哪了?要想查明,需返回到第一次安装此插件时一闪而过的那个屏幕输出。接下来,我将带您探个究竟。
当键入 grails install-plugin searchable 后,所发生的第一件事情是向 Web 发出一个请求来拉出插件的最新列表,如清单 5 所示:
清单 5. 下载插件的主列表$ grails install-plugin searchable
Reading remote plugin list ...
[get] Getting: http://svn.codehaus.org/grails/trunk/grails-plugins/
.plugin-meta/plugins-list.xml
[get] To: /Users/sdavis/.grails/1.1.1/plugins-list-core.xml
[get] last modified = Mon Jun 22 04:16:31 MDT 2009
Reading remote plugin list ...
[get] Getting: http://plugins.grails.org/.plugin-meta/plugins-list.xml
[get] To: /Users/sdavis/.grails/1.1.1/plugins-list-default.xml
[get] last modified = Wed Jun 24 06:51:24 MDT 2009这两个列表 — core 和 default — 提供了这些插件的元数据,包括作者、描述和版本号。更重要的是,在这里,Grails 可以发现实际包含这些插件的 ZIP 文件所对应的 URL。清单 6 显示了来自于 plugins-list-core.xml 文件的有关 Hibernate 插件的信息:
清单 6. Hibernate 插件的描述&plugins revision="9011"&
&plugin latest-release="1.1.1" name="hibernate"&
&release tag="RELEASE_1_1" type="svn" version="1.1"&
&title&Hibernate for Grails&/title&
&author&Graeme Rocher&/author&
&authorEmail/&
&description&A plugin that provides integration between
Grails and Hibernate through GORM&/description&
&documentation&http://grails.org/doc/$version&/documentation&
&file&http://svn.codehaus.org/grails/trunk/grails-plugins/
grails-hibernate/tags/RELEASE_1_1/grails-hibernate-1.1.zip
&/release&
&!-- snip --&
&/plugins&目前,Hibernate 插件是核心插件文件内所列的惟一一个插件。这个列表包含了必需 插件 — Grails 运行所不能或缺的功能。默认列表包括了来自于社区的可选插件。
您是否注意到
中这些文件保存的位置?在主目录中(在类似 UNIX® 的系统上,主目录为 /Users/任何人;在 Windows® 系统上,主目录为 C:\Documents and Settings\任何人)创建了一个 .grails 目录。这个目录内保存了在键入 grails run-app 时被编译的那些类。当键入 grails clean 时,projects 下的 application 目录会被删除。但是,如您所见,.grails 也是存放下载插件的地方。用文件编辑器打开 .grails/1.1.1/plugins-list-default.xml 并找到 Searchable 插件这一项。请见清单 7:
清单 7. Searchable 插件的描述&plugin latest-release="0.5.5" name="searchable"&
&release tag="RELEASE_0_5_5" type="svn" version="0.5.5"&
&title&Adds rich search functionality to Grails domain models.
This version is recommended for JDK 1.5+&/title&
&author&Maurice Nicholson&/author&
&authorEmail&maurice@freeshell.org&/authorEmail&
&description&Adds rich search functionality to Grails domain models.
Built on Compass (pass-project.org/) and Lucene
(http://lucene.apache.org/)
This version is recommended for JDK 1.5+
&/description&
&documentation&http://grails.org/Searchable+Plugin&/documentation&
&file&http://plugins.grails.org/grails-searchable/
tags/RELEASE_0_5_5/grails-searchable-0.5.5.zip&/file&
&/release&
&!-- snip --&
&/plugin&一旦 Grails 发现了从哪里可以下载这些插件,它(理所当然)会将这些所需要的插件下载到 .grails/1.1.1/plugins,如清单 8 所示:
清单 8. 下载插件$ grails install-plugin searchable
//download core and default plugin lists
// continued...
[get] Getting: http://plugins.grails.org/grails-searchable/
tags/RELEASE_0_5_5/grails-searchable-0.5.5.zip
[get] To: /Users/sdavis/.grails/1.1.1/plugins/grails-searchable-0.5.5.zip
[get] last modified = Thu Jun 18 22:24:45 MDT 2009最后,Grails 会从本地缓存中将这些插件复制到您的项目并进行解压缩,如清单 9 所示:
清单 9. 向您的项目中添加插件$ grails install-plugin searchable
//download core and default plugin lists
//download requested plugin
// continued...
[copy] Copying 1 file to /Users/sdavis/.grails/1.1.1/projects/blogito/plugins
Installing plug-in searchable-0.5.5
[mkdir] Created dir:
/Users/sdavis/.grails/1.1.1/projects/blogito/plugins/searchable-0.5.5
[unzip] Expanding:
/Users/sdavis/.grails/1.1.1/plugins/grails-searchable-0.5.5.zip into
/Users/sdavis/.grails/1.1.1/projects/blogito/plugins/searchable-0.5.5&
不过,在您进行太过深入的研究之前,请务必确保这对您来说具有实际意义。在 application.properties 内的行对应于 .grails 内的 project 目录中的解压缩目录。这就意味着要想卸载一个插件,可以键入 grails uninstall-plugin myplugin,或者干脆将这一行从 application.properties 中删除并手动地从 .grails 的 project 目录中将这个目录删除。
插件以简单的 ZIP 文件来回传递,知晓这一点非常重要。在下一篇文章中,我将向您展示如何创建您自已的插件并通过一个本地 ZIP 文件(grails install-plugin myplugin /local/path/to/myplugin.zip)来安装这个插件。您甚至可以通过一个远程 URL &#8212;grails install-plugin myplugin http://</myplugin.zip 来安装这个插件。
对 Searchable 插件的探讨知道了 Searchable 插件安装的位置(.grails/1.1.1/projects/blogito/plugins/searchable-0.5.5)后,我们就可以对它进行探讨了。这个目录结构(如图 3 所示)应该看上去有点眼熟 &#8212; 插件和应用程序共享同样的基础布局:
图 3. 目录结构SearchableController 恰恰处于我们想要的位置:grails-app/controllers。在一个文件编辑器中打开这个文件。清单 10 显示了部分源代码:
清单 10. SearchableControllerpass.core.engine.SearchEngineQueryParseException
class SearchableController {
def searchableService
def index = {
if (!params.q?.trim()) {
return [:]
return [searchResult: searchableService.search(params.q, params)]
} catch (SearchEngineQueryParseException ex) {
return [parseException: true]
}如您所见,SearchableService 在类被声明后被注入到此控制器。这个熟悉的 index 动作就是默认的目标。如果没有传递进 q 参数,就会将一个空的 hashmap 返回给 grails-app/views/searchable/index.gsp。基于视图中的逻辑,它将显示一个空白页。
在 index.gsp 的第 100 行左右的位置,应该能够找到一个表单,它可设置 q 参数及递归地将自身提交回 index 动作。清单 11 显示了这个表单:
清单 11. index.gsp 中的 searchable 表单&g:form url='[controller: "searchable", action: "index"]'
id="searchableForm"
name="searchableForm"
method="get"&
&g:textField name="q" value="${params.q}" size="50"/&
&input type="submit" value="Search" /&
&/g:form&回过头,再看看 ,可以发现一旦 q 参数内有了一个搜索条件,searchableService.search() 调用的结果就会被返回给 index.gsp。在 index.gsp 中的第 150 行左右,会显示这些结果,如清单 12 所示:
清单 12. 显示搜索结果&g:if test="${haveResults}"&
&div class="results"&
&g:each var="result" in="${searchResult.results}" status="index"&
&div class="result"&
&g:set var="className" value="${ClassUtils.getShortName(result.getClass())}" /&
&g:set var="link"
value="${createLink(controller: className[0].toLowerCase() +
className[1..-1],
action: 'show',
id: result.id)}" /&
&div class="name"&&a href="${link}"&${className} #${result.id}&/a&&/div&
&g:set var="desc" value="${result.toString()}" /&
&g:if test="${desc.size() & 120}"&
&g:set var="desc" value="${desc[0..120] + '...'}" /&
&div class="desc"&${desc.encodeAsHTML()}&/div&
&div class="displayLink"&${link}&/div&
&!-- snip --&
&/g:if&我鼓励您更深入地去探索 Searchable 插件的奥秘。请见 grails-app/services/SearchableService.groovy。注意到 lib 目录中已经包含了 Lucene 和 Compass 的 JAR 文件。到 src/java 和 src/groovy 目录去看看所有支持的类。再回顾一下 tests 目录中的 GroovyTestCase。一个典型 Grails 应用程序的所有部分都在这个插件里。
每当安装一个新插件,都要留意一下它的实现。这将有助于您识别所有可移动部分、了解它们是如何组合起来发挥作用的,并且 &#8212; 最重要的是 &#8212; 给您启示,教您如何能更好地将它们融入到您的应用程序中。接下来的一节,您将看到如何将搜索功能从默认实现转到您自已的定制组件中。
将搜索更深入地并入到 Blogito下面教您如何添加对 Entries 的搜索。首先,在一个文本编辑器内打开 grails-app/controllers/EntryController.groovy。添加一个简单的 search 动作,如清单 13 所示。(别忘了要允许未经身份验证的用户通过向 beforeInterceptor 添加 search 动作来进行博客条目的搜索。)
清单 13. 添加 search 动作class EntryController {
def beforeInterceptor =
[action:this.&auth, except:["index", "list", "show", "atom", "search"]]
def search = {
render Entry.search(params.q, params)
}正如在前一章节所展示的那样,SearchableService 非常适合用来进行跨所有域类的站点级别的搜索。但 Searchable 插件也可以在您个人的域类上做一些元编程。正像 Grails 可以动态地添加 list()、get() 和 findBy() 方法一样,Searchable 插件可以添加一个 search() 方法。
通过在 Web 浏览器中键入 http://localhost:9090/blogito/entry/search?q=groovy 来测试新的 search 动作。应该会看到一个搜索结果的 hashmap 图,类似于图 4:
图 4. 显示原始的搜索结果知道了 search() 方法的工作原理后,下一步是要让用户界面更为友好一点。在 grails-app/views/layouts 中创建一个名为 _search.gsp 的局部模板。加入清单 14 中的代码:清单 14. 局部模板&div id="search"&
&g:form url='[controller: "entry", action: "search"]'
id="searchableForm"
name="searchableForm"
method="get"&
&g:textField name="q" value="${params.q}" /&
&input type="submit" value="Search" /&
&/div&请注意,在上述代码中,控制器被设为 entry,动作被设为 search。
接下来,该显示这个局部模板了。在一个文本编辑器内打开 grails-app/views/layouts/_header.gsp 并添加一个 render 标签,如清单 15 所示:
清单 15. 为 header 添加这个搜索模板&g:render template="/layouts/search" /&
&div id="header"&
&p&&g:link class="header-main" controller="entry"&Blogito&/g:link&&/p&
&p class="header-sub"&
&g:link controller="entry" action="atom"&
&img src="${createLinkTo(dir:'images',file:'feed-icon-28x28.png')}"
alt="Subscribe" title="Subscribe"/&
A tiny little blog
&div id="loginHeader"&
&g:loginControl /&
&/div& 给 web-app/css/main.css 添加一些 Cascading Style Sheets (CSS) 以确保 search &div& 可以浮在屏幕的右上角,如清单 16 所示:
清单 16. 添加 CSS 来调整搜索表单的位置#search {
margin: 2em 1
}所有视图变化均完成后,请刷新浏览器。屏幕看上去应该如图 5 所示:
图 5. 给 header 添加搜索表单需要做的最后一件事情就是以 HTML 格式提交 search 结果,而不是简单的调试输出。调整 EntryController 内的 search 动作,如清单 17 所示:
清单 17. 一个更健壮的搜索动作def search = {
//render Entry.search(params.q, params)
def searchResults = Entry.search(params.q, params)
flash.message = "${searchResults.total} results found for search: ${params.q}"
flash.q = params.q
return [searchResults:searchResults.results, resultCount:searchResults.total]
}由于该动作被命名为 search,因此需要在 grails-app/views/entry 中创建对应的 search.gsp 文件,如清单 18 所示:
清单 18. Search.gsp&html&
&meta http-equiv="Content-Type" content="text/ charset=UTF-8"/&
&meta name="layout" content="main" /&
&title&Blogito&/title&
&g:if test="${flash.message}"&
&div class="message"&${flash.message}&/div&
&div class="body"&
&div class="list"&
&g:each in="${searchResults}" status="i" var="entry"&
&div class="entry"&
&g:link action="show"
id="${entry.id}"&${entry.title}&/g:link&
&p&${entry.summary}&/p&
&div class="paginateButtons"&
&g:paginate total="${resultCount}" params="${flash}"/&
&/html&在 Web 浏览器中最后做一次 grails 搜索。搜索结果应该如图 6 所示:
图 6. HTML 格式的搜索结果结束语
插件是 Grails 体系中最令人兴奋、最为活跃的一部分。它们可以让您坐享各式各样的现成功能。一旦您掌握了自己的代码库(application.properties 和 .grails 目录)的触点所在,您就可以研究源代码以更好地理解插件作者是如何实现魔法的,同时还能为如何与您自已的代码进行深入集成找到灵感。
下一次,我将向您展示如何创建一个自已的插件。到那时,请享受精通 Grails 的乐趣吧!
参考资料 :阅读这个系列的其他文章,以进一步了解 Grails,以及如何使用它。:访问 Grails Web 站点。
:访问这个 Grails 插件的门户网站,获得有关可用于 Grails 框架的最新插件的信息。:在这里,可以找到有关这个 Searchable 插件的文档。
:深入探究插件基础架构。
和 :Searchable 插件基于的搜索软件是由这两个项目开发的。:Grails 宝典。 (Scott Davis,Pragmatic Programmers,2008 年):从 Scott Davis 最新撰写的书籍中了解更多关于 Groovy 和 Grails 的信息。
:这个 developerWorks 系列专门探索 Groovy 的实际使用,并教您何时以及如何应用它们。
:在该项目的 Web 站点上了解更多关于 Groovy 的信息。
:关注最新的 Groovy 新闻和文章链接。
:阅读有关这些主题和其他技术主题的图书。 :这里有数百篇关于 Java 编程各个方面的文章。
:下载最新版本的 Grails。
:下载完整的 Blogito 应用程序。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=Java technology, Web development, Open sourceArticleID=422550ArticleTitle=精通 Grails: 了解插件publish-date=

我要回帖

更多关于 怎样能精通股票技术 的文章

 

随机推荐