在Tomcat\conf的service.xml 文件中配置如下.即可对应项目路径
<Context path="/zmcc" docBase="D:\workspace3.2.1\csp-zmcc\WebRoot" reloadable="true"/>
</Host>
JDK自带了一个转换UNICODE编码的命令
native2ascii
在CMD命令中输入以上命令
回车后输入要转换的中文即可
还可以通过转换文件的方式
native2ascii 原文件名 新文件名
I18Njava代码里的使用方法
public static void main(String[] args) {
ResourceBundle res = ResourceBundle.getBundle("app", Locale.CHINA);
System.out.println(res.getString("ucp.welcome.msg" ));
}
1.类级别
在class下同一目录建文件,以class名字命名的
className_en_US.properties
内容
welcome=welcome
className_zh_CN.properties
内容
welcome=欢迎
在JSP中配置
<s:property value="getText('welcome')"/>
getText为类com.opensymphony.xwork2.ActionSupport
里的方法
2.包级别
在包中建国际化文件,以package开头命名的
如:package_zh_CN.properties
3.全局级别
从struts2-core-2.1.8.1.jar中的org.apache.struts2.default.properties搜索出
### Load c ...
struts.xml配置
统一的全局异常处理页面
<global-result>
<result id="exception" type="jsp" path="/exception.jsp" />
<result id="error" type="jsp" path="/exception.jsp" />
</global-result>
<global-exception-mapping>
<exception name="bmeExceptionHandler" class="com.meiyoudao.commons.exception.BMEException" result="exception-mapping"/>
<exception name="exceptionHandler" class="java.lang.Exception" result="exception-mapping"/>
</global-exception-mapping>
struts异常处理时通过Filter进行拦截的,使用责任链设计模式。
import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;
OperatingSystemMXBean o = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
动态代理
就是有一个代理商,只要你提供美女一枚,加一个大礼包(内附说明书)给他.他就能根据说明书把这个美女包装成说明书中想要的效果.比如:名模,歌星,影星等等.
详见:java.lang.reflect.Proxy
主要用在
1.计算一段代码运行的时间.
2.事务处理.
3.记录日志.
4.验证权限.
聚合优于继承,
当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚集关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。
代理就是A类实现了B类同样的接口,并且包含了B类,同时,A类的方法全是调用了B类中的方法.
public class A implement C{
private B b;
public A(B b){
super();
this.b = b;
}
public doSomething(){
b.doSomething();
}
}
从小就听过龟兔赛跑的故事了.
那么永远都是乌龟输吗?
答案是:不是.
当你是乌龟的时候,你是否想过.如果我把赛道改变了,中间经过一条很宽的河,猜猜,谁最终获得胜利?
在你的工作单位,如果你是一個能言善道的人,一定要想法創造机会,好好表现自己,
以便让高层注意到你的能力。
如果你的优势是从事分析工作,那么你一定要做一些研究,写意义的报告,然后呈送上去。
顺著自己的优势(专长)來工作,不尽会让上头的人注意到你,也会为自己创造成长和进步的机会。
<li>property: <s:property value="username"/> </li>
显示字符串username在页面上
<li>property 取值为字符串: <s:property value="'username'"/> </li>
<li>property 设定默认值: <s:property value="admin" default="管理员"/> </li>
escape="false",表示不解析,把它当做HTML标签处理.默认为true.
<li>property 设定HTML: <s:property value="'<hr/>'" escape="false"/> </li>
<li>set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /></li>
<li>set 从request取值: <s:property value="#request.adminName" /></li>
<li>set 从ActionContext取值: <s:property value="#adminName" /></li>
<%--<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li>
<li>set 从相应 ...
<li>访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
<li>访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
<li>访问值栈中对象的普通属性(get set方法): <s:property value="cat.dog.name"/></li>
<li>访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
<li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
<li>访问值栈中action的普通方法:<s:property value="m()" /></li>
<hr />
<li>访问静态方法:<s:property value="@com.meiyoudao.web.WelcomeAction@s()"/></li>
注:静态方法,需要改struts默认的属性值为true.
<constant name="struts.ognl ...