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;
    }
}
4

2 に答える 2

0

(OPはJSPではなくアクションにデータを送信したかったことがわかりました。XML構成を使用するよりもデータをJSPに送信するためのより良いソリューションであるため、この回答を残します。これは不要であり、S2アプリケーションの通常の記述方法に反します.)

デフォルトの結果タイプが「dispatcher」(通常のデフォルト) の場合、「送信」は必要ありません。

という名前のアクション プロパティを公開"etat"し、JSP で参照します。

アクションクラス

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>
于 2013-05-18T23:02:32.773 に答える