OGNL备忘 2

[code]
/**OGNL表达式 如果要设字符串 那么要写' '打这样的东西
1.输出就是一个字符串 username
2.如果admin取不到值,那么把默认值“管理员”赋给他
3。把这个东西按照html来解析,而不是字符串来解析
4。把值栈中这个变量的value赋值给adminName,然后把adminName放入request 和 ActionContext两个地方
5.-6 注意一点,这样设置的值,是放到了context中,但是用<s:debug></s:debug>看不到,原因是<s:debug>中的内容先于他们形成。。。

7.var的作用就是把值栈中的东西取出来,然后放入相应的scope中。。注意:set标签一般在对长点的变量 重命名 有用
8-9 不说了

10。中的bean是被放到了值栈中,11中的bean是被放到了Context中 ,因为var把他给拿了出来,所以如果不设置var ,那么在</s:bean>结束前可以使用,一旦执行完</s:bean>标签,那么值就会从值栈中删除

11. %{}的意思是 请把里面的字符串当成一个OGNL表达式

12。这里注意一下:定义Map的时候要加#号
*/
<ol>

<li>1.property 取值为字符串: <s:property value="'username'"/> </li>
<li>2.property 设定默认值: <s:property value="admin" default="管理员"/> </li>
<li>3. property 设定HTML: <s:property value="'<hr/>'" escape="false"/> </li>
<hr />
<li>4. set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /></li>

<li>5.set 从request取值: <s:property value="#request.adminName" /></li>
<li>6.set 从ActionContext取值: <s:property value="#adminName" /></li>

<%--<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li>
<li>set 从相应范围取值: <%=pageContext.getAttribute("adminPassword") %></li>
--%>
<li>7. set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/></li>
<li>8.set 使用#取值: <s:property value="#adminPassword"/> </li>
<li>9. set 从相应范围取值: <s:property value="#session.adminPassword"/> </li>

<hr />

<%--<li>push:<s:set name="myDog" value="new com.bjsxt.struts2.ognl.Dog('oudy')"></s:set></li>
<li>
push:<s:push value="#myDog">
<s:property value="name"/>
</s:push>
</li>
<li> push: <s:property value="name"/></li>
--%>

<hr />
<li>10.bean 定义bean,并使用param来设定新的属性值:
<s:bean name="com.bjsxt.struts2.tags.Dog" >
<s:param name="name" value="'pp'"></s:param>
<s:property value="name"/>

</s:bean>


</li>

<li>11.bean 查看debug情况:
<s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog">
<s:param name="name" value="'oudy'"></s:param>
</s:bean>
拿出值:
<s:property value="#myDog.name"/>

</li>
<hr />

<li>include _include1.html 包含静态英文文件
<s:include value="/_include1.html"></s:include>
</li>

<li>include _include2.html 包含静态中文文件
<s:include value="/_include2.html"></s:include>
</li>

<li>12. include _include1.html 包含静态英文文件,说明%用法
<s:set var="incPage" value="%{'/_include1.html'}" />
<s:include value="%{#incPage}"></s:include>
</li>


<hr />

<li>if elseif else:
age = <s:property value="#parameters.age[0]" /> <br />
<s:set var="age" value="#parameters.age[0]" />
<s:if test="#age < 0">wrong age!</s:if>
<s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>
<s:else>yeah!</s:else><br />

<s:if test="#parameters.aaa == null">null</s:if>
</li>

<hr />

<li>遍历集合:<br />
<s:iterator value="{1, 2, 3}" >
<s:property/> |
</s:iterator>
</li>
<li>自定义变量:<br />
<s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
<s:property value="#x.toUpperCase()"/> |
</s:iterator>
</li>
<li>使用status:<br />
<s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
<s:property/> |
遍历过的元素总数:<s:property value="#status.count"/> |
遍历过的元素索引:<s:property value="#status.index"/> |
当前是偶数?:<s:property value="#status.even"/> |
当前是奇数?:<s:property value="#status.odd"/> |
是第一个元素吗?:<s:property value="#status.first"/> |
是最后一个元素吗?:<s:property value="#status.last"/>
<br />
</s:iterator>

</li>

<li>12.
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
<s:property value="key"/> | <s:property value="value"/> <br />
</s:iterator>
</li>

<li>
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
<s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
</s:iterator>
</li>

<li>

<s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>

</li>
</ol>
[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值