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 想要将数据发送到 Action,而不是 JSP。留下这个答案是因为与使用 XML 配置相比,它是向 JSP 发送数据更好的解决方案,这是不必要的,并且与 S2 应用程序的正常编写方式背道而驰.)

如果默认结果类型是“dispatcher”(正常默认值),则不需要“sending”。

公开一个名为的动作属性"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 回答
0

要发送带有结果的参数,您需要将参数添加locationresult标签中,该标签将保存调度程序要定位的资源的值。然后添加您自己的参数。例如

<result name="ssCara">
  <param name="etat">ssCara</param>
  <param name="location">/WEB-INF/admin/projets/parametrer/modifierSubCara.jsp</param>    
</result>
于 2013-05-19T11:58:38.620 回答