Struts的标签库

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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

q1054261752

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值