Dashlet erreur

cancel
Showing results for 
Search instead for 
Did you mean: 
libman
Member II

Dashlet erreur

Bonjour,

J'ai suivi le tutoriel quie se trouve dans cette lien: http://livinginjava.blogspot.com/2008/11/how-to-create-custom-dashlet-in.html

Quand j'ajoute le dashlet que j'ai créé, je reçois l'erreur siuvant:
javax.faces.FacesException: /jsp/dashboards/dashlets/hello.jsp(4,11) Tag <r:template non terminé
caused by:
org.apache.jasper.JasperException: /jsp/dashboards/dashlets/hello.jsp(4,11) Tag <r:template non terminé
Cela est hello.jsp:
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>

<%– Note that this template is loaded from the classpath –%>
<r:template="/alfresco/templates/hello.html.ftl">
</r:template>
Et le hello.jsp:
<#assign name = person.properties.userName>
Hello ${name}
J'ai bien copier les codes, et bizarrement je reçois cette erreur. Le tutoriel est publier le 16 novembre, donc il ne doit pas avoir beaucoup de changement d'Alfresco.

Quel peut être le problème?

Merci.
8 Replies
thomasb
Member II

Re: Dashlet erreur

J'ai suivi le tutoriel quie se trouve dans cette lien: http://livinginjava.blogspot.com/2008/11/how-to-create-custom-dashlet-in.html

Quand j'ajoute le dashlet que j'ai créé, je reçois l'erreur siuvant:
javax.faces.FacesException: /jsp/dashboards/dashlets/hello.jsp(4,11) Tag <r:template non terminé
caused by:
org.apache.jasper.JasperException: /jsp/dashboards/dashlets/hello.jsp(4,11) Tag <r:template non terminé
Cela est hello.jsp:
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>

<%– Note that this template is loaded from the classpath –%>
<r:template="/alfresco/templates/hello.html.ftl">
</r:template>

Il manque un nom d'attribut:

<r:template templatePath="/alfresco/templates/hello.html.ftl">
</r:template>
ou

<r:template template="/alfresco/templates/hello.html.ftl">
</r:template>

(les deux existent d'après repo.tld, je sais pas lequel il faut utiliser; JSP/JSF, c'est carrément pas ma tasse de café)
libman
Member II

Re: Dashlet erreur

Super!! Merci.
libman
Member II

Re: Dashlet erreur

Est j'ai mis un formulaire (méthode GETMais l'argument n'est pas vu. Dans un webscript je fait URL/?search= et cela marche. Mais dans le webclient je dois trouver un autre méthode. J'aussi essayer le méthode POST, aucun différence.

Je reçois:
Expression args is undefined on line

Et le code que j'utilise:
<#if !args.searchString?has_content><!–Erreur sur cette ligne–>
<h2>Input</h2>
<form method="GET">
Search:<input type="textfield" name="searchString"></input><br>
<input type="submit"/>
</form>
<#else>
<h2>Result</h2>
</#if>

Avez vouz une idée?
thomasb
Member II

Re: Dashlet erreur

Est j'ai mis un formulaire (méthode GETMais l'argument n'est pas vu. Dans un webscript je fait URL/?search= et cela marche. Mais dans le webclient je dois trouver un autre méthode. J'aussi essayer le méthode POST, aucun différence.

Je reçois:
Expression args is undefined on line

Comme son nom l'indique, le tag JSP <r:template> n'appelle pas un webscript mais un… template!
Et comme on ne passe pas par la Template Servlet, la variable args n'existe pas (cf. http://wiki.alfresco.com/wiki/Template_Guide#Default_Model )

Pour passer des valeurs, on peut alors utiliser l'attribut model.

Sinon, il y a aussi un <r:webScript scriptUrl="…" /> pour exécuter un webscript.

Et le code que j'utilise:
<#if !args.searchString?has_content><!–Erreur sur cette ligne–>
<h2>Input</h2>
<form method="GET">
Search:<input type="textfield" name="searchString"></input><br>
<input type="submit"/>
</form>
<#else>
<h2>Result</h2>
</#if>

Avez vouz une idée?

Le mieux est d'aller regarder l'implémentation de la dashlet OpenSearch (qui de mémoire est un webscript). Mais ce qui est sûr, c'est que des formulaires dans des dashlets (par définition des bouts de HTML qu'on va coller dans de plus grands ensemble), ça doit utiliser de l'AJAX (ou bien savoir dans quoi elles sont incluses pour pouvoir tirer partie de fonctionnalités de l'infrastructure; mais ce qui est sûr, c'est que passer un ?search=XXX à la page contenant la dashlet ne passera pas automatiquement ?search=XXX au webscript)
libman
Member II

Re: Dashlet erreur

Merci pour vos conseilles. Je vais utiliser un webscript et ajax pour mes besoins. J'avais déjà regarder à les sources de OpenSearch, mais j'ai quelques problèmes (http://forums.alfresco.com/en/viewtopic.php?f=28&t=15678) pour commencer.
libman
Member II

Re: Dashlet erreur

Bon, j'ai essayer Ajax mais sans succès. J'ai le même code que cela:
http://amillet.developpez.com/tutoriels/javascript/ajax-prototype/updater.html
J'ai remarqué que prototype est utilisé et ne doit donc pas être ajouter. J'ai les codes suivantes:

<script src="prototype.js" type="text/javascript"></script>
<script type="text/javascript">
Event.observe(window, 'load', function() {
Event.observe($('maj'), 'click', function(event) {
new Ajax.Updater(
'news',
'',
{
method: 'get',
parameters: {clics: $('news').className},
onSuccess: function() { $('news').className = parseInt($('news').className)+1; if ($('news').className == '7')   $('maj').parentNode.removeChild($('maj'));},
onFailure: function() {$('news').className = "Une erreur est survenue lors de l'appel AJAX.\nRecharger la page devrait résoudre le problème."; }
}
);
Event.stop(event);
}.bindAsEventListener())
});
Dans un environment de test (test.html avec prototype.js), quand j'appuie sur mettre à jour j'inclus mon site (bien). Mais quand à alfresco (dans le dashboard), j'ai rien. Le lien (mettre à jour) est le suivant: http://localhost:8080/alfresco/faces/jsp/dashboards/container.jsp#
Qu'est ce que je peux faire?
libman
Member II

Re: Dashlet erreur

Bizarrement, il n'y a prototype.js dans alfresco/scripts… J'ai l'ajouté. Maintenant, je ajoute d'informations avec (javascript) document.write(). Ces informations ne sont que affiché dans le webscript elle même et non dans le webclient. Quel peut être la raison?

Ce que je n'ai aussi pas trouvé est le nome du propriété pour avoir l'adresse du chemin root (/alfresco) pour que je n'import pas comme la manière suivante:
<script src="/alfresco/scripts/prototype.js"

Merci pour votre aide.
libman
Member II

Re: Dashlet erreur

Pour (2) (/alfresco): ${url.context}
Est-ce que quelqu'un a un idée pour (1) (document.write() no affiché).

Merci.