struts2学习笔记-简单介绍

一、struts.valueStack的使用 
   当Action设置了某个属性后,Struts2将这些属性值全部封装在一个叫做struts.valueStack的请求属性里。在页面可以输出ValueStack vs = (ValueStack)request.getAttribute("struts.valueStack"); 
String[] books = (String[])vs.findValue("books"); books是action里的属性 
for  (String book:books){ 
    out.println(book); 

不过这种方法基本不会去用。 

    二、国际化注意点及native2ascii使用: 
    (一)、国际化资源文件命名的格式为:basename_语言代码_国家代码.properties 
   例如:美国  messageResource_en_US.properties 
        中国  messageResource_zh_CN.properties 

    (二)、加载资源文件可以通过struts.properties文件来定义 
     例如:struts.custom.i18n.resources = messageResource 
    
    (三)、输出国际化信息: 
     1.<s:text name="messageKey" />  使用s:text标签来输出国际化信息。 
     2.<s:property value="%{getText("messageKey")" />  使用表达式方式输出国际化信息。 

    (四)、native2acsii: 
     如果国际化资源文件包含了非西欧字符,则应先转换你成标准的ASCII格式,可以利用native2ascii来转化: 
native2ascii messageResouce.properties messgeResouce_zh_CN.properties 
输入文件名为:messageResource.properties 
输出文件名为:messageResouce_zh_CN.properties 
    具体用法: 
     用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]] 

    -[options]:表示命令开关,有两个选项可供选择 
     -reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。 
    -encoding encoding_name:转换为指定编码,encoding_name为编码名称。 
    [inputfile [outputfile]] 
    inputfile:表示输入文件全名。 
     outputfile:输出文件名。如果缺少此参数,将输出到控制台 

     三、数据校验 
     
     利用struts2的数据校验或者拦截器,一定要在action中配置<result name="input" />,当有错误的时候系统会自动返回,如果要在返回后的页面中输出错误信息,则需要在该页面中添加<s:fielderror />,但错误信息有时候很难看懂,故可以配置国际化,有些key是固定的,详细的看文档。 

     (一)、通过重写ActionSupport类的validate方法实现。 
     1.一般都会继承ActionSupport,因为他里面有return的值。 
     2.validate方法会在execute方法之前执行,如果执行了validae方法,Action类的fieldErrors中已经包含了数据校验错误,请求将被转发到input逻辑视图处。故应该要配置返回为input属性。 
     3.因为struts2的<s:form.../>默认已经提供了输出校验错误的能力,故错误信息会直接在input的页面输出。 
     (二)、使用struts2的校验框架 
      1.增加一个校验配置文件,通过使用struts2已有的校验器进行校验。 
      2.遵守如下规则:ActionName-validation.xml其中ActionName就是需要校验的Action的类名。并且把该文件和Action类的class文件放在同一个路径下。 
      3.校验规则的定义文件如下: 
<?xml version="1.0" encoding="GBK"?> 
<!-- 指定校验规则文件的DTD信息 --> 
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd"> 
<!-- 校验规则定义文件的根元素 --> 
<validators> 
<!-- 校验第一个表单域:username --> 
<field name="username"> 
<!-- 该表单域必须填写 --> 
<field-validator type="requiredstring"> 
<!-- 如果校验失败,显示user.required对应的信息 --> 
<message key="user.required"/> 
</field-validator> 
</field> 
<!-- 校验第二个表单域:password --> 
<field name="password"> 
<field-validator type="requiredstring"> 
<!-- 如果校验失败,显示pass.required对应的信息 --> 
<message key="pass.required"/> 
</field-validator> 
</field> 
</validators> 

你可能感兴趣的:(struts)