Struts的标签库

来源:互联网 发布:linux怎么看硬盘空间 编辑:程序博客网 时间:2024/05/16 10:37
truts的标签库
   OGNL  -数据访问语言。
   Stack Context(OGNL Context/Context Map/Action Context)
   ValueStack
   Stack Context中包含了ValueStack(根对象)。


控制标签:
   if/elseif/else  --模拟流程控制
   iterator        --模拟流程控制的迭代。
   append/merge    --把两个或N个已有的集合合并成新的集合。
   generator       --分割出集合。
   sort            --对集合元素排序,需要指定一个Comparator.
   subset          --截取子集合。
数据标签:
   set   --设置变量值。var指定变量名字,value指定变量值。scope指定范围。
   bean  --创建一个Bean对象,var指定对象的名(Stack Context)。name指定实现类。
   debug --帮助调试。可以开发者观察ValueStack以及Stack Context中的数据。
 i18n  --为指定页面加载国际资源文件
 text  --输出国际化消息。也通过name指定国际化资源包的baseName。
 property --输出表达式的值。通过value属性来指定表达式。
              如果没有指定value属性,将直接输出ValueStack栈顶的值。
         action  --可以直接在页面上调用指定Action

    可以直接在页面上把Action的外理结果包含到本页面中。     

 name和namespace确定调用哪个Action
 var:指定将被调用Action放入Stack Context(官方文档是胡扯的)
  executeResult:指定是否把被调Action的处理结果完包含到当前页面中

 ignoreContextParams:控制当前页面请求参数,是否传入被用的Action

     这个标签的功能是比较有用的:假如我们进入一个添加用户的页面:
          用户名:????
          密码:????
  性别:下拉列表   <s:action var="genders" name="listGender">  
          学历:下拉列表   -来自系统的数据库中数据 <s:action var="jiguans" name="listJiguan">  


   date    --对日期进行格式化输出
                name:指定要格式化输出的日期。
             format:指定格式字符串。  
   include --用于包含指定的JSP页面。   
   param   --用于设置参数
   push    --据表达式的值,放入ValueStack的栈顶。
                  当我们的对象所在对象图“很深”时,可以将该对象“推入”ValueStack栈顶。
                  直接获取桡顶元素,因此性能更好


UI标签
    主题与模板
      当我们在页面上使用s:textfield标签时,它生成两列布局中,并提供了label标签。
     ---因为Struts 2为所有标签都提供了一个模板。
   每一个标签所表现出来的效果    ----由它对应的模板来决定。
     如果为所有的标签都提供了模板,这系列的模板就组成了主题。
   Struts 2默认提供了3个主题:
    simple:没有额外的附加行为的主题。
  xhmtl:这个是默认主题。
1.两列布局
2.生成label
                                        3.自动输出类型转化,输入校验的错误提示。
                                        4.客户端校验支持


    css_xhtml:就是在xhtml增加了一些css样式。
   如果有需要,我们也可以针对自己的项目开发自定义主题。


   如何设置主题?
  
   1.也可直接通过struts.ui.theme来设置默认的主题
   2.通过page/request/sesssion/application范围
   3.为标签设置theme属性。子标签默认使用父标签属性所设置的主题。


    这些UI标签可指定cssClass,cssStyle,来指定css样式。
    还可指定大量的onXxx属性,用于绑定JavaScript函数。
 
  表单标签:


    checkbox   只是生成复选框
    head       引入一些辅助的css样式单的JS脚本。
    file     生成一个文件上传域
    form  
    hidden
    label
    password
    reset
    submit
    textarea
    textfield


  checkboxlist/radio/select/optgroup
     combobox   ---生成一个文本框与列表框的组合
     updownselect   --它是一个增强版的select.
     optiontransferselect  ---它是两个updownselect的组合。

     doubleselect   --它也是两个列表框,而且有级联效果。

避免两列部局的方式:

 <s:form action="">  <s:textfield name="username" label="用户名"></s:textfield>  <s:password name="pass" label="密码"></s:password>  <s:checkbox name="married" label="是否已婚"></s:checkbox>  <tr align="center">  <td colspan="2">  <s:submit value="提交" theme="simple"></s:submit>    <s:reset value="重置" theme="simple"></s:reset>  </td>  </tr>  </s:form>






   token   --访刷新
     默认情况下,如果没有进行防刷新控制,每次刷新都会添加一条完全相同的记录。
     (1)需要在表单页面上增加<s:token/>标签。
     (2)在action配置中增加一个token拦截器---这绘 检测用户是否刷新了页面。
         当它检测用户刷新页面时,系统会返加一个invalid.token的逻辑视图。

      (3)还需要为invalid.token的逻辑视图配置一个物理视图资源。

<?xml version="1.0" encoding="GBK" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.devMode" value="true"></constant>   <package name="default" extends="struts-default">      <action name="addAction" class="pers.zkr.action.UserAddAction">    <interceptor-ref name="token"></interceptor-ref>    <!-- 下面这是Struts 2默认的拦截器 -->   <interceptor-ref name="defaultStack"></interceptor-ref>   <!--这个是拦截器返回的的视图  -->   <result name="invalid.token">/WEB-INF/content/refresh.jsp</result><result type="chain">show</result></action><action name="show" class="pers.zkr.action.ShowAction"><result>/WEB-INF/content/showlist.jsp</result></action><action name="*"><!--这里其实也有一个拦截器,只是在没有配置其它的拦截器的时候的,不用添加  --><result>/WEB-INF/content/{1}.jsp</result></action></package></struts>
 非表单标签
     actionerror/actionmessage  ----它们体现的是Struts 2的消息机制。
                 当我们需要把Action中的一段文本,传入下一个页面显示进,
              就可借助Struts 2的消息机制。
    (1)Action中可通过addActionError()或addActionMessage()来添加消息。
   (2)接下来就可以在下一个页面使用<s:actionerrro/>或<s:actopmessage/>输出消息。


    fielderror:  --输出类型转换失败、输入校验失败后的错误提示。

0 0
原创粉丝点击