2009-11-12 10 views
0

Je suis nouveau dans les bibliothèques de balises struts. Je veux générer une ancre pour définir une destination de lien hypertexte dans le même document. Mon code est comme ceci:<html:link> tag

<html:link anchor="abc" > 
      This is to test anchors 
</html:link> 

...Some other tags here 

<html:link linkName = "abc" > 
      Anchor 
</html:link> 

L'erreur que je reçois est Cannot create rewrite URL: java.net.MalformedURLException: You must specify exactly one of "forward", "href", or "page"

Quelqu'un peut-il me dire comment résoudre ce problème?
Merci

Répondre

1

que je comprends entretoises et de apache

You must specify exactly one of the action attribute, the forward attribute, the href attribute, the linkName attribute, or the page attribute.

donc dans votre premier mot, je suppose que vous auriez besoin d'ajouter une balise href et l'ancre est ajoutée à cela. alors votre étiquette avec linkname devrait fonctionner

qui est

<html:link href="someurl" anchor="abc" > 
      This is to test anchors 
</html:link> 
+0

Mais la destination de lien hypertexte est dans le même doccument. nous avons encore besoin de spécifier href ?? En html équivalent href = "#abc" nous ne spécifions pas l'URL si elle est dans le même document. Comment le faire dans struts? – daniel

+0

Vous devez définir le href car c'est un pré-requis. (ou au moins l'un des attributs spécifiés ci-dessus). Donc, si c'est sur la même page, je suppose que vous définissez le href = "#" et anchor = "abc". – Kamal

1

Cela a fonctionné pour moi. Voici le scénario, dans lequel j'ai eu l'erreur.

<appl:resource defaultValue="Appl Error" op="GET" category="shunmugaActionMapping" name="specification" property="shunmugaType" id="shunmugaStartMapping" type="string" > 
    <td class="<xd:valueOf name="rowStyle"/>"> 
     <div class="listRowLink"><html:link page="<%=shunmugaStartMapping%>" paramName="specification" paramProperty="routerId" paramId="detailRouterId">&gt; Details</html:link> 
     </div> 
    </td> 

Ce vomissait l'erreur suivante:

servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: 
Uncaught exception created in one of the service methods of the servlet 
/jsp/List.jsp in application Sundaram. Exception created : 
com.ibm.websphere.servlet.error.ServletErrorReport: 
javax.servlet.jsp.JspException: Cannot create rewrite URL: 
java.net.MalformedURLException: You must specify exactly one of 
"forward", "href", "page" or "action" 
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:695) 

Tout ce que je fait est i ajouté la fermeture à la fin:

</appl:resource> 

Le problème se est résolu et je suis bien maintenant.

Merci, Shunmuga

+0

+1 pour fournir le message d'erreur et le code d'exemple – scraimer