Java 返回的URL作为字符串在JSF中无效

Java 返回的URL作为字符串在JSF中无效,java,string,jsf-2,icefaces,Java,String,Jsf 2,Icefaces,我正在尝试使用GoogleAPI作为文本到语音的转换。所以,我构建了一个字符串,然后应该将它作为URL传递给一个组件,以获得一个带有语音的MP3。 这是我的代码: URI uri = new URI("http://translate.google.com/translate_tts?tl=es&q="+ URLEncoder.encode((String)this.text.getValue(), "UTF-8")); 当我使uri.toString返回一个格式良好的URL时。如果我

我正在尝试使用GoogleAPI作为文本到语音的转换。所以,我构建了一个字符串,然后应该将它作为URL传递给一个组件,以获得一个带有语音的MP3。 这是我的代码:

URI uri = new URI("http://translate.google.com/translate_tts?tl=es&q="+ URLEncoder.encode((String)this.text.getValue(), "UTF-8"));
当我使uri.toString返回一个格式良好的URL时。如果我在浏览器中复制并粘贴此输出,效果会很好。 但如果我将此返回字符串分配给ice的源属性:outputMedia不工作。然后检查页面中生成的HTML,src属性中的字符串为:

http://translate.google.com/translate_tts?tl=es&q=Bobby+need+peanuts
符号已替换为&

如何避免这种情况以生成有效的URL?

您需要使用Javascript在客户端创建URL

var decoded = decodeURI(URI)

+1为谷歌文本到语音提示!谢谢试试看!它工作得很好!当然,如果您能够正确构建URL字符串,那么我如何解码从托管bean返回的字符串,然后将其放入组件的源代码中呢?有什么想法吗?如果我在返回之前在字符串中使用此方法,则不会发生任何情况,当我看到代码时,页面中的字符串仍然带有&;而不是&