2016-02-01 10 views
2

Я создал дружественную файл URL для моих а-портлета (портлет использует DefaultFriendlyURLMapper):Опустит минус «-» в Liferay дружественного URL

<routes> 
    <route> 
     <pattern>/{urlTitle}</pattern> 
     <implicit-parameter name="p_p_lifecycle">0</implicit-parameter> 
     <implicit-parameter name="struts_action">/view</implicit-parameter> 
    </route> 
</routes> 

Это работает как шарм, но я бы как понять, если есть способ опустить «-» в дружественном URL-адресе? I.e.

http://.../page/-/abc/title 

должен быть

http://.../page/abc/title 

ответ

2

Я нашел решение.

Вы должны расширить DefaultFriendlyURLMapper и переопределить метод isCheckMappingWithPrefix. (.. и, конечно, определите этот класс как ваш FriendlyURLMapper.)

public class FriendlyUrlWithoutMinus extends DefaultFriendlyURLMapper { 

    @Override 
    public boolean isCheckMappingWithPrefix() { 
     return false; 
    } 

} 
+0

Мне удалось заставить URL работать без '-'. Однако, когда URL-адрес рендеринга перемещается к дружественному URL-адресу, он включает в себя URL-адрес. Вы также могли манипулировать или изменять шаблон URL, который заменяет параметризованный URL-адрес и удаляет '-' в нем. Мы не хотим удалять '-' вручную по URL-адресу – ughai

+0

@ughai Извините, но вышеупомянутое влияет только на получаемый/дружественный URL-адрес, и у меня не было требования изменить исходный URL-адрес. –