11级_Java_曹建波 03.06 Struts2_ognl
在Action中存值
publicStringognltest1(){
ActionContextac=ActionContext.getContext();
ac.put("username","request-chenhj");
ac.getSession().put("username","session-chenhj");
ac.getApplication().put("username","application-chenhj");
ac.put("user",newUsers(1,"张三","123","[email protected]"));
ac.getSession().put("user",newUsers(2,"lisi","1ad2adad3","[email protected]"));
ac.getApplication().put("user",newUsers(3,"adada","1ad23","[email protected]"));
returnSUCCESS;
}
//在jsp页面中取值
<divalign="center">
<divid="ognl1">
<h3>显示request,session,application采用ognl表达式</h3><br>
request:<s:propertyvalue="#request.username"/><br>
session:<s:propertyvalue="#session.['username']"/><br>
application:<s:propertyvalue="#application.username"/><br>
</div>
</div>
讲解:
privateUseruser;
必须提供get方法才能在页面中通过上述标签获取
如果在域中直接存放对象也可以采用上面的标签获取
分析:
第一个案例:struts_scope案例
第二个案例:struts_ognl
Context--_root和valueStackroot是一样
Root;值栈
如果访问action之后比如:UserAction_ognltest1.action
Root第一个对象:当前Action
第二个对象:DefaultTextProvider
对象栈:
valueSack.getRoot().add(newUsers(1,”chenhj”,”123”,”[email protected]”));
valueSack.getRoot().add(newUsers(2,”zhangsan”,”123”,”[email protected]”));
valueSack.getRoot().add(0,newUsers(1,”chenhj”,”123”,”[email protected]”));
valueSack.getRoot().add(1,newUsers(2,”zhangsan”,”123”,”[email protected]”));
语法#{key:value,key1:value1,key2:value2}
案例:
<s:iteratorvar="entity"value="#{1:'chenhj',2:'caojianbo',3:'liqiang'}">
<s:propertyvalue="key"/>
<s:propertyvalue="value"/>
<%--<s:propertyvalue="#entity.key"/>
<s:propertyvalue="#entity.value"/>--%>
</s:iterator>
构造List
语法:{value1,value2,value3}
<s:iteratorvar="edu"value="{'java','php','3g'}">
<s:property/>
<s:propertyvalue="edu"/>
</s:iterator>
单选按钮:
<s:radiolist="#{'w':'女','m':'男'}"listKey="key"listValue="value"value="'w'"></s:radio>
<br>
<s:radioname="sex"list="#{'1':'男','0':'女'}"value="'0'"></s:radio>
<br>
<s:radiolist="{'女','男'}"value="'女'"></s:radio>
多选按钮:
<s:checkboxlabel="看书"name="fav"></s:checkbox>
<s:checkboxlabel="打篮球"name="fav"></s:checkbox>
<s:checkboxlabel="写字"name="fav"></s:checkbox>
<s:checkboxlabel="读书"name="fav"></s:checkbox>
<br>
<s:checkboxlistname="fav"list="{'看书','打篮球','写字','读书'}"value="{'读书','打篮球'}"/>
<br>
<s:checkboxlistname="fav"list="#{1:'看书',2:'打篮球',3:'写字',4:'读书'}"listKey="key"listValue="value"value="{1,2,3}"/>
下拉列表:
<s:selectlabel="Months"name="moths"headerKey="-1"headerValue="选择月份"list="#{'01':'Jan','02':'Feb','03':'Mat'}"value="selectedMonth"required="false"></s:select>
<br>
<s:selectlist="{'java','3g','php','.net'}"label="选择专业"name="edu"value="'.net'"></s:select>
<br>
<s:selectlist="#{1:'瑜伽',2:'户外'}"name="map"value="1"></s:select>
<hr>
if标签:
<s:iftest="'Java'notin{'Java','Net'}">
Javain
</s:if>
<s:else>
Javanotin
</s:else>
Set标签
<s:setvar="msg"value="'aaa<br/>aaaaaa'"scope="request"></s:set>
<s:propertyvalue="#requestmsg"escape="false"/>
<hr>
push:
<s:pushvalue="'abc'">
<s:property/>
</s:push>
<hr>
Bean标签:
<s:beanname="www.****.struts2_tag.domain.Users"var="myUsers">
<s:paramname="id"value="1"/>
<s:paramname="name"value="'hahaha'"/>
<s:paramname="pass"value="'123'"/>
<s:paramname="email"value="'[email protected]'"/>
<s:propertyvalue="name"/>
</s:bean>
输出1:
<s:propertyvalue="#myUsers.name"/>
<s:setvar="user"value="#myUsers"></s:set>
输出2:
<s:propertyvalue="#user.name"/>
<hr>
iterator标签:
<tableborder="1">
<s:iteratorvar="name"value="{'java','net','php','3g'}"status="st">
<trclass="<s:propertyvalue='#st.even?"even":"odd"'/>">
<td>
<s:propertyvalue="name"/>
</td>
</tr>
</s:iterator>
</table>