visitadas urls para historial herramienta google eliminar direcciones como chrome celular borrar barra url wicket wicket-1.5

urls - eliminar número de versión en url



eliminar url visitadas (7)

En Application.init ():

mount(new MountedMapperWithoutPageComponentInfo("/subpage", MyPage.class));

con la siguiente clase de Mapper:

public class MountedMapperWithoutPageComponentInfo extends MountedMapper { public MountedMapperWithoutPageComponentInfo(String mountPath, Class<? extends IRequestablePage> pageClass) { super(mountPath, pageClass, new PageParametersEncoder()); } @Override protected void encodePageComponentInfo(Url url, PageComponentInfo info) { // do nothing so that component info does not get rendered in url } @Override public Url mapHandler(IRequestHandler requestHandler) { if (requestHandler instanceof ListenerInterfaceRequestHandler || requestHandler instanceof BookmarkableListenerInterfaceRequestHandler) { return null; } else { return super.mapHandler(requestHandler); } } }

¿Cómo puedo eliminar u ocultar el número de versión en la URL introducida en Wicket 1.5?

Montar una página no ayuda.

http://localhost/MyPage/SubPage?0


La solución que utiliza una clase MountedMapperWithoutPageComponentInfo de creación propia no funciona para Wicket 6.13+, la página no responderá a las acciones de usuario de devolución de llamada. (Tenga en cuenta que hay múltiples versiones de MountedMapperWithoutPageComponentInfo en Internet).

Una solución para 6.13+ (probada con 6.15) se puede encontrar aquí:

http://apache-wicket.1842946.n4.nabble.com/Delete-version-number-in-url-td4665752.html

https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java

// Put this code in your WebApplication subclass import org.apache.wicket.core.request.mapper.MountedMapper; import org.apache.wicket.request.component.IRequestablePage; import org.apache.wicket.request.mapper.parameter.PageParametersEncoder; import org.apache.wicket.request.mapper.info.PageComponentInfo; import org.apache.wicket.request.IRequestHandler; import org.apache.wicket.core.request.handler.BookmarkableListenerInterfaceRequestHandler; private static class NoVersionMapper extends MountedMapper { public NoVersionMapper(final Class<? extends IRequestablePage> pageClass) { this("/", pageClass); } public NoVersionMapper(String mountPath, final Class<? extends IRequestablePage> pageClass) { super(mountPath, pageClass, new PageParametersEncoder()); } @Override protected void encodePageComponentInfo(Url url, PageComponentInfo info) { //Does nothing } @Override public Url mapHandler(IRequestHandler requestHandler) { if (requestHandler instanceof ListenerInterfaceRequestHandler || requestHandler instanceof BookmarkableListenerInterfaceRequestHandler) { return null; } else { return super.mapHandler(requestHandler); } } }

Luego puedes montar páginas usando:

// Put this in the init() method of your WebApplication subclass getRootRequestMapperAsCompound().add(new NoVersionMapper("urlPatternOfAPage", YourPage.class));



Para Wicket 8, esta clase NoVersionMapper funciona:

https://github.com/apache/openmeetings/blob/master/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java#L314

public class NoVersionMapper extends MountedMapper { public NoVersionMapper(final Class pageClass) { this("/", pageClass); } public NoVersionMapper(String mountPath, final Class pageClass) { super(mountPath, pageClass, new PageParametersEncoder()); } @Override protected void encodePageComponentInfo(Url url, PageComponentInfo info) { //Does nothing } @Override public Url mapHandler(IRequestHandler requestHandler) { if (requestHandler instanceof ListenerRequestHandler || requestHandler instanceof BookmarkableListenerRequestHandler) { return null; } else { return super.mapHandler(requestHandler); } } }

Esto es básicamente lo mismo que el código de Devabc, pero este se compila en Wicket 8. Se ha probado contra regresiones conocidas de las versiones anteriores del código: Ajax funciona y no se activa la actualización de la página cuando no debería.


Para mí, la solución con setStatelessHint no funcionó. Lo siguiente funcionó:

class MyApplication extends WebApplication { @Override protected void init() { getRequestCycleSettings().setRenderStrategy( IRequestCycleSettings.RenderStrategy.ONE_PASS_RENDER); .... } }


Si no desea el número de versión, su página debe ser completamente sin estado, el número de versión es para páginas con estado. Por ejemplo, si su página incluye un formulario, entonces debe usar la variante sin estado del componente Formulario, es decir, org.apache.wicket.markup.html.form.StatelessForm. Si su página ya es completamente apátrida, puede darle a wicket una pista invocando el método org.apache.wicket.Page # setStatelessHint.


Utilice el siguiente mapeador para montar páginas, esto debería funcionar en cualquier página marcable de libros, excepto en la página de inicio.

A continuación, se explica cómo usar el asignador en Application.init ()

mount(new MountedMapperWithoutPageComponentInfo("/subpage", MyPage.class));

Aquí está el mapeador.

import org.apache.wicket.request.Url; import org.apache.wicket.request.component.IRequestablePage; import org.apache.wicket.request.mapper.MountedMapper; import org.apache.wicket.request.mapper.info.PageComponentInfo; import org.apache.wicket.request.mapper.parameter.PageParametersEncoder; public class MountedMapperWithoutPageComponentInfo extends MountedMapper { public MountedMapperWithoutPageComponentInfo(String mountPath, Class<? extends IRequestablePage> pageClass) { super(mountPath, pageClass, new PageParametersEncoder()); } @Override protected void encodePageComponentInfo(Url url, PageComponentInfo info) { // does nothing so that component info does not get rendered in url } }