salut,

je suis entrain de développer une application JEE avec EJB3 et struts2

mais pour le moment je veux faire le contrôle de saisie

ma solution est de faire le contrôle de saisie avec fichier xml


le fichier RequestAction-validation.xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC 
  		"-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
  		"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
	<field name="request.detailRequest">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message key="errors.required" />
		</field-validator>
	</field>
 
	<field name="request.detalOfTecknical">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message key="errors.required" />
		</field-validator>
	</field>
	<field name="request.startOfOperation">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message key="errors.required" />
		</field-validator>
	</field>
	<field name="request.durationOfActivity">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message key="errors.required" />
		</field-validator>
	</field>
 
	<field name="request.place">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message key="errors.required" />
		</field-validator>
	</field>
 
 
	<field name="request.note">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message key="errors.required" />
		</field-validator>
	</field>
</validators>
le fichier ApplicationResources.properties

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 
errors.invalid=${getText(fieldName)} is invalid.
errors.required=${getText(fieldName)} is required.
la page AddRequest.jsp

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
     <%@ taglib prefix="s" uri="/struts-tags" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
 
</head>
<body>
 
<s:form action="insertRequest" method="post">
 
 
 
         <s:label value="detailRequest"/>
         	        <s:textfield name="request.detailRequest" />
 
 
            <s:label value="detalOfTecknical"/>
                            <s:textfield name="request.detalOfTecknical" />
 
         <s:label value="startOfOperation"/>
        	                <s:textfield name="request.startOfOperation"  /> 
         <s:label value="durationOfActivity"/>
        	                <s:textfield name="request.durationOfActivity" /> 
       <s:label value="place" />
        	                <s:textfield name="request.place" />
 
 
 
          <s:label value="note"/>
        	               <s:textfield name="request.note" />
 
 
 
 
 
 
 
     <s:submit value="Submit" />  
 
 
 
 
 
    </s:form> 
 
 
 
 
</body>
</html>

la class RequestAction.java

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
 
public class RequestAction extends ActionSupport implements Serializable{
 
 
	private static final long serialVersionUID = 1L;
private Request request;
	private RequestDaoRemote  reqService ;
public String execute() throws Exception {
 
		return "input";
	}
 
public RequestAction() {
    	try {
			Context context=new InitialContext();
			reqService = (RequestDaoRemote) context.lookup("erq");
 
		} catch (Exception e) {
			e.printStackTrace();
		}
    } 
 
 
    public String addRequest(){
reqService.add(request);
    	return "success";
    }
 
	public Request getRequeste() {
		return request;
	}
 
	public void setRequeste(Request request) {
		this.request = request;
	}
 
}
le fichier struts.xml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
			<action name="insertRequest" method="addRequest" class="com.action.RequestAction">
            <result name="success">/request.jsp</result>
            <result name="input">/AddRequest.jsp</result>
        </action>
mais après l'exécution de l'application et en cliquant dans le bouton submit de formulaire de la page AddRequest.jsp

elle pointe dans la même page AddRequest.jsp sans afficher aucun de message de contrôle de saisie dans le cas d'ajouter de demande sans remplir le formulaire

je pense que toujours le type de retour est "input'

puisque quand je change dans le fichier struts.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<action name="insertRequest" method="addRequest" class="com.action.RequestAction">
            <result name="input">/request.jsp</result>
            <result name="success">/AddRequest.jsp</result>
        </action>

elle ma redirige vers request.jsp dans tous les cas ( en replissant le formulaire ou dans le cas contraire)


merci d'avance