2013-05-18 22 views
1

我想發出一個特定參數的每個結果。發送參數每個結果

struts.xml

<action name="modifierPara" method="modifierPara" 
     class="ma.ensao.evalmetrics.view.ParametrageAction"> 
    <interceptor-ref name="loginStack" /> 
    <result name="ssCara"> 
    <param name="etat">ssCara</param> 
    /WEB-INF/admin/projets/parametrer/modifierSubCara.jsp 
    </result> 

    <result name="metric"> 
    <param name="etat">metric</param> 
    /WEB-INF/admin/projets/parametrer/modifierMetric.jsp 
    </result> 
</action> 

取決於etat的價值,我會根據不同的參數執行linkController.modifier

ma.ensao.evalmetrics.view.ParametrageAction

public class ParametrageAction extends ActionSupport { 

    private static final long serialVersionUID = 9149826260758390091L; 
    private Parametrage para; 
    private Long id; 
     private ParaManager linkController; 
     private String etat; 
     private String etatSuivant; 


    public ParametrageAction() { 
     linkController = new ParaManager(); 
    } 

    public String getSpecificPara() { 
     try { 
      this.setPara(linkController.getSpecificPara(getId())); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return SUCCESS; 
    } 
    public String modifierPara() { 

     try { 
      if (etat.equals("cara")){ 
       linkController.modifier(para,"cara"); 
       etatSuivant= "ssCara"; 
      }else if(etat.equals("ssCara")){ 
       linkController.modifier(para,"ssCara"); 
       etatSuivant="metric"; 
      }else if(etat.equals("metric")){ 
       linkController.modifier(para,"metric"); 
       etatSuivant="SUCCESS"; 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     System.out.println("coucouuuuu from parm action"); 
     return etatSuivant; 
    } 
    public Long getId() { 
     return id; 
    } 

    public void setId(Long id) { 
     this.id = id; 
    } 

    public ParaManager getLinkController() { 
     return linkController; 
    } 

    public void setLinkController(ParaManager linkController) { 
     this.linkController = linkController; 
    } 

    public static long getSerialversionuid() { 
     return serialVersionUID; 
    } 

    public Parametrage getPara() { 
     return para; 
    } 

    public void setPara(Parametrage para) { 
     this.para = para; 
    } 

    public String getEtat() { 
     return etat; 
    } 

    public void setEtat(String etat) { 
     this.etat = etat; 
    } 
} 
+0

編輯沒有任何意義,您的結果轉到JSP而不是動作。如果你想*輸入*具有特定值的動作,那麼你需要將它作爲* request *中的參數發送,而不是將值鏈接到* results *,這會在*動作執行後發生。 –

+0

這正是我想要的,用特定參數輸入每個結果,但我不知道如何去做。如何從請求中發送請求中的參數到jsp。 – GSDa

+0

通過將其作爲參數包含在鏈接中?通過定義兩個操作方法並讓每個操作方法設置值?有幾個選項。 –

回答

0

不同,需要結果發送參數將參數location添加到result標記中,該標記將保存調度程序所在資源的值。然後添加你自己的參數。例如

<result name="ssCara"> 
    <param name="etat">ssCara</param> 
    <param name="location">/WEB-INF/admin/projets/parametrer/modifierSubCara.jsp</param>  
</result> 
0

(原來的OP想將數據發送到一個動作,而不是一個JSP離開這個答案,因爲它是比使用將數據發送到JSP更好的解決方案。 XML配置,這是不必要的,並且計數器對如何S2應用通常被寫入。)

如果默認結果類型是「調度員」(正常默認),則沒有「發送」是必需的。

公開名爲"etat"動作特性,並在JSP中引用它。

Action類

public class AnAction extends ActionSupport { // Extending is optional 
    private String etat; 
    public String getEtat() { return etat; } 
    public String modifierPara() { 
     etat = whatever(); 
     return appropriateResult(); 
    } 
    // etc. 
} 

JSP

${etat} Or... 
<s:property value="%{etat}" /> Etc. 

相應的命名消除了結果配置批量:

<result>/WEB-INF/admin/projets/parametrer/modifier_${etat}.jsp</result> 
+0

這不是我想要的,我只是編輯了我的帖子,並添加了操作類。希望你能明白我想要的東西。 – GSDa

+0

@dalal我評論你的編輯;你對請求處理的想法是倒退的。 –