框架学习之Struts2 第九节 Struts2重要的标签解说
1. 迭代标签:iterator标签
2. if-else 标签
3.url标签
4.复选框 checkboxlist
形成复选框的list有三种方法:
①list
②map
③JavaBean的集合
5.单选框 radio
使用方法和checkboxlist基本上一样
6. 下拉选择框 select
使用方法和checkboxlist也基本上相似
测试:
index.jsp:
<%@ page language="java" import="java.util.*,com.javabean.Person" pageEncoding="GBK"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<font>演示iterator标签:第一个是红色,最后一个是蓝色,奇数个是绿色,偶数个是黑色</font><br>
<s:set name="namelist" value="{'yinger','java','struts','spring','eclipse'}"></s:set>
<s:iterator value="#namelist" status="st">
<font color=<s:if test="#st.isFirst()">red</s:if><s:elseif test="#st.isLast()">blue</s:elseif>
<s:elseif test="#st.isOdd()">green</s:elseif><s:elseif test="#st.isEven()">black</s:elseif>>
<s:property/><br>
</font>
</s:iterator>
<font>演示url标签</font><br>
<s:set name="urlname" value="yinger" scope="request"></s:set>
<s:url action="helloworld" namespace="/test">
<s:param name="name" value="#request.urlname"></s:param>
</s:url><br>
<s:set name="myurl" value="'http://www.helloworld.com'"></s:set>
使用#myurl,这时会原样输出:<s:url value="#myurl"></s:url><br>
使用%{#myurl}把myurl当做字符串处理:<s:url value="%{#myurl}" /><br>
<font>演示checkboxlist标签</font><br>
采用list生成checkboxlist:value属性表示选中了<br>
<s:checkboxlist name="ckblist_list" list="#namelist" value="{'yinger'}"></s:checkboxlist><br>
采用map生成checkboxlist:listkey的值是input的value值,listvalue的值是label的文本<br>
<s:checkboxlist name="ckblist_map" list="#{1:'food',2:'toy',3:'wine'}" listKey="key" listValue="value" value="{1,2}"></s:checkboxlist>
<br>
采用javabean生成checkboxlist:注意javabean的属性一定要提供相应的get方法<br>
<%
Person p1=new Person(1,"yinger");
Person p2=new Person(2,"eclipse");
Person p3=new Person(3,"oracle");
Person p4=new Person(4,"tomcat");
List list=new ArrayList();
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
request.setAttribute("personlist",list);
%>
<s:checkboxlist name="ckb_beans" list="#request.personlist" listKey="id" listValue="name" value="1"/>
<br>
<font>演示radio标签</font><br>
采用list生成radio<br>
<s:radio name="radio_list" list="#namelist" value="'yinger'" /><br>
采用map生成radio<br>
<s:radio name="radio_map" list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}" listKey="key" listValue="value" value="1" /><br>
采用javabean生成radio<br>
<s:radio name="radio_beans" list="#request.personlist" listKey="id" listValue="name" value="1"/><br>
<font>演示select标签</font><br>
采用采用javabean生成select:<s:select name="select_beans" list="#request.personlist" listKey="id" listValue="name"/><br>
采用list生成select:<s:select name="select_list" list="#namelist" value="'yinger'" /><br>
采用map生成select<s:select name="select_map" list="#{1:'瑜珈用品',2:'户外用品',3:'球类',4:'自行车'}" listKey="key" listValue="value" value="1" /><br>
</body>
</html>
测试结果:
7.<s:token />标签:防止重复提交
方法步骤是:
①在界面jsp的form表单中添加token标签
②在action的配置中添加一些信息:interceptor-ref 和 名为 invalid.token 的视图
注意在关联token拦截器之前要关联框架自带的默认的拦截器defaultStack