我们在 post.js
文件中添加 onTapToDetail
事件,通过传入的 event 事件对象,获取到传入的 postId
,其中 currentTarget
代表事件绑定的当前组件,而 dataset
对象里包含当前组件中所有属性名以 data-
开头的自定义属性值
// pages/post/post.js
import { DBPost } from '../../db/DBPost.js'
Page({
...
onTapToDetail(event) {
const postId = event.currentTarget.dataset.postId
console.log(postId)
wx.navigateTo({
url: `post-detail/post-detail?id=${postId}`
})
}
})
在 post-detail
页面中获取 postId
// pages/post/post-detail/post-detail.js
Page({
data: {},
onLoad: function (options) {
let postId = options.id
}
})
2 跳转文章详情页面
现在我们主要的代码编辑工作集中在 post-detail
这个页面上,但每当保存刷新小程序后,项目都将从欢迎页面启动,我们不得不依次点击启动页面、文章列表,才能进入到文章详情页面以浏览文章详情的效果,这样非常不方便我们调试页面
官方提供了一个【自定义编译】功能,可用于定义小程序的启动页面,点击【普通编译】,随后在弹出的菜单中选择【添加编译模式】,将启动页面设置为 pages/post/post-detail/post-detail
,启动参数可设为 id=4
,若是有多个参数,可使用 & 进行连接
我们在文章详情页中拿到了 postId
,接下来需要根据这个 postId
去缓存数据库中读取文章详细数据,并将数据用于构建文章详情页,在 DBPost.js
文件中修改 constructor
构造函数,增加一个构造参数 postId
,并将其保存到 this
变量中,随后增加 getPostItemById
方法,用于获取指定 id
的文章数据
// db/DBPost.js
class DBPost {
constructor(postId) {
this.storageKeyName = 'postList'
this.postId = postId
}
...
// 获取指定id的文章数据
getPostItemById() {
let postsData = this.getAllPostData()
const len = postsData.length
for(let i = 0; i < len; i++) {
if(postsData[i].postId == this.postId) {
return {
// 当前文章在缓存数据库数组中的序号
index: i,
data: postsData[i]
}
}
}
}
}
随后我们在 post-detail.js
中获取指定 id
的文章数据,并使用 this.setData
绑定该数据
// pages/post/post-detail/post-detail.js
import { DBPost } from "../../../db/DBPost"
Page({
data: {},
onLoad: function (options) {
let postId = options.id
this.dbPost = new DBPost(postId)
this.postData = this.dbPost.getPostItemById().data
this.setData({
post: this.postData
})
}
})
3 编写文章详情页面
{{post.title}}
{{post.author}}
{{post.dateTime}}
{{post.detail}}
/* pages/post/post-detail/post-detail.wxss */
.container {display:flex;flex-direction:column;}
.head-image {width:750rpx;height:460rpx;}
.title {font-size:20px;margin:30rpx;letter-spacing:2px;color:#4b556c;}
.author-date {display:flex;flex-direction:row;margin-top:15rpx;margin-left:30rpx;align-items:center;justify-content:space-between;font-size:13px;}
.author-box {display:flex;flex-direction:row;align-items:center;}
.avatar {height:50rpx;width:50rpx;}
.author {font-weight:300;margin-left:20rpx;color:#666;}
.date {color:#919191;margin-right:38rpx;}
.detail {color:#666;margin:40rpx 22rpx 0;line-height:44rpx;letter-spacing:1px;font-size:14px;}
保存并刷新页面后,文章详情页将正确地显示出来,如下图所示
在 post.json
文件中配置导航栏文字
{
"navigationBarTextStyle": "white",
"navigationBarTitleText": "标题"
}
在 post-detail.js
文件中动态设置导航栏文字为文章标题
Page({
...
onReady: function() {
wx.setNavigationBarTitle({
title: this.postData.title
})
}
})
4 收藏、点赞功能
由于我们的数据库只在本地,无法多次收藏同一篇文章,所以收藏数量永远只在初始数量的基础上 +1 或者 -1,分别对应点击收藏和取消收藏两种状态,但在真实的项目中,这个收藏数量却是要受到所有用户收藏、取消文章动作影响的,同样的情况也会出现在【文章点赞】功能中
接下来我们编写 3 个功能的功能按钮,每个按钮都绑定了对应的点击事件及当前文章的 id
,并通过条件渲染 wx:if
和 wx:else
来控制图片的更换
...
{{post.upNum}}
{{post.collectionNum}}
/* pages/post/post-detail/post-detail.wxss */
.tool {height:64rpx;margin:20rpx 28rpx 20rpx 0;display:flex;justify-content:center;}
.tool-item {align-items:center;margin-right:30rpx;display:flex;}
.tool-item:last-child {margin-right:0rpx;}
.tool-item image {height:30rpx;width:30rpx;margin-right:10rpx;}
.comment image {transform:scale(.85);}
接着我们在 DBPost.js
文件中添加 updatePostData
方法,用来更新本地的点赞、评论信息、收藏和阅读量
//收藏
collect() {
return this.updatePostData("collect")
}
//点赞
up() {
let data = this.updatePostData("up")
return data
}
//更新本地的点赞、评论信息、收藏、阅读量
updatePostData(category, newComment) {
let itemData = this.getPostItemById(),
postData = itemData.data,
allPostData = this.getAllPostData()
switch (category) {
case "collect":
//处理收藏
if (!postData.collectionStatus) {
//如果当前状态是未收藏
postData.collectionNum++
postData.collectionStatus = true
} else {
// 如果当前状态是收藏
postData.collectionNum--
postData.collectionStatus = false
}
break
case "up":
if (!postData.upStatus) {
postData.upNum++
postData.upStatus = true
} else {
postData.upNum--
postData.upStatus = false
}
break
case "comment":
postData.comments.push(newComment)
postData.commentNum++
break
case "reading":
postData.readingNum++
break
default:
break
}
// 更新缓存数据库
allPostData[itemData.index] = postData
this.execSetStorageSync(allPostData)
return postData
}
接着我们编写收藏文章的 onCollectionTap
事件函数,以及点赞操作的 onUpTap
事件函数,并通过 wx.showToast
进行友好的反馈提示交互
// pages/post/post-detail/post-detail.js
onCollectionTap: function (event) {
let newData = this.dbPost.collect();
// 重新绑定数据。注意,不要将整个newData全部作为setData的参数,
// 应当有选择的更新部分数据
this.setData({
'post.collectionStatus': newData.collectionStatus,
'post.collectionNum': newData.collectionNum
})
// 交互反馈
wx.showToast({
title: newData.collectionStatus ? "收藏成功" : "取消成功",
duration: 1000,
icon: "success",
mask: true
})
},
onUpTap: function (event) {
let newData = this.dbPost.up();
this.setData({
'post.upStatus': newData.upStatus,
'post.upNum': newData.upNum
})
}
该章节的内容到这里就全部结束了,源码我已经发到了 GitHub WeChat_05 上了,有需要的同学可自行下载
End of File
行文过程中出现错误或不妥之处在所难免,希望大家能够给予指正,以免误导更多人,最后,如果你觉得我的文章写的还不错,希望能够点一下喜欢 和关注 ,为了我能早日成为优秀作者献上一发助攻吧,谢谢!^ ^
你可能感兴趣的:(WeChat 文章详情页)
利用Redis发布订阅模式、SSE实现分布式实时站内信系统
weixin_38515820
Java redis redis 分布式 java
文章目录前言一、SSE是什么?二、单机与集群的站内信实现方式有何区别?三、Redis发布、订阅模式有何特点?四、代码演示1.数据模型小结2.引入依赖3.配置RedissonClient4.编写RestController用于测试5.编写用户消息订阅逻辑6.实现消息的发布7.实现广播消息的订阅8.个人与团队消息的订阅8.效果演示总结前言站内信功能在各大系统中被广泛应用,本文结合工作的实际场景,使用j
玩客云折腾之路 - (Armbian/Armv7l) 搭建Gitea - 通过二进制文件安装
wangvic21
linux Armbian 玩客云 git arm
玩客云折腾之路基于Armbian,完成docker、挂载U盘、gitea部署等文章目录玩客云折腾之路前言一、Git托管工具的选择?二、Gitea安装步骤1.docker安装(失败)2.二进制安装安装数据库创建用户安装Gitea下载配置目录个性化目录配置-U盘创建自启服务配置Gitea前言记录一下玩客云如何安装gitea,实现代码的托管。由于Docker镜像无Armv7镜像,需要通过命令行运行可执行
RocketMQ(3)-SpringBoot集成简单测试
gzh-程序员灿灿
中间件 消息队列
测试RocketMQ服务可用性我这里把provider和consumer放到同一个项目中,进行简单测试。后续写个RocketMQ的包装包。文章目录测试RocketMQ服务可用性providerconsumerconsumer监听消费testRocketMQ组的概念RocketMQ分组使用场景rocketmq的重试注意:项目中引用的rocketmq客户端,其版本需要和服务端安装的mq的版本保持一致,
前端性能优化:页面加载速度慢怎么办?
好运连连女士
面试题 性能优化 前端
文章目录前端性能优化如何识别页面加载速度慢的原因性能优化的方式提高资源的请求速度http缓存--提升二次访问的响应速度CDN缓存静态资源缓存webpack的hash策略-文件资源缓存减少资源请求量图片懒加载代码构建优化webpack资源压缩treesharking-js代码的精简分包按需加载浏览器渲染优化webworkerGPU加速前端性能优化如何识别页面加载速度慢的原因方式1:lighthous
C/C++跳动的爱心
Want595
趣味编程 c语言 c++ 开发语言
系列文章序号直达链接1C/C++李峋同款跳动的爱心2C/C++跳动的爱心3C/C++经典爱心4C/C++满屏飘字5C/C++大雪纷飞6C/C++炫酷烟花7C/C++黑客帝国同款字母雨8C/C++樱花树9C/C++奥特曼10C/C++精美圣诞树11C/C++俄罗斯方块小游戏12C/C++贪吃蛇小游戏13C/C++孤单又灿烂的神14C/C++闪烁的爱心15C/C++哆啦A梦16C/C++简单圣诞树17
AI工具——将文字转变为流程图
j_inglin
人工智能 流程图
文章参考:《NapkinAI:轻松将文字变成视觉,一键生成信息图、流程图和图表》《如何使用AI辅助快速生成概念示意图》《最强配图生成工具NapkinAI现已支持中文》文章来源:csdn
前端面试常见手写代码题
前端面试
文章目录前言:防抖节流函数柯里化函数组合instanceof实现实现new操作符的行为深拷贝继承实现:手写Promise数组中常见函数的实现前言:在前端面试中,经常会遇到要求手写的代码的题目,主要是考察我们的编程能力、和对JavaScript的理解以及对前端最佳实践的掌握。下面是我整理了一些常见的手写代码题目,您可以看看自己能实现哪些。。防抖防抖函数,确保一段时间内多次触发事件只执行一次。//--
区块链中的递归长度前缀(RLP)序列化详解
Linke-
区块链 区块链 以太坊
文章目录1.什么是RLP序列化?2.RLP的设计目标与优势3.RLP处理的数据类型4.RLP编码规则详解字符串的编码规则列表的编码规则5.RLP解码原理6.RLP在以太坊中的应用场景7.编码示例分析8.总结1.什么是RLP序列化?递归长度前缀(RLP)是一种专为区块链设计的序列化方法,主要用于将复杂数据结构(如嵌套列表、字符串)转换为二进制格式。其核心思想是通过添加长度前缀明确数据边界,确保数据在
Spring 核心技术解析【纯干货版】- XI:Spring 数据访问模块 Spring-Oxm 模块精讲
栗筝i
栗筝i 的 Java 技术栈 # Java 框架 - 专栏 spring python 数据库
在现代Java开发中,XML仍然是数据存储和数据交换的重要格式,特别是在Web服务、配置管理和数据持久化等场景中。Spring框架提供了Spring-OXM(Object/XMLMapping)模块,旨在简化Java对象与XML之间的转换,并支持多种OXM实现,如JAXB、Castor、XStream、JibX等。本篇文章深入解析了Spring-OXM模块的核心概念,并结合JAXB进行详细示例,展
如何创建自定义Retriever来增强LLM应用程序
llzwxh888
服务器 运维 python
引言在许多大语言模型(LLM)应用中,我们需要从外部数据源中检索信息,以便生成更准确和相关的响应。这些信息往往通过Retriever模块检索,然后用于生成提示,供LLM进行处理和响应。在这篇文章中,我们将深入探讨如何创建一个自定义Retriever,并提供代码示例来帮助你在自己的项目中实现这一功能。主要内容Retriever接口要创建一个自定义Retriever,你需要扩展BaseRetrieve
【接口测试实战(十)】接口测试之token鉴权实战
黑黑白白君
测试 实战 软件测试 接口 token postman
部分前情:《【接口测试实战(零)】接口测试简介》《【接口测试实战(一)】搭建接口测试环境》《【接口测试实战(二)】根据接口文档使用postman测试》《【接口测试实战(五)】接口测试之断言实战》《【接口测试实战(七)】postman之变量与沙盒实战》《【接口测试实战(八)】postman之Collections和数据驱动测试实战》《【接口测试实战(九)】接口测试之cookie实战》文章目录1)鉴权
使用LlamaIndex进行Token计数的实战指南
llzwxh888
自然语言处理 人工智能 python
在人工智能领域,特别是在自然语言处理(NLP)任务中,理解和跟踪Token的使用情况是非常重要的。这篇文章将介绍如何使用LlamaIndex库来进行Token计数,并提供一些实用的代码示例,以便你在自己的项目中应用这些技术。环境设置首先,我们需要设置回调和服务上下文。通过全局设置,我们可以在不需要每次查询时都传递这些设置的情况下使用它们。importosos.environ["OPENAI_API
探索火山引擎 DeepSeek-R1:高速低延迟AI解决方案引领未来
熬夜磕代码丶
经验之谈 火山引擎 人工智能
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言火山引擎DeepSeek-R1满血版推荐火山引擎DeepSeek-R1特性总结前言方舟大模型体验中心全新上线,免登录体验满血+联网版DeepSeekR1模型及豆包最新版模型点击登录登录后免费赠送每个模型50万tokens推理额度。火山引擎DeepSeek-R1满血版推荐✨亲爱的朋友们,快来听我发现的好消息!火山引擎推出的D
【一看就会】Autoware.universe的路径点生成逻辑
不断学习加努力
自动驾驶 算法
文章目录前言一、on_set_lanelet_route:根据道路生成路线二、on_set_waypoint_route:根据路径点生成路线三、调用on_set_waypoint_route的流程四、设置路径点总结前言在【一看就会】Autoware.universe的车道规划逻辑文章中,我们介绍了车道规划逻辑。车道规划是指在两个路径点之间规划一条连续可行的车道。也就是说,在我们给了起点和终点之后,
使用SearxNG自建搜索引擎API的详细指南 — 探索多样的搜索可能性
mmlihaio
搜索引擎 数据库 服务器 python
引言在当今信息泛滥的时代,找到有效的搜索工具显得尤为重要。SearxNG是一种自托管的元搜索引擎,能够整合多种搜索引擎以提供更多样、更精准的搜索结果。本篇文章将介绍如何使用SearxNG的API进行自定义搜索,并提供实用的代码示例。主要内容SearxNG简介SearxNG是一款开源的元搜索引擎,用户可以根据自己的需求自定义搜索结果。其支持多达135种搜索引擎,使其在满足多样化的搜索需求方面展现出强
大模型入门指南:非常详细,从零基础到精通,收藏这一篇就够了!
程序员辣条
人工智能 语言模型 大模型 学习 AI 大模型入门 AI大模型
前言随着ChatGPT的到来,大模型[1](LargeLanguageModel,简称LLM)成了新时代的buzzword,各种GPT产品百花齐放。大多数人直接用现有产品就可以了,但对于喜欢刨根问底的程序员来说,能够在本地运行会更有意思。但由于没有相关背景,笔者一开始在接触时,很多GitHub上的搭建教程看得是云里雾里,而且这方面的介绍文章要不就是太晦涩难懂,要不就是太大众小白,于是就有了这篇文章
20、《Spring AOP:日志记录与权限控制实战》
wolf犭良
SpringBoot spring java 数据库
SpringAOP:日志记录与权限控制实战引言在企业级应用开发中,审计日志和权限控制是两个关键的非功能性需求。传统实现方式往往导致代码重复度高、维护成本大。本文将通过SpringAOP(Aspect-OrientedProgramming)结合自定义注解,演示如何优雅地实现这两个核心功能。文章包含完整代码示例、切面编程原理剖析及生产环境最佳实践。一、AOP核心概念解析1.1什么是切面编程AOP通过
Windows10重装遇到的问题
阿崽meitoufa
p2p tv debian
目录所以问题通过百度和CSDN大佬的文章解决1.为何重装2.补救措施3.重装后遇到的问题问题1:CMD下提示“该命令不是内部或外部命令”方法一:方法二:若方法一无效问题2配置JDK步骤一:重装JDK步骤二:配置环境步骤三:检查jdk是否配置好1.为何重装随意删除注册表中SoftWare中的文件导致系统崩溃2.补救措施尝试系统还原:因没有设置还原点而失败试图重启系统:失败3.重装后遇到的问题问题1:
Day5、Vue3 Router路由(下)
码有余悸
vue.js javascript 前端
「本专栏是我在学习Vue3过程中的总结与分享,旨在帮助初学者快速上手Vue3。由于我也在持续学习中,如果有任何疏漏或错误,欢迎大家在评论区指正,我们一起进步!」提示:使用该文档学习vue3需要有一些vue和vue2的基础才可以更好的学习噢~~版权:未经允许,禁止转载!鼓励:每一次努力,都是在为未来的自己铺路;哪怕今天只进步一点点,也是在靠近更好的明天!————————————————文章目录前言一
C++中的动态数组的定义与使用
六七_Shmily
#C++ c++ java 开发语言
文章目录前言动态数组的定义与使用方式动态数组的总结前言在C++中,动态数组是在程序运行时动态分配内存的数组,其大小可以在运行时进行调整。动态数组的定义和使用方式如下,并对其进行总结动态数组的定义与使用方式示例:#includeintmain(){intsize;std::cout>size;//动态分配内存来创建动态数组int*dynamicArray=newint[size];//向动态数组中赋
第十节:通过Debug解析ChatGLMModel的数据流,理解视觉与语言模型结合架构
tangjunjun-owen
语言模型 人工智能 自然语言处理 GLM-4v-9B 多模态大模型教程 ChatGLMModel
文章目录前言一、forward的参数解读二、图像编码token数量值方法解读三、input_ids的embedding方法解读1、embedding编码方法2、Embedding源码四、视觉编码方法解读五、inputs_embeds与position_ids编码加工方法解读1、inputs_embeds与position_ids编码方法2、图示解读编码方法3、inputs_embeds与posit
提升职场沟通能力的七大秘诀
贵州数擎科技有限公司
面试 跳槽 简历
大家好!我是[数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步!开发领域:前端开发|AI应用|Web3D|元宇宙技术栈:JavaScript、React、ThreeJs、WebGL、Go经验经验:6年+前端开发经验,专注于图形渲染和AI技术开源项目:智简未来、晓智元宇宙、数字孪生引擎在职场中,
在C++中嵌入Lua脚本引擎:解析代码实现
煤炭里de黑猫
c++ lua 开发语言
1.背景与概述Lua是一种轻量级的脚本语言,它被广泛应用于游戏开发、嵌入式系统以及许多需要扩展功能的应用程序中。由于Lua的内存占用小、执行效率高且易于嵌入,许多开发者选择将Lua作为C++应用的嵌入式脚本引擎。在本篇文章中,我们将详细分析一段C++代码,展示如何将Lua脚本嵌入到C++程序中,实现C++和Lua之间的交互。该代码通过调用Lua的CAPI,加载并执行Lua脚本文件。2.代码结构分析
一文带你了解三大开源关系型数据库:SQLite、MySQL和PostgreSQL
dvlinker
C/C++实战专栏 C/C++软件开发从入门到实战 数据库 开源 SQLite MySQL PostgreSQL
目录1、概述2、SQLite数据库2.1、SQLite简介2.2、SQLite优缺点2.3、SQLite应用场景3、MySQL数据库3.1、MySQL简介3.2、MySQL优缺点3.3、MySQL应用场景4、PostgreSQL数据库4.1、PostgreSQL简介4.2、PostgreSQL优势4.3、PostgreSQL应用场景5、在实际系统中的选择VC++常用功能开发汇总(专栏文章列表,欢迎
LLaVA-CoT: Let Vision Language Models Reason Step-by-Step
UnknownBody
LLM Daily Multimodal 语言模型 人工智能 自然语言处理
本文是LLM系列文章,针对《LLaVA-CoT:LetVisionLanguageModelsReasonStep-by-Step》的翻译。LLaVACoT:让视觉语言模型逐步推理摘要1引言2相关工作3提出的方法4后训练性能5推理时间缩放6最新VLMs的比较7结论摘要大型语言模型在推理能力方面取得了长足的进步,特别是通过推理时间缩放,如OpenAI的o1等模型所示。然而,当前的视觉语言模型(VLM
Unity 文字过长末尾改成省略号
akuojustdoit
C#&unity 游戏开发自学 游戏 unity 游戏引擎
策划提了个需求是文字超过两行的话那第二行的末尾改成省略号,然后省略剩下的文字搜索后看到了一篇文章https://blog.csdn.net/zzxiang1985/article/details/82225615赋值后调用一次就好,省事了publicvoidSetTextWithEllipsis(TexttextComponent,stringvalue){vargenerator=newText
第九篇:Java网络编程
HYP_Coder
JAVA专栏 java 网络 开发语言
第九篇:Java网络编程网络编程是构建现代应用程序的核心技术之一,它允许程序在网络上进行数据交换、通信和协作。Java提供了强大的网络编程库和工具,使得网络通信变得高效且易于实现。本篇文章将深入探讨Java中的网络编程基础、HTTP编程以及如何使用Java网络库实现简单的网络应用。1.网络编程基础网络编程涉及到计算机网络的基本概念和技术,包括网络协议、套接字(Socket)编程等。1.1网络协议和
用 Python + LLM 实现一个智能对话
AGI大模型学习
python 开发语言 langchain prompt 大模型 AI大模型
大型语言模型LLM最近比较火,所以我也来用LLM写个智能对话玩玩。简介大语言模型LLM全称是LargeLanguageModels。LLM是指具有巨大参数量和极高语言理解能力的神经网络模型。这些模型被训练来理解和生成自然语言文本,能够执行多种自然语言处理(NLP)任务,如文本生成、翻译、摘要、问答等。所以LLM可以做以下事情:文本生成:LLM可以生成各种类型的文本,如新闻、文章、小说等。智能对话系
图论 之 最小生成树
JNU freshman
蓝桥杯 算法 图论 算法 蓝桥杯
文章目录题目1584.连接所有点的最小费用最小生成树MST,有两种算法进行求解,分别是Kruskal算法和Prim算法Kruskal算法从边出发,适合用于稀疏图Prim算法从顶点出发,适合用于稠密图:基本思想是从一个起始顶点开始,逐步扩展生成树,每次选择一条连接已选顶点和未选顶点的最小权重边,直到所有顶点都被包含在生成树中。Prim算法的基本步骤:初始化:选择一个起始顶点,将其加入生成树中。选择最
Spring Boot开发:从入门到精通
网络安全我来了
IT技术 spring boot
SpringBoot开发:从入门到精通当你在开发一个新的Java应用时,是否曾经感到苦恼于繁琐的配置和重复的代码?SpringBoot就像一位友好的助手,向你伸出援手,让开发变得轻松愉快。从这一单一框架中,你可以快速构建出功能强大且易维护的应用。那么,它究竟是什么?本篇文章将深度探讨SpringBoot,并揭示其背后的魔力!一、什么是SpringBoot1.1特性与优势想象一下,你正在为一家企业开
js动画html标签(持续更新中)
843977358
html js 动画 media opacity
1.jQuery 效果 - animate() 方法 改变 "div" 元素的高度: $(".btn1").click(function(){ $("#box").animate({height:"300px
springMVC学习笔记
caoyong
springMVC
1、搭建开发环境
a>、添加jar文件,在ioc所需jar包的基础上添加spring-web.jar,spring-webmvc.jar
b>、在web.xml中配置前端控制器
<servlet>
&nbs
POI中设置Excel单元格格式
107x
poi style 列宽 合并单元格 自动换行
引用:http://apps.hi.baidu.com/share/detail/17249059
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:
先获取工作薄对象:
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle setBorder = wb.
jquery 获取A href 触发js方法的this参数 无效的情况
一炮送你回车库
jquery
html如下:
<td class=\"bord-r-n bord-l-n c-333\">
<a class=\"table-icon edit\" onclick=\"editTrValues(this);\">修改</a>
</td>"
j
md5
3213213333332132
MD5
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MDFive {
public static void main(String[] args) {
String md5Str = "cq
完全卸载干净Oracle11g
sophia天雪
orale数据库 卸载干净 清理注册表
完全卸载干净Oracle11g
A、存在OUI卸载工具的情况下:
第一步:停用所有Oracle相关的已启动的服务;
第二步:找到OUI卸载工具:在“开始”菜单中找到“oracle_OraDb11g_home”文件夹中
&
apache 的access.log 日志文件太大如何解决
darkranger
apache
CustomLog logs/access.log common 此写法导致日志数据一致自增变大。
直接注释上面的语法
#CustomLog logs/access.log common
增加:
CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-d.log
Hadoop单机模式环境搭建关键步骤
aijuans
分布式
Hadoop环境需要sshd服务一直开启,故,在服务器上需要按照ssh服务,以Ubuntu Linux为例,按照ssh服务如下:
sudo apt-get install ssh
sudo apt-get install rsync
编辑HADOOP_HOME/conf/hadoop-env.sh文件,将JAVA_HOME设置为Java
PL/SQL DEVELOPER 使用的一些技巧
atongyeye
java sql
1 记住密码
这是个有争议的功能,因为记住密码会给带来数据安全的问题。 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Developer记住密码。 位置:Tools菜单--Preferences--Oracle--Logon HIstory--Store with password
2 特殊Copy
在SQL Window
PHP:在对象上动态添加一个新的方法
bardo
方法 动态添加 闭包
有关在一个对象上动态添加方法,如果你来自Ruby语言或您熟悉这门语言,你已经知道它是什么...... Ruby提供给你一种方式来获得一个instancied对象,并给这个对象添加一个额外的方法。
好!不说Ruby了,让我们来谈谈PHP
PHP未提供一个“标准的方式”做这样的事情,这也是没有核心的一部分...
但无论如何,它并没有说我们不能做这样
ThreadLocal与线程安全
bijian1013
java java多线程 threadLocal
首先来看一下线程安全问题产生的两个前提条件:
1.数据共享,多个线程访问同样的数据。
2.共享数据是可变的,多个线程对访问的共享数据作出了修改。
实例:
定义一个共享数据:
public static int a = 0;
Tomcat 架包冲突解决
征客丶
tomcat Web
环境:
Tomcat 7.0.6
win7 x64
错误表象:【我的冲突的架包是:catalina.jar 与 tomcat-catalina-7.0.61.jar 冲突,不知道其他架包冲突时是不是也报这个错误】
严重: End event threw exception
java.lang.NoSuchMethodException: org.apache.catalina.dep
【Scala三】分析Spark源代码总结的Scala语法一
bit1129
scala
Scala语法 1. classOf运算符
Scala中的classOf[T]是一个class对象,等价于Java的T.class,比如classOf[TextInputFormat]等价于TextInputFormat.class
2. 方法默认值
defaultMinPartitions就是一个默认值,类似C++的方法默认值
java 线程池管理机制
BlueSkator
java线程池 管理机制
编辑
Add
Tools
jdk线程池
一、引言
第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
关于hql中使用本地sql函数的问题(问-答)
BreakingBad
HQL 存储函数
转自于:http://www.iteye.com/problems/23775
问:
我在开发过程中,使用hql进行查询(mysql5)使用到了mysql自带的函数find_in_set()这个函数作为匹配字符串的来讲效率非常好,但是我直接把它写在hql语句里面(from ForumMemberInfo fm,ForumArea fa where find_in_set(fm.userId,f
读《研磨设计模式》-代码笔记-迭代器模式-Iterator
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.Arrays;
import java.util.List;
/**
* Iterator模式提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象内部表示
*
* 个人觉得,为了不暴露该
常用SQL
chenjunt3
oracle sql C++ c C#
--NC建库
CREATE TABLESPACE NNC_DATA01 DATAFILE 'E:\oracle\product\10.2.0\oradata\orcl\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPA
数学是科学技术的语言
comsci
工作 活动 领域模型
从小学到大学都在学习数学,从小学开始了解数字的概念和背诵九九表到大学学习复变函数和离散数学,看起来好像掌握了这些数学知识,但是在工作中却很少真正用到这些知识,为什么?
最近在研究一种开源软件-CARROT2的源代码的时候,又一次感觉到数学在计算机技术中的不可动摇的基础作用,CARROT2是一种用于自动语言分类(聚类)的工具性软件,用JAVA语言编写,它
Linux系统手动安装rzsz 软件包
daizj
linux sz rz
1、下载软件 rzsz-3.34.tar.gz。登录linux,用命令
wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz下载。
2、解压 tar zxvf rzsz-3.34.tar.gz
3、安装 cd rzsz-3.34 ; make posix 。注意:这个软件安装与常规的GNU软件不
读源码之:ArrayBlockingQueue
dieslrae
java
ArrayBlockingQueue是concurrent包提供的一个线程安全的队列,由一个数组来保存队列元素.通过
takeIndex和
putIndex来分别记录出队列和入队列的下标,以保证在出队列时
不进行元素移动.
//在出队列或者入队列的时候对takeIndex或者putIndex进行累加,如果已经到了数组末尾就又从0开始,保证数
C语言学习九枚举的定义和应用
dcj3sjt126com
c
枚举的定义
# include <stdio.h>
enum WeekDay
{
MonDay, TuesDay, WednesDay, ThursDay, FriDay, SaturDay, SunDay
};
int main(void)
{
//int day; //day定义成int类型不合适
enum WeekDay day = Wedne
Vagrant 三种网络配置详解
dcj3sjt126com
vagrant
Forwarded port
Private network
Public network
Vagrant 中一共有三种网络配置,下面我们将会详解三种网络配置各自优缺点。
端口映射(Forwarded port),顾名思义是指把宿主计算机的端口映射到虚拟机的某一个端口上,访问宿主计算机端口时,请求实际是被转发到虚拟机上指定端口的。Vagrantfile中设定语法为:
c
16.性能优化-完结
frank1234
性能优化
性能调优是一个宏大的工程,需要从宏观架构(比如拆分,冗余,读写分离,集群,缓存等), 软件设计(比如多线程并行化,选择合适的数据结构), 数据库设计层面(合理的表设计,汇总表,索引,分区,拆分,冗余等) 以及微观(软件的配置,SQL语句的编写,操作系统配置等)根据软件的应用场景做综合的考虑和权衡,并经验实际测试验证才能达到最优。
性能水很深, 笔者经验尚浅 ,赶脚也就了解了点皮毛而已,我觉得
Word Search
hcx2013
search
Given a 2D board and a word, find if the word exists in the grid.
The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or ve
Spring4新特性——Web开发的增强
jinnianshilongnian
spring spring mvc spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
CentOS安装配置tengine并设置开机启动
liuxingguome
centos
yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
Ubuntu上可以这样安装
sudo aptitude install libdmalloc-dev libcurl4-opens
第14章 工具函数(上)
onestopweb
函数
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Xelsius 2008 and SAP BW at a glance
blueoxygen
BO Xelsius
Xelsius提供了丰富多样的数据连接方式,其中为SAP BW专属提供的是BICS。那么Xelsius的各种连接的优缺点比较以及Xelsius是如何直接连接到BEx Query的呢? 以下Wiki文章应该提供了全面的概览。
http://wiki.sdn.sap.com/wiki/display/BOBJ/Xcelsius+2008+and+SAP+NetWeaver+BW+Co
oracle表空间相关
tongsh6
oracle
在oracle数据库中,一个用户对应一个表空间,当表空间不足时,可以采用增加表空间的数据文件容量,也可以增加数据文件,方法有如下几种:
1.给表空间增加数据文件
ALTER TABLESPACE "表空间的名字" ADD DATAFILE
'表空间的数据文件路径' SIZE 50M;
&nb
.Net framework4.0安装失败
yangjuanjava
.net windows
上午的.net framework 4.0,各种失败,查了好多答案,各种不靠谱,最后终于找到答案了
和Windows Update有关系,给目录名重命名一下再次安装,即安装成功了!
下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=17113
方法:
1.运行cmd,输入net stop WuAuServ
2.点击开