我想为每个结果发送一个特定的参数。
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 :(得分:0)
(事实证明,OP希望将数据发送到Action,而不是发送给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>
答案 1 :(得分:0)
要发送带有结果的参数,您需要将参数location
添加到result
标记中,该标记将包含调度程序要定位的资源的值。然后添加自己的参数。例如
<result name="ssCara">
<param name="etat">ssCara</param>
<param name="location">/WEB-INF/admin/projets/parametrer/modifierSubCara.jsp</param>
</result>