Spring SimpleFormController Cheatsheet
pdf下载
public class XmlRpc {
public static void main(String[] args) throws Exception {
XmlRpc xmlrpc = new XmlRpc();
Object result = xmlrpc.uploadFile();
System.out.println(result);
}
XmlRpcClient xmlrpc;
XmlRpcClientConfigImpl config;
public XmlRpc() throws MalformedURLException{
xmlrpc = new XmlRpcClient();
config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL(”http://yourwordpress/xmlrpc.php”));
config.setConnectionTimeout(1000000);
xmlrpc.setConfig(config);
}
public Object uploadFile() throws XmlRpcException, IOException{
FileInputStream fis = new FileInputStream(”c:/01.txt”);
byte[] b = new byte[fis.available()];
fis.read(b);
HashMap map = new HashMap();
map.put(”name”, “abc.txt”);
map.put(”bits”, b);
Object[] params = new Object[] {”1″,”yourname”,”yourpassword”,map};
return [...]
今天从沙田出发往深圳,不久发现忘了带国内的sim卡,意味着到了深圳无法和哥取得联系.我选择到时候找电话亭,顺便看看自己对手机的依赖有多大.其实也想到找个人借手机一用,可是电视上天天—向你借手机的人100%是骗子.
还真有点,不做贼也心虚.
当我发现深圳的公共电话不能投币,只能用卡时,旁边一个小青年说等我打完用我的吧,
真是太感谢了,刚刚忘记带卡,我就打一个市内电话
… … 要不你拿我手机打吧,也没多少钱
啊,太谢谢了
当我拿过这只手机时发现这是一只破的不能再破的nokia
就算是骗子横行我们就不帮助他人了么?诚信缺失我们就该不相信别人来保护自己?相信自己的判断力,改变点东西.以前我会犹豫,现在我不会犹豫.向那个小哥致敬!
Powered by MoFire
七个习惯书摘
@对依赖的逆反恰是依赖的另一种表现,是成熟体系的最低层.他们行为叛逆,以敌人为生活中心,特别在乎自己的”权利”,总想证明自己的独立性,却很少聆听和尊重内心深处的声音
@低层次的沟通源自低度信任
@缺乏安全感的人认为所有的人和事都应该依着他们的模式
@人生最值得投资的就是磨炼自己
Powered by MoFire
今天在整合acegi和struts-menu的时候老是有问题,跟进源代码发现struts-menu的RolesPermissionsAdapter 中:
public boolean isAllowed(MenuComponent menu) {
if (menu.getRoles() == null) {
return true; // no roles define, allow everyone
} else {
// Get the list of roles this menu allows
String[] allowedRoles = delimiters.split(menu.getRoles());
for (int i=0; i < allowedRoles.length; i++) {
if (request.isUserInRole(allowedRoles[i])) {
return true;
}
}
}
return false;
}
request.isUserInRole(allowedRoles[i])返回是false. – 因为这个request是sitemesh的pageinforequestWrapper!!!
(之前找了各种可能都没有发现异常,试了无数种 可能的原因)
为什么会这样,之前做的也是完全一样啊?仔细比较了以前写的和现在的,发现 filter-mapping的顺序不一样:
之前写的是acegi的filter-mapping在第一个,试着把现在的filtermapping 放到第一个.成功!
原来filter-mapping的顺序也是有讲究的.如果先mapping sitemesh的filter,request就会被sitemesh的pageinforequestwrapper(?) 包裹,然后就不能被acegi的filter包装成SecurityContextHolderAwareRequestWrapper.
这样在调用isUserInRole时候就出问题了,因为使用的不是acegi的实现.
记录下来.
存储塔的idea
现在已经有小型个人raid产品出现,但太过专业,基本面向小型企业和专业认识,有没有一个低门槛的个人存储管理方案.比如我只想在显示器旁放一个类似塔一样的装置,上面可以接泊各种存储设备,硬盘,usb手指,各种存储卡.只要将他们连到踏上,就可以通过一个统一的操作平台进行管理.samba或者ftp.
Powered by MoFire
Afi终生成就奖
Powered by MoFire
2月2日,伟大的思想家罗素的生日。
土拨鼠日是美国的一个节日,每年的2月2号,美国的某个小镇会让一只土拨鼠告诉人们冬天会继续还是提前结束。第一次听说这个节日是从bill murry主演的《土拨鼠日》,andie macdowell从那之后我才知道她的名字(之前看过她和“大鼻子”德帕迪约演的绿卡就让我印象深刻了)。我对这个节日也没有兴趣。只是因为它是关于冬天的,不由就想到了今年这个鬼天气。
大仓鼠保佑那些受到雪灾的人们!
编译时找不到List.deleteAll这个方法,因为默认的的antenna使用cldc1.0。而这个deleteall是1.1的方法,解决方法是覆盖默认的cldc版本
<property name=”wtk.cldc.version” value=”1.1″/>
Antenna是用来构建j2me项目的ant任务 扩展。让整个构建过程变的很简单和易于管理。
附我使用的构建脚本供参考:
<?xml version=”1.0″?>
<project name=”MoFire” default=”build” basedir=”.”>
<!– Define the Wireless Toolkit home directory. Needed by the tasks. –>
<property name=”wtk.home” value=”D:\development\WTK2.5.2″/>
<property name=”wtk.cldc.version” value=”1.1″/>
<property name=”wtk.midp.version” value=”2.0″/>
<property name=”wtk.proguard.home” value=”D:\development\workspaceME\lib\proguard4.1\”/>
<!– Define some additional properties for this project. Not required. –>
<property name=”midlet.name” value=”${ant.project.name}”/>
<property name=”midlet.home” value=”.”/>
<property name=”midlet.vendor” value=”MoDoFo”/>
<property name=”midlet.version” value=”0.0.1″/>
<!– Define the tasks. –>
<taskdef resource=”antenna.properties” classpath=”lib/antenna-bin-1.0.0.jar”/>
<target name=”clean”>
<delete failonerror=”false” dir=”classes”/>
</target>
<target name=”dist” [...]
办公室今天搬到了旺角。就在kcr上面的新世纪。据说8月份要搬到海防博物馆那边(港岛东北部),还好那时候已经闪人了。新的办公环境没有什么特别的,大办公室人多,不能像以前几个人在小会议室里偶尔可以说说笑笑teambuilding一下。而且很快发现这里有一个pressing lady – 下班时候告诉她的手下,明天早上(周六)七点来加班。
最牛b的是,上厕所需要钥匙。。。。钥匙要过一个星期才能拿到。不过还好,坚持两天就回家过年了。