Struts2标签

1 struts2的UI标签

导入struts2的标签库

<%@ taglib prefix="s" uri="/struts-tags"%>
<div>
    用户名:
    <s:textfield name="uname"></s:textfield>
</div>
<div>
    密 码:
    <s:password name="upwd"></s:password>
</div>
<!-- #用来定义ognl表达式 -->
<div>
    性 别:
    <s:radio list="#{1:'男',2:'女'}" name="sex"></s:radio>
</div>
<div>
    爱 好:
    <s:checkboxlist list="#{1:'吃',2:'喝',3:'拉',4:'撒'}" name="hobby"></s:checkboxlist>
</div>
<!-- listKey="属性" listValue="属性" -->
<div>
    城 市:
    <s:select list="#request.clist" listKey="cid" listValue="cname"></s:select>
</div>
<div>
    简 介:
    <s:textarea name="intro" cols="30" rows="5"></s:textarea>
</div>
<div>
    头 像:
    <s:file name="img"></s:file>
</div>
<div>
    <s:submit></s:submit>
    <s:reset></s:reset>
</div>

2 ognl表达式

El:表达式,完成web对象中数据的访问

Ognl:对象图形导航语言(属性链 a.b.c),struts2框架 的表达式语言,必须集

struts2的标签进行使用

2.1 Action的上下文

ActionContext为Action的上下文对象,本质就一个Map集合

每次请求会创建一个Action的对象,而与Action关联的有一个ActionContext对象

ActionContext和当前线程是进行了绑定的(只要服务器创建一个线程对象,就会绑定一个ActionContext对象)

Struts2中的Action是线程安全的。Action是多例的。

Ognl表达式是为访问Action的上下文对象(Map)

ValueStack:是被默认的访问的对象,如果需要访问Map中的数据必须明确指定

ActionContext:ognl表达式访问该对象

      ——root(valueStack,被默认访问的饿对象)

      ———request

      ———session

      ———application

      ———attr

      ———paramters 

总结:

Action是多例,而且线程安全

Ation的上下文对象的结构:

      ----valutStack

      ———request

      ———session

      ———application

      ———attr

      ———paramters

Ognl就是struts2用来访问ActionContext的,ActiontContext保存了当前Action的对象,与Action相关的错误信息,客户端请求的参数

2.2 ognl表达式的使用

 访问默认的valuestack

 <s:property value=”ognl”/>

 访问Map(Stack Context)

 <s:property value=”#ognl”/>

 <s:property value=”#session.key”/>

 <s:property value=”#request.key”/>

 <s:property value=”#application.key”/>

 <s:property value=”#attr.key”/>

 <s:property value=”#paramters.uname”/>

 访问静态属性

 <s:property value=”@java.lang.Integer@MAX_VALUE”/>

 调用静态方法

<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>

 <s: property value=”@java.lang.Integer@parseInt(‘123’)”/>

 调用Action的方法

 <s: property value=”sayHi(‘xxxxx’)”/>

 使用ognl表达式能访问的数据使用el表达式通用可以访问

Jstl+el

Strutstag+ognl+el(只能用在数据的显示,不能作为strutstag的属性值出现):

 Ognl中的其他符号  %  , $

2.3 struts2的逻辑标签

<s:iterator value="#ulist" var="uu" status="st">
    <s:if test="#st.index%2==0">
        <div style="background-color: red">
            <s:property value="#st.index" />
            ==
            <br />
            <s:property value="#uu.uname" />
            --
            <br /><!-- 默认访问栈顶 -->
            ${uu.uname }----el
            <br />
        </div>
    </s:if>
    <s:else>
        <div style="background-color: yellow">
            <s:property value="#st.index" />
            ==
            <br />
            <s:property value="#uu.uname" />
            --
            <br /><!-- 默认访问栈顶 -->
            ${uu.uname }----el
            <br />
        </div>
    </s:else>
</s:iterator>

3 struts2数据回显 

在数据的录入界面,当提交的时候,有错误数据存在,返回该页面的时候数据不能全部消失。

数据更新的更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值