将从jsp中选择的值传递给struts中的Action

问题描述

我最近尝试学习java和struts。 我想从下拉列表中传递选定的值,但我在操作中收到的所有值都是空

这是我的代码

我的jsp中的下拉菜单

<s:select list="UrgencyList"  listKey="name" listValue="name" 
                    key="urgency" name="urgency" emptyOption="false" headerKey="12"  required="true"
                    headerValue="--------------------------------------------------------" />  
                <font class="ui-widget-R"><s:property value="errors['urgency'][0]" /></font>

我的 xml,SavSharing 是用于我的按钮的 post 操作

 <action name="SavSharing" class="com.ao.qshare.form.Sharing" method="Save">
       <exception-mapping exception="org.apache.commons.fileupload.FileSizeLimitExceededException" 
          result="error" />
       
            <result name="success">/qs/sharing.jsp</result> 
            <result name="input">/qs/sharing.jsp</result> 
            <interceptor-ref name="basicStack"/>
            <interceptor-ref name="mydefault" /> 
       </action>


public class Sharing extends ActionSupport {

public String Save() throws Exception {

        String result = "";
        Sharingsqlmanger sql = null;
        SiteDeploysqlmanger ssql=null;
        try {

            Log.info(getClass(),"-----Save start-----");
            
            con = DbConnection.getDbConnection();// get account
            con.setAutoCommit(false);
            
            
            sql=new Sharingsqlmanger(con);
            ssql= new SiteDeploysqlmanger(con);
            
            ActionContext actionContext = ActionContext.getContext();
            Map<?,?> data=actionContext.getParameters();
            
            String tp=SharingUtil.getString(data.get("tp"));
            
            
            attachs=SharingUtil.getFile(this.sno,SharingConstants.sharing);
            boolean isSameFile=SharingUtil.isSameFile(SharingUtil.getFileString(attachs),this.getUploadFileName());
            
            
//          boolean isSameFile=SharingUtil.isSameFile(this.attach,this.getUploadFileName());
            
            
            
            //save
            this.setPara();     
            
            String oldStatus=entity.getStatus();    
            
            if (isSameFile){
                this.addActionMessage(SharingConstants.messFileExists);
                mess.add(SharingConstants.messFileExists);
                
                this.setEntityDesc(sql,ssql);   
                this.setEntity(entity);
                
                init(sql);
                isValidate=false;
                result = INPUT;
                
            }else{ 
             
            //upload!=null,do upload            
            if (!GenericValidator.isBlankOrNull(this.getUploadFileName())) {
                    this.setAttach(this.attach+this.getUploadFileName()+";");
                    entity.setAttach(this.attach);
            }       
                
             if (tp.equals("File")){
                    
                 if (this.lengthValidate() && this.isSaveValidate(sql)){
                     
                     if (status.equals(SharingConstants.deployStatusKey)) {
                            SharingEntity shEntity = sql.getSharing(sno,"</p>");
                            entity.setAlertSite(shEntity.getAlertSite());
                            entity.setAlertDept(shEntity.getAlertDept());
                            entity.setDeployDept(shEntity.getDeployDept());
                            entity.setDeploySite(shEntity.getDeploySite());
                            entity.setDSite(shEntity.getDSite());
                            entity.setDDept(shEntity.getDDept());
                            
                            //Start CR-2014-01727 Kevin
                            entity.setAlertcopy(shEntity.getAlertcopy());
                            entity.setDeploycopy(shEntity.getDeploycopy());
                            //End CR-2014-01727 Kevin
                    } 
                            
                     
                    //save
                    sno = sql.save(entity,SharingConstants.saveDocument,SharingConstants.sharing,oldStatus);
                    this.setSno(sno);
                    entity=sql.getSharing(sno,"</p>");
                    
                    this.setEntityDesc(sql,ssql);                       
                    this.setEntity(entity);
                            
                            
                    if (upload != null)
                        SharingUtil.getFile(upload,this.getUploadFileName(),sno,SharingConstants.sharing);
                    
                    init(sql);
                    
                    con.commit();
                    
                    
                    Log.info(getClass(),"-----Save end-----");
                
                    isValidate=true;
                    result = SUCCESS;
                 }else{
                     this.setEntityDesc(sql,ssql);
                    this.setEntity(entity);
                    
                    init(sql);
                    isValidate=false;
                    result = INPUT;
                 }
             }else{
             
                if (this.status.equals(SharingConstants.newStatusKey)){
                    this.setStatus(SharingConstants.drafStatusKey);
                    
                    if (this.lengthValidate() && this.isSaveValidate(sql)){
                        entity.setStatus(SharingConstants.drafStatusKey);
                        //save
                        sno = sql.save(entity,oldStatus);
                        Log.info(getClass(),sno + " status:"+this.getStatusName());
                        Log.info(getClass(),sno + " save finished");
                        this.setSno(sno);
                        entity=sql.getSharing(sno,"</p>");
                        
                        this.setEntityDesc(sql,ssql);
                        this.setEntity(entity);   
                        
                        init(sql);
                        
                        con.commit();
                        
                                
                        if (upload != null)
                            SharingUtil.getFile(upload,SharingConstants.sharing);
                    
                        
                        Log.info(getClass(),"-----Save end-----");
                    
                        isValidate=true;
                        result = SUCCESS;
                    }else{
                        
                        this.setEntityDesc(sql,ssql);
                        this.setEntity(entity);
                        init(sql);
                        isValidate=false;
                        result = INPUT;
                    }
            
                    
                }else{
                    if (status.equals(SharingConstants.deployStatusKey)){//deploy

                            if (this.lengthValidate() && isValidate(SharingConstants.Deployed,sql)) {
                                
                                SharingEntity shEntity=sql.getSharing(sno,"</p>");
                                entity.setAlertSite(shEntity.getAlertSite());
                                entity.setAlertDept(shEntity.getAlertDept());
                                entity.setDeployDept(shEntity.getDeployDept());
                                entity.setDeploySite(shEntity.getDeploySite());
                                entity.setDSite(shEntity.getDSite());
                                entity.setDDept(shEntity.getDDept());
                                
                                //Start CR-2014-01727 Kevin
                                entity.setAlertcopy(shEntity.getAlertcopy());
                                entity.setDeploycopy(shEntity.getDeploycopy());
                                //End CR-2014-01727 Kevin
                                
                                sno=sql.save(entity,oldStatus);

                                this.setSno(sno);
                                entity=sql.getSharing(sno,"</p>");
                                
                                this.setEntityDesc(sql,ssql);
                                this.setEntity(entity);
                                
                                init(sql);
                                
                                con.commit();
                                
                                                            
                                if (upload != null)
                                    SharingUtil.getFile(upload,SharingConstants.sharing);
                                
                                Log.info(getClass(),"-----Save end-----");
                                isValidate=true;
                                result = SUCCESS;
                                
                            }else{
                                
                                this.setEntityDesc(sql,ssql);
                                this.setEntity(entity);
                                init(sql);
                                isValidate=false;
                                result = INPUT;

                            }

                    }else{

                            if (this.lengthValidate() && isSaveValidate(sql)) {
                                sno=sql.save(entity,ssql);
                                this.setEntity(entity);
                                
                                init(sql);
                                con.commit();
                                
                                        
                                if (upload != null)
                                    SharingUtil.getFile(upload,"-----Save end-----");
                            
                                isValidate=true;
                                result = SUCCESS;
                        
                            }else{ 
                                this.setEntityDesc(sql,ssql);
                                this.setEntity(entity);
                                init(sql);
                                isValidate=false;
                                result = INPUT;
                            }
                    } 
                }
             }
                
            }
            
            if (!tp.equals("Exit")){
                isValidate=false;
            }
            
            
            
            
            
        } catch (SizeLimitExceededException e) {
            Log.info(this.getClass(),"SizeLimitExceededException:" + e.getMessage());
            mess.add("SizeLimitExceededException:"+e.getMessage());
            this.setStatusName(SharingConstants.New);
            result=INPUT;
            if (con!=null) con.close();
            
        } catch (IOException e) {
            Log.info(this.getClass(),"IOException:" + e.getMessage());
            mess.add("IOException:"+e.getMessage());
            this.setStatusName(SharingConstants.New);
            result=INPUT;
            if (con!=null) con.close();
            

        } catch (FileUploadException e) {
            Log.info(this.getClass(),"FileUploadException:" + e.getMessage());
//          this.addActionError("Exception:"+e.getMessage());
            mess.add("FileUploadException:"+e.getMessage());
            this.setStatusName(SharingConstants.New);
            result=INPUT;
            if (con!=null) con.close();
            

        } catch (Exception e) {
            Log.info(this.getClass(),"Save exception:" + e.getMessage());
            mess.add("Exception:"+e.getMessage());
            this.setStatusName(SharingConstants.New);
            result=INPUT;
//          this.addActionError("Exception:"+e.getMessage());
            
            if (con!=null) con.close();
            
        }finally{
//          this.setEntityDesc(sql,ssql);   
//          this.setEntity(entity);
//          
//          init(sql);
//          isValidate=false;
            if (con!=null) con.close();
            
        }
        return result;

    }



private String urgency="";
public String geturgency() {
        return urgency;
    }

    public void seturgency(String urgency) {
        this.urgency = urgency;
    }
}

我想我应该从 jsp 中获取价值到我的行动中,但没有做我所期望的。

注意:除了我添加的紧急下拉菜单外,我还删除代码中的其他文本字段和下拉菜单

在调试模式的控制台上也没有发现异常或错误

解决方法

您的 urgency setter 名称不正确;它们应遵循 JavaBean 命名约定并为 setUrgency/getUrgency


无关:

  • 动作方法应命名为 save 以遵循 Java 命名约定。
  • 所有参数都应通过 setter(或 ModelDriven)检索,此处无需访问操作上下文。
  • 您的大部分异常处理都可以通过一次多捕获来处理。
  • 这个操作在单一方法中做了很多:重构。
  • 一般来说,setter 应该只设置。如果一个 setter 做的不仅仅是设置,它应该有一个更明显的名字。

还有更多,但现在就足够了:)