banxitan

导航

<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

随笔分类

随笔档案

文章档案

统计

留言簿(2)

阅读排行榜

评论排行榜

Struts2 之 CheckBox 小记

今天在项目中有用到 Struts2 的Checkbox,其中最重要的属性为 Value跟fieldValue
 EG:
    <td>
        <s:checkbox id="hotel.hotelRoom.vCR" name="hotel.hotelRoom.vCR" value="%{hotel.hotelRoom.vCR.equals('false')?'false':'true'}" fieldValue="VCR" />
        VCR
       </td>

当在属性中用到fileValue属性,当该Checkbox项被选中时,那么在 Action中取值即为FiledValue所对应的值,当未被选中时,会有一个默认的值false;

value="%{hotel.hotelRoom.vCR.equals('false')?'false':'true'}"  当用户提交选中的项后回到Input页面,仍然能正确显示用户刚才所选中的项:

附:(转载)

#、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。在这里笔者简单介绍它们的相应用途。
1.#符号的用途一般有三种。

   1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。

实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute

("msg") 。

    2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。

    3)用来构造Map,例如示例中的#{'foo1':'bar1','foo2':'bar2'}。

2.%符号

%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示:
构造Map
<s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" />

<p>The value of key "foo1" is <s:property value="#foobar['foo1']" /></p>

<p>不使用%:<s:url value="#foobar['foo1']" /></p>

<p>使用%:<s:url value="%{#foobar['foo1']}" /></p>

 
3.$符号

$符号主要有两个方面的用途。

   在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间

    在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:

<validators>

    <field name="intb">

            <field-validator type="int">

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

            <param name="max">100</param>

            <message>BAction-test校验:数字必须为${min}为${max}之间!</message>

        </field-validator>

    </field>

</validators>

posted on 2009-04-13 15:58 MikyTan 阅读(1414) 评论(0)  编辑  收藏 所属分类: JAVA


只有注册用户登录后才能发表评论。


网站导航: