首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

struts学习札记二:国际化和拦截器

2012-08-27 
struts学习笔记二:国际化和拦截器1,xwork校验框架分为,属性优先,校验器优先:思路:先写上校验器,然后写属性

struts学习笔记二:国际化和拦截器

1,xwork校验框架分为,属性优先,校验器优先:

思路:先写上校验器,然后写属性.

写法:<validator type="requiredstring">

<param name="fieldName">username</param>

<message>username invalide</message>

</validator>

<validator type="stringlength">

<param name="fieldName">username</param>

<param name="minLength">6</param>

<param name="maxLength">10</param>

<message>username ?length should be 6-10</message>

</validator>

2,ognl标签库

<s:form action="register" theme="simple">

<s:textfield name="username" label="username"></s:textfield>

<s:password name="password" label="password"></s:password>

<s:password name="repassword" label="repassword"></s:password>

<s:textfield name="age" label="age"></s:textfield>

<s:textfield name="graduation" label="graduation"></s:textfield>

<s:textfield name="birthday" label="birthday"></s:textfield>

</s:form>

不仅内置了信息输出的功能,还能保存之前输入的信息.

3,struts2如何判断输入信息出错的?

ActionSupport类中有

bool hasActionError()

bool hasFieldError()

bool hasErrors()

4,属性驱动的Action:把对象的属性写在Action中

模型驱动的Action:直接把类写在Action中,需要实现ModelDriven<T>接口

Action不是单实例的,一个请求实例化一次;serverlet是单实例的.

Preparable接口,预处理跟逻辑无关的准备工作.

5,国际化 internationalization

获得系统提供的语言种类

Locale[] locals=Locale.getAvailableLocales();

locale[i].getDisplayCountry()

locale[i].getCountry()

获取国际化相关的信息

Locale locale=Locale.US;

ResourceBundle bundle=ResourceBundle.getBundle("helloworld",locale);

bundel.getString("hello");

helloworld-en-US.properties

helloworld-zh-CN.properties

获得动态指定的信息

MessageFormat.format("hello",new Object[]{"中国"}) 输出hello:中国

getText( key,value)

原理:浏览器发送请求的时候发送了语言.

6.过滤器和拦截器原理

过滤器:实现Filter接口

拦截器:Intercepor接口,struts的核心,

init()?

String intercept(ActionInvocation invacation)

destory()

第一步:定义一个拦截器类,必须实现Interceptor接口.

invoke() 调用下一个拦截器

第二步:申明拦截器

在配置文件中申明:

<interceptors>

<interceptor name="a" />

热点排行