如果我在这样的JSP上有一个表单:
<form action = "/myApp/myServlet?rssFeedURL=${rssFeedURL}' />" method = "post">
<input type = "button" value = "See data for this RSS feed."/>
</form>
我发现如果变量$ {rssFeedURL}没有查询字符串,那么服务器会正确接收它,例如:
http://feeds.bbci.co.uk/news/rss.xml
但是如果存在查询字符串,例如:
http://news.google.com/news?ned=us&topic=m&output=rss
我希望它与'&amp;'的编码有关。字符。有人可以建议吗?
服务器仅收到:
http://news.google.com/news?ned=us
我的网页是charset = UTF-8编码。
答案 0 :(得分:2)
您需要对请求参数进行URL编码。否则,它们将被解释为初始请求URL的一部分。
JSTL为您提供<c:url>
。
<c:url var="formActionURL" value="/myApp/myServlet">
<c:param name="rssFeedURL" value="${rssFeedURL}" />
</c:url>
<form action= "${formActionURL}" method="post">
...
另一种方法是创建一个委托给URLEncoder#encode()
的EL函数。