03 2012 档案

摘要:1、 首先编辑jar包: remove 掉slf4j-nop-1.5.8.jar2、 添加apache-log4j-1.2.15中的jar包 /apache-log4j-1.2.15/log4j-1.2.15.jar3、 还需添加slf4j的slf4j-log4j12-1.5.8.jar /slf4j-1.5.8/slf4j-1.5.8/slf4j-log4j12-1.5.8.jar4、 添加log4j的配置文件 /hibernate-distribution-3.3.2.GA/project/etc/log4j.properties 阅读全文
posted @ 2012-03-29 15:03 haiwei.sun 阅读(164) 评论(0) 推荐(0)
摘要:Hibernate开发第一个例子1、首先下载以下文件:slf4j-1.5.8 hibernate-distribution-3.3.2.GA-dist 2、在myEclipse中建立hibernate 的User Libraries 库: Window—Prefrerences—Java—Build Path—User Libraries3、新建java项目 并引入自定义hibernate库以及操作mysql的驱动程序 |-hibernate3.jar |-lib\required(全部) |-slf4j-1.5.8\slf4j-1.5.8\slf4j-nop-1.5.8.jar4、建立St. 阅读全文
posted @ 2012-03-27 10:19 haiwei.sun 阅读(643) 评论(1) 推荐(0)
摘要:struts.xml<struts><constant name="struts.devMode" value="true" /><constant name="struts.i18n.encoding" value="UTF-8"/><constant name="struts.enable.DynamicMethodInvocation" value="true" /><constant name="stru 阅读全文
posted @ 2012-03-23 18:20 haiwei.sun 阅读(559) 评论(0) 推荐(0)
摘要:action:public String scope() throws Exception{ ActionContext ctx = ActionContext.getContext(); ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app ctx.getSession().put("ses", "session范围");//往session里放入ses ctx.put("req", "request范围&qu 阅读全文
posted @ 2012-03-22 19:10 haiwei.sun 阅读(210) 评论(0) 推荐(0)
摘要:在Struts2中,提供了另外一种直接使用领域对象的方式,就是让action实现Com.opensymphony.xwork2.ModelDriven接口。ModelDriven让你可以直接操作应用程序中的领域对象,允许你在web层和业务逻辑层使用相同的对象。Struts.xml<packagename="user1"extends="struts-default"namespace="/user1"><actionname="user1"class="com.bjsxt.struts2 阅读全文
posted @ 2012-03-22 17:31 haiwei.sun 阅读(183) 评论(0) 推荐(0)
摘要:使用领域对象接收参数:Struts.xml<packagename="user"extends="struts-default"namespace="/user"><actionname="user"class="com.bjsxt.struts2.user.action.UserAction"><result>/user_add_success.jsp</result></action></package>UserActi 阅读全文
posted @ 2012-03-22 17:27 haiwei.sun 阅读(208) 评论(0) 推荐(0)
摘要:访问url:http://localhost:8080/s_1/kevin/Teachers_add?name=kevin&age=25Action写法:package com.kevin.struts2.action;import com.opensymphony.xwork2.ActionSupport;public class TeachersAction extends ActionSupport {private String name;private int age;public String add(){System.out.println("name=&quo 阅读全文
posted @ 2012-03-22 17:13 haiwei.sun 阅读(116) 评论(0) 推荐(0)
摘要:问题:用struts2按照尚老师的做了个练习,添加中文乱码;数据库编码:utf8页面编码:utf-8解决:一:server.xml修改 <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>二:<constant name="struts.i18n.encoding" value="U 阅读全文
posted @ 2012-03-22 17:11 haiwei.sun 阅读(259) 评论(1) 推荐(0)
摘要:struts.xml<constant name="struts.devMode" value="true" /><package name="user" extends="struts-default" namespace="/user"><action name="user" class="com.bjsxt.struts2.user.action.UserAction"><result>/user_ad 阅读全文
posted @ 2012-03-22 17:05 haiwei.sun 阅读(145) 评论(0) 推荐(0)
摘要:通配符映射随着web应用程序规模的增加,所需的Action也会更多,从而导致出现大量的action映射。使用通配符映射可以减少action配置的数量,使一些具有类似行为的Action或者Action的方法可以使用通用的样式来配置。通配符即星号(*),用于匹配0个或多个字符。在配置action时,可以在action元素的name属性中使用星号(*)来匹配任意的字符。<action name=”edit*”Class=”org.kevin.mysql.action.Edit{1}Action”><result name=”failure”>/failure.jsp</ 阅读全文
posted @ 2012-03-22 15:38 haiwei.sun 阅读(119) 评论(0) 推荐(0)
摘要:默认的action如果你请求一个不存在的action,那么结果将是HTTP404错误,即页面没有找到错误。在struts2中,你可以指定一个默认的action,如果一个请求没有其它的action匹配,那么默认的action将被执行。默认的action使用default-action-ref元素来声明,如下:<package name=”default” extends=”struts-default”><default-action-ref name=”hello” /><action name=”hello”><result>/hello.js 阅读全文
posted @ 2012-03-22 15:25 haiwei.sun 阅读(109) 评论(0) 推荐(0)
摘要:模拟Struts1的ForwardAction在struts2的开发中,将所有的URL都指向action,而不是直接指向jsp页面,这是一种非常好的实践方式,因为这样可以利用Struts控制器所提供的功能。然后,在某些情况下,我们可能只是需要做一个请求转发(通过action将请求转发到目标资源,可以是jsp页面,或者另一个aciton),如果为此专门去写一个Action类,而这个类只是用于转发请求,就有点少兴。在struts1中个,提供了一个工具类ForwardAction,可以直接在struts-config.xml文件中配置ForwardAction,将请求导向到目标资源,而不需要自己再去 阅读全文
posted @ 2012-03-22 14:48 haiwei.sun 阅读(144) 评论(0) 推荐(0)
摘要:另外一种无须配置就可以直接调用Action中的非execute方法的方式,就是使用struts2的动态方法调用。动态方法调用(Dynamic Method Invocation,DMI)是在action的名字中使用的感叹号(!)来标识要调用的方法名,起语法格式为:actionName!methodName.action<action name=”news” class=”org.kevin.mysql.struts2.action.NewsAction”>…</action>当请求为/news!create.action时,将调用NewsAction中的create方法 阅读全文
posted @ 2012-03-22 14:11 haiwei.sun 阅读(109) 评论(1) 推荐(0)
摘要:Action元素的完整属性属性是否必需说明name是Action的名字,用于匹配请求的URLclass否Action实现类的完整类名method否执行action时调用的方法converter否应用于action的类型转换器的完整类名Eg:<actionname=”login” class=”org.sunxin.struts2.ch03.action.LoginAction”><result>/success.jsp</result><result name=”error”>/error.jsp</result></actio 阅读全文
posted @ 2012-03-22 13:37 haiwei.sun 阅读(365) 评论(0) 推荐(0)
摘要:Struts2的核心功能是action,对于开发人员来说,使用struts2框架,主要的编码工作就是编写action类。Action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法,该方法的方法签名:Public String execute() throws ExceptionStruts2并不要求你所编写的action类一定要实现Action接口,你也可以编写一个普通的JAVA类作为action,只要该类提供一个返回类型为String的无參的public方法:Public String xxx()在实际的开发中,acti 阅读全文
posted @ 2012-03-22 11:55 haiwei.sun 阅读(159) 评论(0) 推荐(0)
摘要:Package元素属性:属性是否必需说明name是被其他包引用时的键(key)Extends否指定要扩展的包namespace否指定命名空间abstract否声明包为抽象的命名空间Namespace配置Package元素的namespace属性可以将包中的action配置为不同的名称空间,这样在不同名称空间中可以使用同名的action. Struts2框架使用action的名字和它所在的名称空间来标识一个action。当struts2接收到一个请求的时候,它会将请求的URL分为namespace和action名字这两个部分,然后struts2就会从struts.xml中查找namespace/ 阅读全文
posted @ 2012-03-22 11:26 haiwei.sun 阅读(261) 评论(0) 推荐(0)
摘要:1、建立好你的web项目2、拷贝struts2 jar包在apps\struts2-blank-2.1.6\WEB-INF\lib下|-commons-fileupload-1.2.6.jar|-commons-io-1.3.2.jar|-commons-logging-1.1.jar|-freemarker-2.3.13.jar|-ognl-2.6.11.jar|-struts2-core-2.1.6.jar|-xwork-2.1.2.jar3、配置web.xml拷贝示例文件<filter><filter-name>struts2</filter-name> 阅读全文
posted @ 2012-03-22 11:05 haiwei.sun 阅读(132) 评论(0) 推荐(0)
摘要:public class ProducerConsumer { public static void main(String[] args) { SyncStack ss = new SyncStack(); Producer p = new Producer(ss); Consumer c = new Consumer(ss); new Thread(p).start(); new Thread(p).start(); new Thread(p).start(); new Thread(c... 阅读全文
posted @ 2012-03-19 23:19 haiwei.sun 阅读(120) 评论(0) 推荐(0)
摘要:package org.shw.pc;public class TestPC { public static void main(String[] args) { Info info = new Info(); Producer pro = new Producer(info); Consumer con=new Consumer(info); new Thread(pro).start(); new Thread(con).start(); }}生产者消费者--Producer.java 阅读全文
posted @ 2012-03-19 21:57 haiwei.sun 阅读(140) 评论(0) 推荐(0)
摘要:package org.shw.pc;public class Producer implements Runnable { private Info info=null; public Producer(Info info){ this.info = info; } public void run() { for(int x=0;x<100;x++){ if(x%2==0){ this.info.set("MLDN","www.mldnjava.cn"); }... 阅读全文
posted @ 2012-03-19 21:56 haiwei.sun 阅读(154) 评论(0) 推荐(0)
摘要:package org.shw.pc;public class Consumer implements Runnable { private Info info=null; public Consumer(Info info){ this.info=info; } public void run() { for(int x=0;x<100;x++){ this.info.get(); } }} 阅读全文
posted @ 2012-03-19 21:56 haiwei.sun 阅读(162) 评论(0) 推荐(0)
摘要:package org.shw.pc;public class Info { private String title="李兴华"; private String content="java讲师"; private boolean flag=false; //false--表示可以取走,但是不能生产 true--表示可以生产,但是不能取走 public synchronized void set(String title,String content){ if(flag==false){//已经生产过了,需要等待 try{ ... 阅读全文
posted @ 2012-03-19 21:55 haiwei.sun 阅读(235) 评论(0) 推荐(0)
摘要:新建状态:用new语句创建的线程对象处于新建状态。就绪状态:当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态。运行状态:处于这个状态的线程占用CPU,执行程序代码。只有处于就绪状态的线程才有机会转到运行状态。阻塞状态:线程因为某些原因放弃CPU,暂时停止运行。当线程处于阻塞状态时,Java虚拟机不会给线程分配CPU,直到线程重新进入就绪状态,它才有机会转到运行状态。死亡状态:当线程执行完run()方法中的代码,或者遇到了未捕获的异常,就会退出run()方法,此时就进入死亡状态,该线程结束生命周期。程序如何干预Java虚拟机对线程的调度过程(1)调整各个线程的优先级 阅读全文
posted @ 2012-03-19 15:54 haiwei.sun 阅读(218) 评论(0) 推荐(0)
摘要:public class ThreadJoin extends Thread { public void run(){ for(int a=0;a<30;a++){ System.out.println(getName()+":"+a); } } public static void main(String[] args) { ThreadJoin tj = new ThreadJoin(); tj.setName("m1"); tj.start(); Syste... 阅读全文
posted @ 2012-03-19 14:04 haiwei.sun 阅读(332) 评论(0) 推荐(0)
摘要:public class ThreadYield extends Thread{ public void run(){ for(int a=0;a<50;a++){ yield(); System.out.println(Thread.currentThread().getName()+" : "+a); } } public static void main(String[] args) { ThreadYield t1 = new ThreadYield(); Th... 阅读全文
posted @ 2012-03-19 13:47 haiwei.sun 阅读(679) 评论(0) 推荐(0)
摘要:两者的区别有: 1、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 2、这两个方法来自不同的类分别是Thread和Object 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在 任何地方使用 synchronized(x){ x.notify() //或者wait() } 4、sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常 阅读全文
posted @ 2012-03-19 13:21 haiwei.sun 阅读(1032) 评论(0) 推荐(0)
摘要:public class ThreadSleep extends Thread { public void run(){ for(int a=0;a<50;a++){ try{Thread.sleep(500);}catch(InterruptedException e){} System.out.println(Thread.currentThread().getName()+" : "+a); } } public static void main(String[] args) { ... 阅读全文
posted @ 2012-03-19 12:35 haiwei.sun 阅读(17673) 评论(0) 推荐(0)
摘要:public class MyRunnable implements Runnable{ int a=0; public void run(){ for(a=0;a<10;a++){ try{Thread.sleep(100);}catch(Exception e){} System.out.println(Thread.currentThread().getName()+":"+a); } } public static void main(String[] args) { MyRu... 阅读全文
posted @ 2012-03-19 12:26 haiwei.sun 阅读(153) 评论(0) 推荐(0)
摘要:public class MyThread extends Thread { public void run(){ for(int i=0;i<50;i++){ try{ Thread.sleep(100);}catch(Exception e){} System.out.println(Thread.currentThread().getName()+" : "+i); } } public static void main(String[] args) { MyThread t1 =... 阅读全文
posted @ 2012-03-19 11:34 haiwei.sun 阅读(265) 评论(0) 推荐(0)
摘要:1、java数组要求所有数据元素具有相同的数据类型。2、一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度将不可改变。 即使把某个数组元素清空,但它所占的空间依然被保留,依然属于该数组,数组的长度依然不变。3、定义数组 type[] arrayName;4、数组是一种引用类型的变量,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定义了一个指针), 这个引用变量还未指向任何有效的内存,因此定义数组时不能指定数组的长度。 而且由于定义数组仅仅只是定义了一个引用变量,并未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有对数组进 阅读全文
posted @ 2012-03-14 14:51 haiwei.sun 阅读(1437) 评论(0) 推荐(1)
摘要:append() [添加] appendByRef() [引用添加] assign() [赋值] assignByRef() [引用赋值] clearAllAssign() [清除所有赋值] clearAllCache() [清除所有缓存] clearAssign() [清除赋值] clearCache() [清除缓存] clearCompiledTpl() [清除已编译模板] clearConfig() [清除配置] compileAllConfig() [编译所有配置文件] compileAllTemplates() [编译所有模板] configLoad() [加载配置] createD 阅读全文
posted @ 2012-03-09 11:36 haiwei.sun 阅读(156) 评论(0) 推荐(0)
摘要:$template_dir [模板目录变量]$compile_dir [编译目录变量]$config_dir [配置目录变量]$plugins_dir [插件目录变量]$debugging [调试变量]$debug_tpl [调试模板变量]$debugging_ctrl [调试控制变量]$auto_literal [自动忽略解析]$autoload_filters [自动加载过滤器变量]$compile_check [编译检查变量]$force_compile [强迫编译变量]$caching [缓存变量]$cache_dir [缓存目录变量]$cache_lifetime [缓存生存时间变量 阅读全文
posted @ 2012-03-09 10:19 haiwei.sun 阅读(206) 评论(0) 推荐(0)
摘要:本常量为Smarty类文件绝对路径,如果未定义本变量,Smarty将尝试自行提供一个适当的值,如果为本变量提供了路径值,请在路径后加一个斜杠"/"。Example 11-1. SMARTY_DIR<?php// set path to Smarty directory *nix styledefine('SMARTY_DIR', '/usr/local/lib/php/Smarty-v.e.r/libs/');// path to Smarty windows styledefine('SMARTY_DIR', ' 阅读全文
posted @ 2012-03-09 10:02 haiwei.sun 阅读(518) 评论(0) 推荐(0)
摘要:从字符串开始处截取某长度的字符,默认是80个,你也可以指定第二个参数作为追加在截取字符串后面的文本串。该追加字串被计算在截取长度中。默认情况下,smarty会截取到一个词的末尾。如果你想要精确的截取多少个字符,把第三个参数改为"true" 。参数位置参数类型是否必需默认描述1integerNo80截取字符的数量2stringNo...截取后追加在截取词后面的字符串3booleanNofalse是截取到词的边界(false)还是精确到字符(true)4booleanNofalse设置为FALSE将截取至字符串末尾,设置为TRUE则截取到中间。注意如果设了TRUE,则忽略字符边 阅读全文
posted @ 2012-03-08 14:08 haiwei.sun 阅读(270) 评论(0) 推荐(0)
摘要:为变量设置一个默认值。当变量未设置或为空字符串时,将由给定的默认值替代其输出。Default需要一个参数。参数位置类型是否必须默认描述1stringNoempty这是变量为空的时候的默认输出。Example 5-9. default<?php$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');$smarty->assign('email', '');?> Where template is:{$articleTitle 阅读全文
posted @ 2012-03-08 13:40 haiwei.sun 阅读(537) 评论(0) 推荐(0)
摘要:本调节器将格式化的日期和时间经php函数strftime()处理。Unix时间戳、mysql时间戳及由年月日组成的字符串格式的日期可以传递到smarty经php函数strtotime()解析。设计者可以使用date_format完全控制日期格式,如果传给date_format的日期为空值,但提供了第二个参数,那么将使用第二参数格式化时间。 参数位置类型是否必须默认描述1stringNo%b %e, %Y输出日期的格式。2stringNon/a输入为空时,作为默认时间。从Smarty-2.6.10开始,传递给date_format的数字值(除了mysql时间戳,见下文)总是当作unix时间戳。在 阅读全文
posted @ 2012-03-08 13:39 haiwei.sun 阅读(1648) 评论(0) 推荐(0)
摘要:计算变量里的词数 。Example 5-7. count_words<?php$smarty->assign('articleTitle', 'Dealers Will Hear Car Talk at Noon.');?> Where template is:{$articleTitle}{$articleTitle|count_words} This will output:Dealers Will Hear Car Talk at Noon.7See also count_characters, count_paragraphs and 阅读全文
posted @ 2012-03-08 13:36 haiwei.sun 阅读(146) 评论(0) 推荐(0)
摘要:计算变量里的字符数。参数位置类型是否必须默认描述1booleanNofalse确定是否计算空格字符。Example 5-4. count_characters<?php$smarty->assign('articleTitle', 'Cold Wave Linked to Temperatures.');?>Where template is:{$articleTitle}{$articleTitle|count_characters}{$articleTitle|count_characters:true}Will output:Cold W 阅读全文
posted @ 2012-03-08 13:31 haiwei.sun 阅读(152) 评论(0) 推荐(0)
摘要:将cat里的值后接到给定的变量后面。参数位置类型是否必须默认描述1stringNoempty将cat里的值连接到给定的变量后面。Example 5-3. cat<?php$smarty->assign('articleTitle', "Psychics predict world didn't end");?>index.tpl:{$articleTitle|cat:" yesterday."}OUTPUT:Psychics predict world didn't end yesterday. 阅读全文
posted @ 2012-03-08 13:28 haiwei.sun 阅读(585) 评论(0) 推荐(0)
摘要:将变量里的所有单词首字大写。它与php的ucwords()函数类似。参数位置类型必需默认描述1BooleanNoFALSE确定带数字的单词是否需要大写例 5-2.首字大写<?php$smarty->assign('articleTitle', 'next x-men film, x3, delayed.');?> Where the template is:{$articleTitle}{$articleTitle|capitalize}{$articleTitle|capitalize:true} Will output:next x-men 阅读全文
posted @ 2012-03-08 13:26 haiwei.sun 阅读(247) 评论(0) 推荐(0)
摘要:capitalize cat count_characters count_paragraphs count_sentences count_words date_format default escape indent lower nl2br regex_replace replace spacify string_format strip strip_tags truncate upper wordwrap变量调节器作用于变量、自定义函数或字符串。变量调节器的用法是:‘|’符号右接调节器名称。变量调节器可接收附加参数影响其行为。参数位于调节器右边,并用‘:’符号分开。例 5-1.调节器的例 阅读全文
posted @ 2012-03-08 12:41 haiwei.sun 阅读(238) 评论(0) 推荐(0)
摘要:Request variables[页面请求变量] {$smarty.now} {$smarty.const} {$smarty.capture} {$smarty.config} {$smarty.section} {$smarty.template} {$smarty.current_dir} {$smarty.version} {$smarty.block.child} {$smarty.block.parent} {$smarty.ldelim}, {$smarty.rdelim}可以通过php保留变量{$smarty}访问几个环境和请求变量。列表如下。Request variable 阅读全文
posted @ 2012-03-08 12:31 haiwei.sun 阅读(512) 评论(0) 推荐(0)
摘要:你可以选择为主要的Smarty对象作用域分配变量,createData()用来建立数据对象,createTemplate()用来建立模板对象。这些对象支持链式,在模板中可以查看所有模板本身的对象变量和所有分配给父对象链的变量。默认情况下,模板在执行$smarty->displaty(...)、$smarty->fetch(...)方法时已自动链接至Smarty对象变量范围。对于分配到单个数据或模板对象的变量,您可以完全控制哪些变量在模板中可见。这些所谓的主要Smarty对象,共有三个,分别是Smarty、模板、数据;在php程序中,为这些作用域变量赋值时,首先须将它们实例化,如$s 阅读全文
posted @ 2012-03-08 12:07 haiwei.sun 阅读(503) 评论(0) 推荐(0)
摘要:加载配置文件后,配置文件中的变量需要用两个井号"#"包围或者是smarty的保留变量$smarty.config.来调用(下节将讲到),第二种语法在变量作为属性值嵌入至引号的时候非常有用,详细可参考双引号里值的嵌入。译注(译注:举个例子 {include file="#includefile#"} 这样#includefile#将被当作字符处理,而不表示配置文件变量,但可以这样表示 {include file="`$smarty.config.includefile`"}不要忘了加``,当然也可用{$smarty.config.inc 阅读全文
posted @ 2012-03-08 11:57 haiwei.sun 阅读(305) 评论(0) 推荐(0)
摘要:关联数组数组下标对象调用从PHP分配的变量需在前加"$"符号(译注:同php一样)。例 4-2.分配的变量PHP code:<?php$smarty = new Smarty();$smarty->assign('firstname', 'Doug');$smarty->assign('lastname', 'Evans');$smarty->assign('meetingPlace', 'New York');$smarty->display(&# 阅读全文
posted @ 2012-03-08 11:53 haiwei.sun 阅读(415) 评论(0) 推荐(0)
摘要:Smarty有几种不同类型的变量,变量的类型取决于它的前缀符号是什么(或者被什么符号包围)。Smarty的变量可以直接被输出或者作为函数属性和调节器(modifiers)的参数,或者用于内部的条件表达式等等。如果要输出一个变量,只要用定界符将它括起来就可以。例 4-1.分配的变量{$Name}{$product.part_no} <b>{$product.description}</b>{$Contacts[row].Phone}<body bgcolor="{#bgcolor#}">一个检验是否为Smarty变量的简单方法就是执行调试控 阅读全文
posted @ 2012-03-08 11:47 haiwei.sun 阅读(121) 评论(0) 推荐(0)
摘要:有时,忽略Smarty对某些语句段的解析很有必要。一种典型的情况是嵌入到模板中的javascript或Css代码。原因在于这些语言使用与Smarty默认定界符‘{’和‘}’一样的符号。一个避免出现这种情况的好习惯是把你的javascript/css代码分离出来保存成一个独立文件,再用html方法链接到模版中。这样做也有利于浏览器缓存脚本。如果你想把Smarty变量、方法嵌入到javascript/css,请看下面的运用。在Smarty模版,如果‘{’和‘}’大括号里包含有空格那么整个{}内容会被忽略,你可以设置Smarty类变量$auto_literal=false来取消这种规则。Exampl 阅读全文
posted @ 2012-03-08 11:43 haiwei.sun 阅读(963) 评论(0) 推荐(0)
摘要:数学运算可以直接作用到变量值。例 3-7.数学运算的例子 {$foo+1}{$foo*$bar}{* some more complicated examples *} {* 一些更复杂的示例 *}{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}{if ($foo+$bar.test%$baz*134232+10+$b+10)}{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}{assign var="foo" value="`$foo+$b 阅读全文
posted @ 2012-03-08 11:38 haiwei.sun 阅读(336) 评论(0) 推荐(0)
摘要:Smarty will recognize assigned variables embedded in "double quotes" so long as the variable name contains only numbers, letters and under_scores. See naming [http://php.net/language.variables] for more detail.With any other characters, for example a .period or $object>reference, then t 阅读全文
posted @ 2012-03-08 11:35 haiwei.sun 阅读(452) 评论(0) 推荐(0)
摘要:大多数函数都带有自己的属性以便于明确说明或者修改他们的行为,smarty函数的属性很像HTML中的属性。静态数值不需要加引号,但是字符串建议使用引号。可以使用普通smarty变量,也可以使用带调节器的变量作为属性值,它们也不用加引号。你甚至可以使用php函数返回值和复杂表达式作为属性值。一些属性用到了布尔值(true或false),它们表明为真或为假。如果没有为这些属性赋布尔值,那么默认使用true为其值。译注函数、调节器的属性实际为函数的参数。例 3-3.函数属性语法 {include file="header.tpl"}{include file="heade 阅读全文
posted @ 2012-03-08 11:30 haiwei.sun 阅读(167) 评论(0) 推荐(0)
摘要:每一个smarty标签输出一个变量或者调用某种函数。在定界符内函数(一般定界符‘{}’包住)和其属性(同样在定界符内)将被处理和输出。例如: {funcname attr1="val" attr2="val"}.例 3-3.函数语法 {config_load file="colors.conf"}{include file="header.tpl"}{if $highlight_name} Welcome, <font color="{#fontColor#}">{$name}!&l 阅读全文
posted @ 2012-03-08 11:22 haiwei.sun 阅读(98) 评论(0) 推荐(0)
摘要:模板变量用美元符号$开始,可以包含数字、字母和下划线,这与php变量很像。你可以引用数组的数字或非数字索引,当然也可以引用对象属性和方法。译注译注:按照说明像$abc、$abc123、$abc_123、$abc[1]、$abc['a']、$abc->a、$abc->a()这些模板变量都是有效的。配置文件变量是一个不用美元符号$,而是用#号包围着变量(#hashmarks#),或者是一个$smarty.config形式的变量。Example 3-2. 变量{* 演示server变量"SERVER_NAME"($_SERVER['SERVER 阅读全文
posted @ 2012-03-08 11:19 haiwei.sun 阅读(789) 评论(0) 推荐(0)
摘要:模板注释被*星号包围,而两边的星号又被定界符包围,例如 {* this is a comment *} 。smarty注释不会在模板文件的最后输出中出现,这与<!-- HTML 注释-->不同(译注:html注释在页面源码中可见,而smarty注释则不能)。这点非常有用,试想,注释只存在于模板里面,而在输出的页面中谁也看不见:)。eg:{* another single line smarty comment *} 阅读全文
posted @ 2012-03-08 11:05 haiwei.sun 阅读(332) 评论(0) 推荐(0)
摘要:/root/lnmp restart时,报错如下:Shutting down php_fpm doneStarting php_fpm Failed loading /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so: cannot open shared object file: No such file or directoryFailed 阅读全文
posted @ 2012-03-08 00:18 haiwei.sun 阅读(751) 评论(0) 推荐(0)
摘要:http://hi.baidu.com/133782/blog/item/b88fc595a50e5112d31b70ed.html1、查看当前的PHP FastCGI进程数是否够用:netstat -anpo | grep "php-cgi" | wc -l 如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。 2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间......http{......fastcgi_conn 阅读全文
posted @ 2012-03-06 17:03 haiwei.sun 阅读(470) 评论(0) 推荐(0)
摘要:http://prodigyu.com/301安装所需组件yum list | grep libpyum install libp*wget ftp://ftp.lmd.ens.fr/pub/devil/devel/sources/1.2/libpcap-0.9.8.tar.gz安装iftopwget http://www.ex-parrot.com/~pdw/iftop/download/iftop-0.17.tar.gztar zxvf iftop-0.17.tar.gzcd iftop-0.17./configuremakemake install安装完后使用命令iftop -i eth 阅读全文
posted @ 2012-03-06 16:08 haiwei.sun 阅读(910) 评论(0) 推荐(0)
摘要:Map(映射)是一种把键对象和值对象进行映射的集合。它的每一个元素都包含一对键对象和值对象,而值对象仍可以是Map类型,依次类推,这样就形成了多级映射。向map集合中加入元素时,必须提供一对键对象和值对象,从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。以下通过Map的put(Object key,Object value)方法向集合中插入元素,通过Map 的get(Object key)方法来检索与键对象对应的值对象。Map<String ,String> map = new HashMap<String,String>();Map.put(“1”,” 阅读全文
posted @ 2012-03-06 01:15 haiwei.sun 阅读(526) 评论(0) 推荐(0)
摘要:List的主要特征是其元素以线性方式存储,集合中允许存放重复对象。List接口主要的实现类包括:ArrayList – 代表长度可变的数组。允许对元素进行快速的随机访问,但是向ArrayList中插入与删除元素的速度较慢。LinkedList – 在实现中采用链表数据结构。对顺序访问进行了优化,向List中插入和删除元素的速度较快,随机访问速度则相对较慢。随机访问是指检索位于特定索引位置的元素。LinkedList单独具有addFirst() addLast() getFirst() getLast() removeFirst() removeLast()方法,这些方法使得LinkedList 阅读全文
posted @ 2012-03-06 01:01 haiwei.sun 阅读(555) 评论(0) 推荐(0)
摘要:Set是最简单的一种集合,集合中的对象不按特定方式排序,并且没有重复对象,Set接口主要有两个实现类:HashSet和TreeSet。HashSet类按照哈希算法来存取集合中的对象,存取速度比较快。HashSet类还提供了一个子类LinkedHashSet类,它不仅实现了哈希算法,而且实现了链表数据结构,链表数据结构能提高插入和删除元素的性能。TreeSet类实现了SortedSet接口,具有排序功能。1.2.1 Set的一般用法Set集合中存放的是对象的引用,并且没有重复对象。无序的。public static void main(String[] args) { Set<String 阅读全文
posted @ 2012-03-06 00:27 haiwei.sun 阅读(188) 评论(0) 推荐(0)
摘要:在Collection接口中声明了适用于java集合(只包含Set和List)的通用方法:方法描述Boolean add(Object o)向集合中添加一个对象的引用Void clear()删除集合中的所有对象,即不再持有这些对象的引用Boolean contains(Object o)判断在集合中是否持有特定对象的引用Boolean isEmpty()判断集合是否为空Iterator iterator()返回一个Iterator对象,可用它来遍历集合中的元素Boolean remove(Object o)从集合中删除一个对象的引用Int size()返回集合中元素的数目Object[] to 阅读全文
posted @ 2012-03-05 23:54 haiwei.sun 阅读(702) 评论(0) 推荐(0)
摘要:Java数组的长度是固定的,在同一个数组中只能存放相同类型的数据。数组可以存放基本类型的数据,也可以存放引用类型的数据。在创建数组时,必须明确指定数组的长度,数组一旦创建,其长度就不能被改变。在许多应用场合,一组数据的数目是不固定的,比如一个单位的员工数目是变化的,有老的员工跳槽,也有新的员工进来。为了使程序能方便地存储和操纵数目不固定的一组数据,JDK类库提供了java集合,所有java集合类都位于java.util包中。与java数组不同,java集合中不能存放基本类型数据,而只能存放对象的引用。Java集合主要分为以下3种类型:n Set(集):集合中的对象不按特定方式排序,并且没有重复 阅读全文
posted @ 2012-03-05 23:11 haiwei.sun 阅读(181) 评论(0) 推荐(0)
摘要:转自:http://www.centos.bz/2011/07/php-cron-job-linux-crontab/PHP计划任务:如何使用Linux的Crontab执行PHP脚本发表于225 天前 ⁄ FAQ ⁄ 评论数 5文章目录[隐藏]一、在Crontab中使用PHP执行脚本二、在Crontab中使用URL执行脚本我们的PHP程序有时候需要定时执行,我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现。但这两种方法都不太可靠,不稳定。我们可以借助Linux的Crontab工具来稳定可靠地触发PHP执行任务。 下面介绍Crontab的两种方法。一、在C.. 阅读全文
posted @ 2012-03-05 13:47 haiwei.sun 阅读(839) 评论(0) 推荐(0)

返回顶部