要懂Struts必须要懂的程序(2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步2: JSP页面中使用标签库 <!-- 使用以s为前缀的标签 --> < s:tag1 …> ….. </ s:tag1 …>
3.3.3 控制标签
标签种类 if elseif else append generator
标签功能 控制选择输出 和if标签结合,控制选择输出 和if标签结合,控制选择输出 将多个集合组合成一个新的集合 字符串解析器,将一个字符串解析成一个集合
老年人 </s:if> <s:elseif test="${age > 35}">
中年人 </s:elseif> <s:elseif test="${age > 15}" id="wawa">
青年人 </s:elseif> <s:else>
少年 </s:else>
3.3.3 控制标签----- iterator(迭代标签)
4.
if("wde".equals(user.getUsername())
5.
&& "". equals(user.getPassword() ))
6.
return SUCCESS;
7.
else return ERROR; }
8.
public User getModel(){ return user; }
3.2.6 配置Result-配置动态结果
实例2 Action源代码如下:
public class loginAction extends ActionSupport{ private String nextAction; public String execute() throws Exception{ if(…) nextAction = “manager”; else nextAction = “student”; } }
IteratorStauts的这些方法分别对应了 count,index,even,odd,first,last属性
3.3.3 控制标签----- iterator标签示例
3.3.3 控制标签----- iterator(迭代标签)举例
<s:iterator value ="{'第一个元素','第二个元素'}" > <p>day is: <s:property/></p> </s:iterator>
3.3.3 控制标签----- sort标签
Sort标签根据comparator属性指定的比较器对集合进行排序 ,并将排序后的迭代器压入值栈的栈顶。在sort标签的内部 ,你可以使用iterator标签取出栈顶的迭代器对排序后的元素 进行迭代。当sort标签结束时,栈顶的迭代器将被删除。
3.3.3 sort标签示例
<h2>显示Map属性</h2> <table>
<s:iterator value="myMap" status="st"> <tr> <td><s:property value="#st.getIndex()" /></td> <td><s:property /></td> </tr>
</s:iterator> </table>
说明 用来转向页面,通常处理JSP 处理Action链
重定向到一个URL 重定向到一个Action 显示原始文件内容,例如文件源代码 整合JFreeChart的结果类型 处理FreeMarker模板
控制特殊HTTP行为的结果类型 用于JasperReports整合的结果类型 JSF整合的结果类型 与Tiles整合的结果类型 处理Velocity模板 处理XML/XLST模板
</s:iterator> </table>
<h2>显示Map</h2> <table> <s:iterator value="#{'key1':'第一个元素','key2':'第二个元素'}" status="st"> <tr> <td><s:property value="#st.getIndex()" /></td> <td><s:property /></td> </tr> </s:iterator> </table>
<div> <s:property value="%{# testname}" />
</div> </s:if> <s:elseif test="%{#testname=='Jav'}">
<div> <s:property value="%{# testname}" />
</div> </s:elseif> <s:else>
3.3.3 控制标签— if/elseif
<%@ taglib prefix="s" uri="/struts-tags"%> <!-- 定义一个testname属性 -->
<s:set name="testname" value="%{'Java'}" /> <!-- 使用if标签判断--> <s:if test="%{#testname=='Java'}">
3.2.3 模型驱动模式
实例:
1. public class LoginModelDrivenAction implements Action,ModelDriven<User>{
2.
private User user = new User();
3.
public String execute() throws Exception{
Iterator(迭代) 描述:用于遍历集合(java.util.Collection)List,Map,数组或
枚举值(java.util.iterator)。该标签的属性如下表:
3.3.3 IteratorStauts实例包含方法
int getCount():返回当前迭代过元素的总数。 int getIndex():返回当前迭代元素的索引。 boolean isEven():判断当前迭元素是否为偶数。 boolean isOdd():判断当前迭元素是否为奇数。 boolean isFirst():判断当前迭元素是否为第一个元素。 boolean isLast():判断当前迭元素是否为最后一个元素
<table> <s:iterator value="{'第一个元素','第二个元素'}" status="st"> <tr> <td><s:property value="#st.getIndex()" /></td> <td><s:property /></td> </tr> </s:iterator>
9. }
3.2.6 Result基础知识
Struts中定义的Result类型
结果类型 dispatcher chain redirect redirect-action plaintext chart freemaker
httpheader jasper jsf tiles velocity xslt
相应的配置文件如下:
<action name="login" class="…loginAction"> <result name=“success" type="redirect-action"> ${nextAction} </result>
</action>
3.3.2 使用Struts 2的标签库
</table>
<h2>显示List属性</h2> <table>
<s:iterator value="myList" status="st"> <tr> <td><s:property value="#st.getIndex()" /></td> <td><s:property /></td> </tr>
在struts2-core-2.0.11.jar压缩文件的META-INF目录下找到 struts-tags.tld文件,这个文件里定义了Struts2的标签。
步1:JSP中引入标签库 <%@taglib prefix=“s” uri=“/struts-tags” %> • prefix:表示使用struts标签库的前缀 • uri:表示struts标签的URI地址
3.2.6 配置Result-配置动态结果
“动态结果”的含义 ➢ 根据Action的执行情况决定调用的结果内容 ➢ 使用表达式来配置结果,根据表达式的值来确定执行的 结果 实例1
<result name="success" type="redirect"> ${username}.jsp
</result>
iterator
merge
sort subset
迭代器,将集合(包括:数组、List、Set、Map)迭 代输出
将多个集合组合成一个新的集合,只是和append的拼 装方式有所不同
对集合进行排序 截取集合的部分元素,形成新的子集合
3.3.3 控制标签 — if/elseif
if/elseif标签属性test:为必填属性,是一个Boolean类型值 ,决定是否显示if标签内容。该标签标准格式如下: <s:if test=“表达式”> …….. </s:if> <s:elseif test=“表达式”> …….. </s:elseif> <s:else> ……….. </s:else>
</result> </action>
glxy.jsp
3.2.4 struts.xml文件配置 Action
配置Action,让Struts能够处理用户请求 <action name="用户请求名" class="Action实现类" method="
调用Action类的方法" > <result name=“Action定义的结果名“ type=”结果类型“ >
物理视图地址 </result> </action>
3.2.3 模型驱动模式
方式2:模型驱动模式 ➢ 功 能: Action和页面之间通过JavaBean模型对象传递数 据 ➢ Action:只负责处理用户请求 ➢ JavaBean模型对象:负责封装请求参数和处理的结果
Struts支持:ModelDriven接口 public T getModel() 方法返回一个用于接收用户输入数据的模型对象,将 Action和与之对应的模型实例关联了起来
Students.jsp
struts.xml
<form action=“std.action” >
execute(){ ……; return “hfut”;
}
StudentsAction.java
<action name=“ std ” class=“/StudentsAction” >
<result value=“hfut”> glxy.jsp
3.2.6 配置Result
Result配置 <action name="用户请求名" class="Action实现类" method="调用Action类的方法" > <result name=“Action定义的结果名“ type=”结果类型“ > 物理视图地址 </result> </action>
<div> testname不是“Java”
</div> </s:else>
3.3.3 控制标签----- if/elseif/else标签举例
<%@ taglib prefix="s" uri="/struts-tags"%> <s:set name="age" value="61"/> <s:if test="${age > 60}">
private List myList; private Map myMap; public String execute() throws Exception { myList = new ArrayList(); myList.add("第一个元素"); myList.add("第二个元素"); myList.add("第三个元素"); myMap = new HashMap(); myMap.put("key1", "第一个元素"); myMap.put("key2", "第二个元素"); myMap.put("key3", "第三个元素"); return Sຫໍສະໝຸດ BaiduCCESS; } 省略生成setter/getter方法
相关文档
最新文档