Struts2 で基本的なアプリケーションを作成しようとしています。
私の問題は、パラメーターが Xworks によって変換されないことです。アクション属性 (idParticipant) は文字列ですが、パラメーターは配列² です。確か、XWorkはアクション実行前に基本パラメータを変換するはずですよね?
私のjsp:
<s:form action="afficher_participant">
<s:hidden name="idParticipant" value="4"></s:hidden>
<s:submit>bob</s:submit>
</s:form>
私の行動:
package action;
import java.util.List;
import model.Participant;
import service.ParticipantService;
import service.ParticipantServiceImpl;
public class ParticipantAction extends BaseAction {
/**
*
*/
private static final long serialVersionUID = 1L;
private String idParticiPant;
private List<Participant> listeParticipant;
private Participant participant;
private ParticipantService participantService = new ParticipantServiceImpl();
public String getIdParticiPant() {
return idParticiPant;
}
public void setIdParticiPant(String idParticiPant) {
this.idParticiPant = idParticiPant;
}
public List<Participant> getListeParticipant() {
return listeParticipant;
}
public void setListeParticipant(List<Participant> listeParticipant) {
this.listeParticipant = listeParticipant;
}
public Participant getParticipant() {
return participant;
}
public void setParticipant(Participant participant) {
this.participant = participant;
}
/* Actions */
public String lister() {
participantService = new ParticipantServiceImpl();
this.listeParticipant = participantService.lister();
return "listerParticipant";
}
public String afficher() {
if (idParticiPant == null) {
return ERROR;
}
participantService = new ParticipantServiceImpl();
participant = participantService.get(Integer.valueOf(idParticiPant));
return "afficherParticipant";
}
}
私の struts.xml :
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="true" />
<constant name="struts.custom.i18n.resources" value="package" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<package name="frontoffice" namespace="/" extends="struts-default">
<default-interceptor-ref name="defaultStack"></default-interceptor-ref>
<!-- Action de l'action de réference -->
<default-action-ref name="index" />
<!-- Navigation rules -->
<action name="*_participant" class="action.ParticipantAction" method="{1}">
<result name="success">jsp/listerParticipant.jsp</result>
<result name="listerParticipant">jsp/listerParticipant.jsp</result>
<result name="afficherParticipant">jsp/afficherParticipant.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
</struts>
最後に、送信時に例外が発生します:
Unexpected Exception caught setting 'idParticipant' on 'class action.ParticipantAction: Error setting
expression 'idParticipant' with value ['4', ]
おそらく単なる設定の問題であることはわかっていますが、間違いを見つけることができません。
ありがとう