将多个复选框的值传递给服务器的最佳方法

时间:2011-08-17 03:26:06

标签: java web-services netbeans checkbox dynamic-arrays

这种情况的最佳解决方案是什么:我在Netbeans中实现了基于SOAP的Web服务,客户端应该点击许多复选框,然后将这些复选框发送到服务器并存储。假设我的webservice有这些复选框,可以选择全部或部分:

种族: 1.Caucasian 2.South-Est Asian 3.南亚 4.African 5.其他

在同一个网络服务的另一部分,我实现了与

相关的复选框

性别: 1.Maschio 2.Femmina

如下所示,可以选择其中一个或两个,但对于种族部分而言,解决方案看起来非常复杂,我还有其他部分甚至更多的复选框!

客户端代码:

     private void salvaActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
           disease=malattia.getText();
           etastr=eta.getText();
           age=java.lang.Integer.parseInt(etastr);
           description=descrizione.getText();

         //Here i'm initiating the array using sexint as the dimension
         sexarra=new String[sexint];
        if(sexint==1)
        sexarra[0]=sexone;
        else if(sexint==0)
            JOptionPane.showMessageDialog(null, "Bisogna specificare     almeno un valore del campo sesso", "Errore", JOptionPane.ERROR_MESSAGE);
        else{
            sexarra[0]=sexone;
            sexarra[1]=sextwo;}


         // I define the parameters and afterwards send them to server
          Vector parametri = new Vector();
                  parametri.addElement(new Parameter("malattia", String.class, disease, null));
                 parametri.addElement(new Parameter("age", int.class, age, null));
                 parametri.addElement(new Parameter("descrizione", String.class, description, null));
                    parametri.addElement(new Parameter("sexarra",String[].class, sexarra, null));



       //Code related to calculating sexint which is used above as the dimension to array


     private void femminaActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:

        if(femmina.isSelected()){
            if(sexint==0){
              sexint++;
              sexone=femmina.getText();

            }

            else if(sexint==1){
            sexint++;

            sextwo=femmina.getText();
            }
            else
            sexint--;
        }
        }                                       

        private void maschioActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
              if(maschio.isSelected()){
            if(sexint==0){
              sexint++;
              sexone=maschio.getText();

            }

            else if(sexint==1){
            sexint++;

            sextwo=maschio.getText();
            }
            else
            sexint--;
        }
        }                

与服务器端相关的代码:

       public String aggiungi_malattia(String malattia, int eta, String descrizione, String[] sexarra) {
                String ris = "no";
                String q = null, w = null;
                String errore = connetti();

               if(sexarra.length == 2){
         q = "INSERT INTO malattia (nome, eta, descrizione, sesso) "
                    + "VALUES ('" + malattia + "','" + eta + "','" + descrizione + "','" + sexarra[0] + "')";
         w="INSERT INTO malattia (nome, eta, descrizione, sesso) "
                    + "VALUES ('" + malattia + "','" + eta + "','" + descrizione + "','" + sexarra[1] + "')";
               }
         {
          q = "INSERT INTO malattia (nome, eta, descrizione, sesso) "
                    + "VALUES ('" + malattia + "','" + eta + "','" + descrizione + "','" + sexarra[0] + "')";

谢谢大家的时间和精力!

0 个答案:

没有答案