Bonjour,
Ruscov a raison : tout est dans sa réponse.
Petit exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public class NoResultAction extends ActionSupport {
private String rawData;
@Override
public String execute() throws Exception {
System.out.println("Received data :" + rawData);
return null;
}
public String getRawData() {
return rawData;
}
public void setRawData(String rawData) {
this.rawData = rawData;
}
} |
Puis dans "struts.xml" :
<action name="noResult" class="com.stac.struts2.action.NoResultAction"/>
Un petit script en JS (common_ajax.js). Tu remarqueras que la fonction que l'on assigne à "onreadystatechange" ne gère pas la réponse et ne fait rien:
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
| function ajaxFunction() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
//ne fait rien
}
}
xmlHttp.open("GET", "/TestStruts2/noResult.action?rawData=Stac", true);
xmlHttp.send(null);
} |
Puis le HTML :
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script src="/TestStruts2/js/common_ajax.js" type="text/javascript"></script>
<title>Test Ajax</title>
</head>
<body>
<form name="myForm">
Name: <input type="text" name="username" onkeyup="ajaxFunction();"/>
</form>
</body>
</html> |
Quand tu entres un caractère dans le formulaire, une requête est envoyée au serveur :
1 2 3 4
| 11:50:19,591 INFO [XmlConfigurationProvider] Parsing configuration file [struts-plugin.xml]
11:50:19,607 INFO [XmlConfigurationProvider] Parsing configuration file [struts.xml]
11:50:19,638 INFO [BeanSelectionProvider] Loading global messages from messages
11:50:33,138 INFO [STDOUT] Received data :Stac |
Voilà, j'espère que cela peut t'aider.
Stac
Partager