struts2 <s:radio> 和 <s:select>标签

在表单中使用<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的属性
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值