Jsp 单选按钮组列表2
我试图显示特定实体的当前状态(活动/非活动)。实体的数量是从数据库中获取的,因此我使用的是迭代器。对于每个实体,有2个单选按钮指示活动/非活动。 我设法显示了数据库中的数据(不确定这是否是正确的方法) 现在我的问题是这个。 1) 我需要根据从数据库获取的值预先选择实体的状态(是否处于活动状态) 2) 如果用户进行任何更改,我需要能够在action类中捕获数据,以便将其保存在数据库中。 我正在使用struts-2.3.20。 谢谢你的帮助 动作类Jsp 单选按钮组列表2,jsp,arraylist,struts2,radio-button,radiobuttonlist,Jsp,Arraylist,Struts2,Radio Button,Radiobuttonlist,我试图显示特定实体的当前状态(活动/非活动)。实体的数量是从数据库中获取的,因此我使用的是迭代器。对于每个实体,有2个单选按钮指示活动/非活动。 我设法显示了数据库中的数据(不确定这是否是正确的方法) 现在我的问题是这个。 1) 我需要根据从数据库获取的值预先选择实体的状态(是否处于活动状态) 2) 如果用户进行任何更改,我需要能够在action类中捕获数据,以便将其保存在数据库中。 我正在使用struts-2.3.20。 谢谢你的帮助 动作类 private List<Business_
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 List_business=new ArrayList();
公共列表getList_business(){
退货清单及相关业务;
}
公共作废设置列表业务(列表业务){
this.list\u business=list\u business;
}
公共字符串execute(){
试一试{
DBconnect obj=新的DBconnect();
String query=“选择投标,业务名称,是否从业务活动”;
PreparedStatement ps=obj.conn.prepareStatement(查询);
结果集rs=ps.executeQuery();
while(rs.next()){
list_business.add(新业务_bean(rs.getString(1)、rs.getString(2)、rs.getString(3));
}
}捕获(例外情况除外){
System.out.println(例如toString());
}
返回“成功”;
}
豆子
私有字符串业务名称;
私人字符串业务标识;
私人上市公司状况;
公共业务bean(字符串业务id、字符串业务名称、字符串业务状态){
this.Business\u name=Business\u name;
this.Business\u id=Business\u id;
this.Business_status=new ArrayList();
此.Business_status.add(“yes”);//临时代码
此.Business_status.add(“no”);//临时代码
}
公共字符串getBusiness_name(){
返回企业名称;
}
公共业务名称(字符串业务名称){
业务名称=业务名称;
}
公共字符串getBusiness_id(){
返回业务标识;
}
公共业务id(字符串业务id){
Business\u id=Business\u id;
}
公共列表getBusiness_status(){
//System.out.println(“调用getter”);
返回业务状态;
}
公共业务状态(列出业务状态){
业务状态=业务状态;
}
这是我的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
这里有点混乱:
Business_status应该是一个布尔值(或任何值,例如包含“yes”或“no”的字符串)它表示该实体的状态。 您应该将可能状态的列表移到实体之外,例如在枚举中,或者直接在JSP中表示可分配给每个实体的可能状态 避免在变量名中混合和使用。最佳做法是仅使用camelCase(例如
businessStatus
)
调整后,如果您的任务是使用活动/非活动状态填充页面,并检测用户所做的任何更改(读取:活动记录设置为非活动,非活动记录设置为活动),我已经编写了一个工作示例,通过复选框实现这一点,请随意使用它或调整它以使用单选按钮:
如果我选中一个未选中的复选框,然后再次取消选中它会怎么样。它还能工作吗?没有。有两种情况:1)如果你需要检测原始状态和提交页面之间的变化,那么检查和取消选中同一元素1000次,但以原始状态发送它不会触发任何事情(而且不应该);2) 如果您需要检测页面上的任何用户活动(例如,选中并取消选中未选中的框),则必须使用javascript,因为服务器端只能读取发送到页面的内容与页面发送给您的内容之间的增量
<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>