2010-07-23 5 views
1

J'utilise Rhino pour générer XHTML mais mes urls sont en cours de codage comme dans:Rhino, e4x et générer des URL en XHTML

-http://www.example.com/test.html?a=b&c=d

devient

-http://www.example.com/test.html?a=b&c=d

A défaut scénario de test comme suit:

public class E4XUrlTest extends TestCase { 
    public void testJavascript() throws Exception { 
     final Context context = new ContextFactory().enterContext(); 
     context.setLanguageVersion(Context.VERSION_1_7); 
     try { 
      final ScriptableObject scope = new Global(context); 
      final Script compiledScript = context.compileReader(
        new StringReader("<html><body><a href={'blah.html?id=2345&name=345'}></a></body></html>"), "test", 1, null); 
      HashMap<String, Object> variables = new HashMap<String, Object>(); 
      Set<Entry<String, Object>> entrySet = variables.entrySet(); 
      for (Entry<String, Object> entry : entrySet) { 
       ScriptableObject.putProperty(scope, entry.getKey(), Context.javaToJS(entry.getValue(), scope)); 
      } 
      Object exec = compiledScript.exec(context, scope); 
      String html = exec.toString(); 
      System.out.println(html); 
      assertTrue(html.indexOf("id=2345&name") > 0); 
     } finally { 
      Context.exit(); 
     } 

    } 
} 

?

+0

btw, je vais aller avec .replace ("&", "&") mais il serait bon de savoir s'il y a une disposition pour ce cas d'utilisation d'une autre manière. –

Répondre

0

En fait l'encodage "& amp; name" est correct en xHTML depuis & name; n'est PAS une entité xHTML valide. TOUS les navigateurs comprennent l'URL correctement. Vous devez donc corriger votre test plutôt que d'essayer de casser votre bon xHTML. :-) stw