2014年5月

Struts2 学习笔记 2.3.x

All config files for struts2


Struts2 配置文件
web.xml -> filter dispatcher -> init framework
struts-default.xml -> struts.xml
struts-default.property -> struts.property

Interceptor -> Action -> Result
request(url) -> action class -> method -> return string -> result type
predefined result names[token] from com.opensymphony.xwork2.ActionSupport -> Action (Interface):
String SUCCESS = "success";
String NONE = "none";
String ERROR = "error";
String INPUT = "input";
String LOGIN = "login";

参考: http://struts.apache.org/release/2.3.x/docs/guides.html

linux 命令行中的 - 和 --

我们经常见到类似下面的:

 ls -a        #short option
 ls --all     #long  option

有些程序使用short options, 有些使用long options, 有些既有short, 又有long.
据说一开始都是使用short options, 后来有些程序的选项特别多,以至于short options 都不够了, 或者有些options的首字母是一样的, 就产生了long options.
一般来说short options用来日常的敲命令, long options 一般使用在脚本里面, 可读性更好.

但是, 有时候, 你可能也会看到下面的这2种:

 tar -cvf - .
 ls -- $FILE_NAME  #before:  export FILE_NAME='--version'

第一个tar 命令看似不好理解, 让我们先看一个正常的:
tar -cvf a.tar file1 file2 #archive file1, file2 成a.tar
对比上面的命令, "-" 相当于 a.tar, 后面的 "." 相当于要archive的文件.
在一些命令行命令中, "-" 用来指代 stdin, 或者stdout.
所以上面的命令意思是: 把当前路径下的文件archive的包输出到stdout. (当然你可以用管道接着处理).
但是注意, 这个不是bash规定的, 而是应用程序自己设置的.

第二个ls命令中间有2个横线 -- (两边都有空格).
英文称: double dash, bare double dash, double hyphen.
这个ls命令的意思是: 列出文件 "--version"的信息, 这里有个文件名字偏偏叫做: "--version".
或者你使用git的时候, 会遇到 git diff origin master -- path/to/file
为什么这里会有2个横线呢? 其实这2个横线是告诉命令行, 后面的字符不是命令行选项, 可以作为一般的字符理解
如果不用 "--":

  • ls 那个命令将变为 ls --vesion, 只能打印ls的版本信息, 不能显示文件 "--version"的信息.
  • git diff 命令可能会遇到 git diff origin master master (后一个master是一个文件名).

Windows 下 终结 全角 半角 切换 问题

相信很多人都会遇到这个问题:
从来不会用到全角输入, 可是经常被切换到全角输入. 不经意的点到 shift + 空格, 就换全角了. 尤其这些在键盘飞奔的程序员.

一直用搜狗输入法, 看到搜狗输入法有很多快捷键, 包括我经常用, 却被搜狗占用的 Ctr + Shift + F. 总以为全角/半角 切换也是搜狗可以设置的. 不过从来没有找到过.

今天搜索终于找到, 原来这是 Windows 操作系统设置的快捷键, 可以通过修改注册表设置:

  1. 打开 注册表编辑器: Ctr + R, 输入 regedit, 点 ok, 打开注册表编辑器;
  2. 依次打开: HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000011
  3. 修改: Key Modifiers 为02 40 00 00
  4. 修改: Virtual Key 为31 00 00 00

重启机器, 生效.

上面是设置 全角/半角 切换为键盘 右边的 Ctr + 1 . 我想你很少会用到的.
请输入图片描述
请输入图片描述


2天之后的更新

上面的注册表设置在刚设置的当天管用, 也许重启机器/重新登录之后 Ctrl + Space 又回来了, 检查注册表, 发现没有变化.
现在发现必须还要更改另外一个快捷键:
请输入图片描述
请输入图片描述
如上, 修改2个地方之后, 就可以了.

感谢原作者的这篇更详细的, 带有说明的帖子:
http://wenku.baidu.com/link?url=4nnou9r5MPacphPa8S6C189zzVWlFKhl5X5GI2-8UkvVTQANKuN2kc-4pztHanTwRUjw9FDqJCuL5BiwNeRPjApMIWkzomWfkJrOk6EcDWS
微软官方关于 中文输入法半角/全角 注册表键的说明

ipkg, opkg 与 openWrt

ipkg 是 Itsy Package Management System 的缩写, 是类似与 Debian 的 dpkg 一样的, 专门用在嵌入式设备的轻量级包管理工具, 层被用在 OpenWrt, NSLU2, webOS 等操作系统. 如今, ipkg 这个项目已经停止更新, 曾经使用它的许多项目转而使用它的变种: opkg.


opkg 是 OPKG Package Manager 的缩写, 由 ipkg 演变而来, 所以也是用于嵌入式设备轻量级的包管理工具, 用来下载, 安装, 删除, 显示 OpenWrt 的包. 于 ipkg 不同, opkg 可以对 root 文件系统进行全部的包管理, 而不仅限于安装软件到特定的目录, 如 /opt.

opkg 的配置文件一般是 /etc/opkg.conf
搜索某个 package 的关键字: opkg info '*mysql*'
安装某个 package: opkg install nginx
安装的位置会参照/etc/opkg.conf 中配置的 dest的值, 你也可以指定: opkg install -d mnt nginx

src/gz attitude_adjustment http://downloads.openwrt.org/attitude_adjustment/12.09/brcm47xx/generic/packages
dest mnt /data
dest ram /tmp
arch all 100
arch brcm4709 200
arch brcm47xx 300

以上是修改小米路由器的 opkg.conf, 第一行指定 repo 的 URL, 2,3行指定安装可能的路径, 3,4,5指定可以兼容的包, 后面的数字, 100代表优先级最高, 200次之, 300最低, 但是也可以兼容安装.

参考:
ipkg in wikiipedia
opkg on openWrt
OpenWrt version history
Broadcom BCM47xx 系列