首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2的精简总结

2012-10-15 
struts2的简要总结*一.*在struts2中Action类的作用?1.定义了5个字符串常量public static final String SUC

struts2的简要总结

*一.*在struts2中Action类的作用?

  1.定义了5个字符串常量

public static final String SUCCESS = "success";
public static final String NONE = "none"; 
public static final String ERROR = "error"; 
public static final String INPUT = "input"; 
public static final String LOGIN = "login";
  2.定义处理用户请求的execute抽象方法

二.ActionSupport类的作用?

   ActionSupport类是struts2中的一个工具类,它已经实现了Action接口。除此之外,它还

实现了Validateable接口,提供了数据校验,国际化功能。通过继承该ActionSupport类,

可以简化Struts 2的Action开发。

*三.*打印验证的方法有两种:

A.<s:fielderror />:这是强制打印

B.如果用struts2的标签提交它会自动打印。

*四.*自定义类型转换器步骤:

<1>在src目录下建立一个xwork-conversin.properties文件

里面主要包含:包名.属性名=包名.类型转换器的类名

<2>写一个属性类和一个类型转换器的类

<3>在页面定义一个文本属性,里面输入符合类型转换器类厘米的格式即可。

*五.*struts2国际化步骤:

第一步、在src文件夹中加入struts.properties文件,内容如下:

struts.custom.i18n.resources=globalMessages

第二步、在src文件夹中加入globalMessages_en_US.properties文件,

内容如下:

HelloWorld=Hello World!

第三步、在src文件夹中加入globalMessages_zh_CN.properties文件(

注意转码),内容如下:

user=\u7528\u6237\u540d

第四步,在jsp页面上引用。

第五步,运行。

*六.*国际化控件制作:

第一步.写一个类,里面用集合保存java.util.Locale中的常量:

内容如下:

public class Language {

  Map<String,Locale>  map=new HashMap<String, Locale>();

  public Map<String,Locale> getMap(){

  map.put("英文", Locale.US);

  map.put("中文", Locale.CHINA);

  return map;

  }

{color:#000000}}第二步.在struts.xml文件中配置一个完整的Action。

第三步.在jsp页面上引用集合类中的集合

如:

<s:select name="request_locale" label="请选择语言" labelposition="top" value="#session['WW_TRANS_I18N_LOCALE']"

    list="#Language.map" listKey="value"

listValue="key" onchange="Language();" />

注:select的name是规定的(request_locale),这是标准不可以改变。

#session['WW_TRANS_I18N_LOCALE']是取到session的值,也就是你选中的值。

*七.*struts2常量配置的地方(struts2搜索顺序如下:):

  1.struts.xml

  2.struts.properties

  3.web.xml配置如:

*八.*什么是拦截器?

拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,

进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。

*九.*自定义拦截器:

第一步:写一个类继承AbstractInterceptor。覆盖intercept()方法

第二步:在intercept里面写一些要执行的内容,在调用invoke();

内容如下:String result=actionInvocation.invoke();

第三步:在struts.xml中配置

如:

<interceptors>

<interceptor name="interceptors" />

</interceptor-stack>

</interceptors>

第四步:在struts.xml中的Action中引用

如:<interceptor-ref name="custom-stack"></interceptor-ref>

第五步:运行;

*十.*指定方法拦截器:

第一步:写一个类继承MethodFilterInterceptor。覆盖doIntercept()方法

第二步:在doIntercept()里面写一些要执行的内容,在调用invoke();

内容如下:String result=actionInvocation.invoke();

第三步:在struts.xml中配置

<interceptors>

  <interceptor name="interceptorsFilter" class="com.interceptors.InterceptorsFilter"/>

   <interceptor-stack name="custom-stack">

   <interceptor-ref name="interceptorsFilter">

      <param name="includeMethods">拦截的方法,多个方法用逗号分开</param>

      <param name="excludeMethods">拦截出这个方法以为的方法</param>

</interceptor-ref>

</interceptor-stack>

</interceptors>

第四步:在struts.xml中的Action中引用

如:<interceptor-ref name="custom-stack"></interceptor-ref>

第五步:运行;

十一.Struts 2支持以下几种表达式语言:

1.      OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;

2.      JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言;

3.      Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性;

4.      Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。



Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:

1.      支持对象方法调用,如xxx.doSomeSpecial();

2.      支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 |  值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME;

3.      支持赋值操作和表达式串联,如price=100, discount=0.8, calculatePrice(),这个表达式会返回80;

4.      访问OGNL上下文(OGNL context)和ActionContext;

5.      操作集合对象。

热点排行