我正在开发一个JSF应用程序,它有一个servlet来显示二进制图像。我有它使用一个参数,但想传递两个参数。它似乎只获得第一个参数。我的映射看起来像这样。
<servlet>
<servlet-name>imageServlet</servlet-name>
<servlet-class>com.myapp.system.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>imageServlet</servlet-name>
<url-pattern>/image/*</url-pattern>
</servlet-mapping>
当我调用servlet时,它看起来像这样
<p:graphicImage value="image?app=avatar?id=#{bean.imgId}" />
在我的servlet中,我得到了像这样的参数
String id = request.getParameter("id");
String app = request.getParameter("app");
如果我输出应用程序字符串,则显示此
avatar?id=166
如何允许servlet url-patter采用两个值并能够使用getParameter方法解析它们。感谢。
答案 0 :(得分:1)
JSP标记应写为:
<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" />
URL的查询部分中的参数应该用'&amp;'而不是'?'来分隔。
(您可以忽略这一点,但是他们将无法使用ServletRequest.getParameter(String)
来检索参数值。相反,您必须使用ServletRequest.getQueryString()
并自行解析各个参数。)
答案 1 :(得分:0)
对网址参数进行编码的格式是将键值对与“&”(&
)分开:
<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" />
答案 2 :(得分:0)
在所有参数之前使用&符号,但第一个参数:
<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" />
答案 3 :(得分:0)
<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" />
&安培;而不是第二个?