收音机按钮组列表2

时间:2015-03-10 08:10:40

标签: jsp arraylist struts2 radio-button radiobuttonlist

我正在尝试显示特定实体的当前状态(活动/非活动)。从数据库中获取实体的数量,因此我使用的是迭代器。对于每个实体,有2个单选按钮指示活动/非活动。 我以某种方式设法显示数据库中的数据(不确定这是否是正确的方法)。

现在我的问题是这个。 1)我需要根据从数据库中获取的值预先选择实体的状态(is_active) 2)如果用户进行任何更改,我需要能够捕获动作类中的数据,以便将其保存在数据库中。 我正在使用struts-2.3.20。 感谢您的帮助。

行动类

private List<Business_bean> list_business = new ArrayList<Business_bean>();


public List<Business_bean> getList_business() {
    return list_business;
}

public void setList_business(List<Business_bean> list_business) {
    this.list_business = list_business;
}


public String execute() {
    try {
        DBconnect obj = new DBconnect();
        String query = "select bid,business_name,is_active from business";
        PreparedStatement ps = obj.conn.prepareStatement(query);
        ResultSet rs = ps.executeQuery();
        while(rs.next()){
            list_business.add(new Business_bean(rs.getString(1), rs.getString(2), rs.getString(3)));
        }

    } catch (Exception ex) {
        System.out.println(ex.toString());
    }
    return "success";
}

private String Business_name;
private String Business_id;
private List<String> Business_status;


public Business_bean(String Business_id, String Business_name, String Business_status){
    this.Business_name=Business_name;
    this.Business_id=Business_id;
    this.Business_status=new ArrayList<String>();
    this.Business_status.add("yes");//temp code
    this.Business_status.add("no");//temp code
}

public String getBusiness_name() {
    return Business_name;
}
public void setBusiness_name(String business_name) {
    Business_name = business_name;
}
public String getBusiness_id() {
    return Business_id;
}
public void setBusiness_id(String business_id) {
    Business_id = business_id;
}
public List<String> getBusiness_status() {
    //System.out.println("call getter");
    return Business_status;
}
public void setBusiness_status(List<String> business_status) {
    Business_status = business_status;
}

这是我的jsp页面

<form action="">
    <table border="1">
        <!-- loop will fill in the below values -->

        <tr>
            <td>Business Name 1</td>
            <td><input type="radio" name="b1" value="true"><input
                type="radio" name="b1" value="false"></td>
        </tr>

        <s:iterator value="list_business" var="obj">
            <tr>
                <td><s:property value="#obj.Business_name" /></td>
                <td><s:radio theme="simple" name="%{Business_id}" list="Business_status" /> </td>
            </tr>
        </s:iterator>

        <tr>
            <td colspan="2" align="center"><input type="Submit"
                name="btn_Submit" value="Save Changes" /> <input type="Button"
                name="btn_Cancel" value="Cancel" /></td>
        </tr>
    </table>
</form>

1 个答案:

答案 0 :(得分:1)

这里有一点混乱:

Business_status应该是一个布尔值(或者其他,例如包含“是”或“否”的字符串)。
表示 实体的状态

您应该移动实体外的可能状态列表,例如。在Enum中,或直接在JSP中。 表示可分配给每个实体的可能状态

避免在变量名中混用camelCasesnake_case。最佳做法是仅使用camelCase(例如businessStatus)。

调整完毕后,如果您的任务是填充具有活动/非活动状态的页面,并检测用户所做的任何更改(读取:活动记录设置为非活动状态,非活动记录设置为活动状态),我已经写了一个工作示例来实现这个复选框,随意使用它或使其适应无线电按钮:

  

How to get the specifc unchecked checkboxes in Struts2