数据库设计: 
主键1、主键2、主键3、组件类型(如dropdown)、初始值(如0)、步长(如10)、最大值(如100)、组件名1、组件名2 
所有的组件都是 <select>,用的是struts标签,所以就嵌套了3个list,现在能让它在画面上生成组件,里面的options也正确,但select的value取到了,却显示不了。现在的最主要的难点就是不能写js来做判断了,有什么方法能解决吗? 
附生成嵌套list的代码:
Java code
public ArrayList getparam() throws AppLevelException {
        DBConnect dbcon = new DBConnect();
        PreparedStatement psmt = null;
        String strSql1 = "";
        ResultSet rs1 = null;
        
        strSql1 = "select * from sysinfo_set_tbl group by typeinfo_no";
        try {
            ArrayList list1 = new ArrayList();
            dbcon.getDBConnectInfo();
            psmt = dbcon.getPreparedState(strSql1);
            rs1 = psmt.executeQuery();
            while(rs1.next()){
                TypeName typename = new TypeName();
                typename.setType_name(rs1.getString("type_name"));
                
                String strSql2 = "";
                ResultSet rs2 = null;
                strSql2 = "select * from sysinfo_set_tbl where typeinfo_no="+rs1.getShort("typeinfo_no")+" group by serial_no";
                ArrayList list2 = new ArrayList();
                psmt = dbcon.getPreparedState(strSql2);
                rs2 = psmt.executeQuery();
                while(rs2.next()){
                    TypeTxt typetxt = new TypeTxt();
                    typetxt.setType_txt(rs2.getString("type_txt"));
                    
                    String strSql3 = "";
                    ResultSet rs3 = null;
                    strSql3 = "select * from sysinfo_set_tbl where typeinfo_no="+rs1.getShort("typeinfo_no")+" and serial_no="+rs2.getString("serial_no");
                    ArrayList list3 = new ArrayList();
                    psmt = dbcon.getPreparedState(strSql3);
                    rs3 = psmt.executeQuery();
                    while(rs3.next()){
                        SystemParam systemparam = new SystemParam();
                        systemparam.setSerial_detail_no(rs3.getString("serial_detail_no"));
                        systemparam.setSerial_no(rs3.getString("serial_no"));
                        systemparam.setType(rs3.getString("type"));
                        systemparam.setType_name(rs3.getString("type_name"));
                        systemparam.setType_txt(rs3.getString("type_txt"));
                        if(rs3.getString("type_val1").length()<=4){
                            systemparam.setType_val1(String.valueOf(Integer.parseInt(rs3.getString("type_val1"))));
                        }else{
                            systemparam.setType_val1(rs3.getString("type_val1"));
                        }                        
                        systemparam.setType_val2(rs3.getString("type_val2"));
                        systemparam.setType_val3(rs3.getString("type_val3"));
                        systemparam.setType_val4(rs3.getString("type_val4"));
                        systemparam.setType_val5(rs3.getString("type_val5"));
                        systemparam.setTypeinfo_no(rs3.getString("typeinfo_no"));
                        ArrayList list4 = new ArrayList();
                        if(rs3.getString("type_val3")!=null){
                            for(int i=Integer.parseInt(rs3.getString("type_val4"));i<=Integer.parseInt(rs3.getString("type_val5"));i+=Integer.parseInt(rs3.getString("type_val3"))){
                                Values values = new Values();
                                values.setDates(i);
                                list4.add(values);
                            }
                        }
                        systemparam.setValues(list4);
                        list3.add(systemparam);
                    }
                    
                    typetxt.setSystemparam(list3);
                    list2.add(typetxt);
                }
                
                typename.setTypetxt(list2);
                list1.add(typename);
            }
            return list1;
        } catch (SQLException e) {
            throw new SysLevelException("DB異常", e);
        } catch (Exception e) {
            throw new AppLevelException(e);
        } finally {
        }
    }

解决方案 »

  1.   

    这是页面取list,并生成select和options组件,但有的select之间又有js判断,如果这样动态生成的,就没法判断了吧?<logic:iterate id="typetxt" name="systemparam" property="typetxt" indexId="index2">
         <span class="text_bb1"><bean:write name="typetxt" property="type_txt"/></span>
         <logic:iterate id="systemparam" name="typetxt" property="systemparam" indexId="index3">
         <logic:equal value="dropdown" name="systemparam" property="type_val2">    
         <html:select property="type_val1" name="systemparam" value="<bean:write name='systemparam' property='type_val1'/>">
         <logic:iterate id="values" name="systemparam" property="values" indexId="index4">
         <option value="<bean:write name='values' property='dates'/>"><bean:write name="values" property="dates"/></option>
         </logic:iterate>    
         </html:select>
         </logic:equal>
         <logic:equal value="Cdropdown" name="systemparam" property="type_val2">
         <input type=text  name=re_name id="re_name" style="width:100px;height:20px;font-size:10pt;"><span style="width:18px;border:0px solid red;">
         <html:select property="type_val1" style="margin-left:-100px;width:118px; background-color:#FFEEEE;" name="systemparam" onchange="document.all.re_name.value=this.options[this.selectedIndex].text;">
         <option value="<bean:write name='systemparam' property='type_val1'/>"><bean:write name="systemparam" property="type_val1"/></option>
         </html:select>
         </span>
         </logic:equal>
         <logic:equal value="1" name="systemparam" property="type">
         時
         </logic:equal>
         <logic:equal value="2" name="systemparam" property="type">
         分
         </logic:equal>
         <logic:equal value="3" name="systemparam" property="type">
         M
         </logic:equal>
         <logic:equal value="4" name="systemparam" property="type">
        
         </logic:equal>
         </logic:iterate>
         <br/>
         </logic:iterate>
        </td>
        </tr>
        </logic:iterate>