Question

J'essaie de faire fonctionner un code écrit par un développeur précédent. Oui, il a maintenant quitté l'entreprise. : - (

Je reçois un appel JSON RPC à partir du code JS. Le JS fonctionne bien et la méthode de rappel récupère un objet (et non un objet d'erreur).

Mais la méthode de la classe Java n'est jamais touchée. La méthode smd est néanmoins touchée.

public String smd()
{
   return SUCCESS; // break point reaches here
}

@SMDMethod
public void updateRowValueForField(String key, String value, String fieldname)
{
   // We never get into this method.
}
<package name="EntryBarRPC" namespace="/" extends="star-default">

    <action name="ebToggleSelection" class="eboggleSelectionAction" method="smd">
        <interceptor-ref name="jsonStack">
            <param name="enableSMD">true</param>
        </interceptor-ref>
        <result type="json">
            <param name="enableSMD">true</param>
        </result>
    </action>
</package>

Je ne sais pas pourquoi ni ce qui me manque. J'ai lu la page du plug-in JSON à plusieurs reprises.

Je pense que j'ai juste besoin d'un autre regard.

Remarque: aucune erreur dans la console Tomcat, aucune erreur JS.

Quelqu'un a des indices? À votre santé Jeff Porter

Était-ce utile?

La solution

Vous avez oublié d'inclure le code javascript. De l'exemple:

<s:url id="smdUrl" namespace="/nodecorate" action="SMDAction" />
<script type="text/javascript">
    //load dojo RPC
    dojo.require("dojo.rpc.*");

    //create service object(proxy) using SMD (generated by the json result)
    var service = new dojo.rpc.JsonService("${smdUrl}");

    //function called when remote method returns
    var callback = function(bean) {
        alert("Price for " + bean.type + " is " + bean.price);
    };

    //parameter
    var bean = {type: "Mocca"};

    //execute remote method
    var defered = service.doSomething(bean, 5);

    //attach callback to defered object
    defered.addCallback(callback);
</script>

Êtes-vous sûr d'appeler service.updateRowValueForField (clé, valeur, nom de champ) et pas autre chose?

De plus, votre méthode renvoie un vide (par exemple, ne renvoie rien). Qu'espériez-vous obtenir?

Autres conseils

La nouvelle version corrige mes problèmes.

plug-in JSON Google

Je suppose que vous devez mettre à jour la méthode smd () pour appeler réellement updateRowValueForField () plutôt que de renvoyer immédiatement. On dirait que le développeur précédent n'a jamais vraiment connecté les méthodes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top