2010-09-09 4 views
6

У меня есть некоторый код, который выглядит примерно так:Как URL закодировать значение JSF outputLink

<h:outputLink value="#{bean.url}" /> 

Но выход содержит апостроф в HREF ссылки, которая не URL закодирован.

Я делаю что-то неправильно или это нормальное поведение для outputLink? Заранее спасибо.

(JBoss 4.2, Java 1.6)

ответ

4

Это действительно не будет делать это за вас. Он будет в наивысшем случае добавить jsessionid для случая, когда клиент не поддерживает файлы cookie. Только параметры ссылок, которые добавляются с использованием <f:param>, будут закодированы в URL.

<h:outputLink value="#{bean.url}">Click 
    <f:param name="param1" value="#{bean.urlParam1}" /> 
    <f:param name="param2" value="#{bean.urlParam2}" /> 
</h:outputLink> 
+0

Не все параметры кодируются в части запроса URL-адреса. '' только позаботится о добавлении и кодировании параметров в части запроса. Следовательно, может потребоваться URL-адрес для кодирования частей атрибута 'value' в . – YoYo

+0

@YoYo: Как ответил, h: outputLink не сделает этого для вас. Просто разделите их так, чтобы их можно было определить через f: param. – BalusC

+0

Url - это что-то вроде '# {base}/request; par1 = val1/detail? Par2 = val2'. Я не понимаю, как я могу «разбить», поэтому я могу поставить par1 как «»? Нет проблем для 'par2', хотя ... Моим решением было бы вручную закодировать par2 и напрямую вставить в атрибут' '' value'. Кажется, вы предлагаете что-то более простое? – YoYo

Смежные вопросы