在表单中使用<s:radio> 和 <s:select>
标签 绑定action属性,查询数据
开始界面如下, 通过提交的数据去对应的action查询
jsp代码, <s:radio> 和 <s:select>
标签中的 list 表示数据的来源, value表示给定此标签一个默认值, name表示与action中对应的属性
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
</head>
<%
TreeMap<String ,String> searchType = new TreeMap<String, String>();
searchType.put("男", "男");
searchType.put("女", "女");
request.setAttribute("searchType",searchType);
TreeMap<String ,String> age = new TreeMap<String, String>();
age.put("1","1岁");
age.put("2","2岁");
age.put("3","3岁");
age.put("4","4岁");
age.put("5","5岁");
request.setAttribute("age",age);
%>
<body>
<s:form action="submit.action?">
<s:textfield name="info.name" label="姓名"></s:textfield>
<s:radio
list="#request.searchType" label="性别" value="%{'男'}" name="info.sex">
</s:radio>
<s:select
list="#request.age" label="年龄" value="%{'1'}" name="info.age">
</s:select>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
对应的action类如下, 将结果集放入list,存入request中
public class Action extends ActionSupport{
static TreeMap<String,Info> data = new TreeMap<String, Info>();
Map<Object, Object> request = new TreeMap<Object, Object>();
Info info ;
@Override
public String execute() throws Exception {
System.out.println(info);
ActionContext context = ActionContext.getContext();
request = (Map<Object, Object>) context.get("request");
List<Info> infos = new ArrayList<Info>();
for (Info v : data.values()){
if (v.getName().equals(info.getName()) && v.getAge().equals(info.getAge()) && v.getSex().equals(info.getSex())){
System.out.println(v);
infos.add(v);
}
}
System.out.println(infos.size());
request.put("infos", infos);
return SUCCESS;
}
static{
data.put("1", new Info(1, "张三", "男", 1));
data.put("2", new Info(2, "张三", "男", 1));
data.put("3", new Info(3, "赵四", "男", 2));
data.put("4", new Info(4, "王五", "女", 3));
data.put("5", new Info(5, "六六", "女", 4));
}
public Info getInfo() {
return info;
}
public void setInfo(Info info) {
this.info = info;
}
public Map<Object, Object> getRequest() {
return request;
}
public void setRequest(Map<Object, Object> request) {
this.request = request;
}
}
在SUCCESS jsp页面代码如下, 取出request中的list, 用iterator 标签遍历
<body>
<s:set name="infos" value="#request.infos"></s:set>
<s:iterator status="infosStatus" value="infos">
<s:property value="id"/>
<s:property value="name"/>
<s:property value="sex"/>
<s:property value="age"/><br>
</s:iterator>
</body>
select的属性