2011-01-07 7 views
5

Tengo muchos archivos xhtml en varias carpetas. Quiero volver a escribir la URL comoCómo especificar el patrón de reescritura en pages.xml

de http://localhost:8080/folder1/file1.seam a http://localhost:8080/folder1/file1

En file1.page.xml di

<rewrite pattern="/folder1/file1" /> 

Lo anterior me proporcionaron el patrón correcto. Pero tengo muchos archivos y no quiero especificar este patrón de reescritura en cada archivo page.xml. ¿Hay alguna forma de especificar esto en pages.xml?

EDIT:

http://localhost:8080/folder2/file2.seam to http://localhost:8080/folder2/file2 
http://localhost:8080/folder3/file3.seam to http://localhost:8080/folder3/file3 

más muestras de mi traducción

Respuesta

2

sí, hay. Mira here.

+0

No estoy buscando ocultar los parámetros de consulta. Solo quiero ocultar la extensión .seam de url. Esto no está funcionando. – Achaius

8
  • Reescritura sucede en base al reescritura patrones encontrados para vistas de páginas.xml

  • costura reescritura de URL hace tanto entrantes y la URL saliente reescritura basa en el mismo patrón

Ejemplo:

<page view-id="/home.xhtml"> 
    <rewrite pattern="/home" /> 
</page> 
  • se enviará ninguna solicitud entrante para/home a /home.xhtml
  • cualquier enlace generado que normalmente señalaría a /home.seam en su lugar se reescribirse como /home
  • patrones de reescritura única que coincida con la parte de la dirección URL antes de Parámetros de la consulta

  • Ambos serán emparejados

    • /home.seam?conversationId=13
    • /home.seam?color=red

reglas de reescritura pueden tomar estos parametros consulta en consideración

<page view-id="/home.xhtml"> 
    <rewrite pattern="/home/{color}" /> 
    <rewrite pattern="/home" /> 
</page> 

solicitud entrante para /home/red será servido como si se tratara de una solicitud de /home.seam?color=red

Si el color es un parámetro de página de un URLr saliente /home.seam?color=blue haría salida como /home/blue

Recuerde:

  • reglas se procesan con el fin

  • lista de reglas más específicas antes de reglas más generales

Si desea ocultar el ID de la conversación, puede hacerlo de esta manera:

<page view-id="/search.xhtml"> 
    <rewrite pattern="/search-{conversationId}" /> 
    <rewrite pattern="/search" /> 
</page> 

Ahora /search.seam?conversationId=16 sería writt es como /search-16

Si desea hacer coincidir varias páginas utilizar comodines

<page login-required="true" view-id="/admin/*"> 

Esperanza esto ayuda

actualización

Para responder a su pregunta de actualización.

Puede crear la reescritura comodín con reescritura externa pero no con la reescritura de URL de Seam.Con la reescritura basada en vista, necesitarás declarar un patrón para cada ID de vista como lo has descrito. Lo siento, pero así es como se deshace la galleta. :-)

+0

gracias por su respuesta. La mayor parte de su debate se centra en la modificación de page.xml para URL con parámetros de página. He modificado mi pregunta y he añadido URL adicionales, nuestra intención es truncar la costura en todas las ocurrencias y no estamos preocupados por los parámetros de consulta en este momento y estamos buscando un mecanismo genérico para aplicar esto en el archivo pages.xml. Su hilo contiene un fragmento, donde mencionó que login-required = true para todas las páginas en la carpeta "admin". Aún no puedo hacer que la regrabación funcione para todas mis carpetas con una regla de reescritura simple. – Achaius

+0

Mire la actualización para la respuesta –

Cuestiones relacionadas