如何将两个值传递给Java servlet?

时间:2010-11-02 13:39:14

标签: java jsf

我正在开发一个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方法解析它们。感谢。

4 个答案:

答案 0 :(得分:1)

JSP标记应写为:

<p:graphicImage value="image?app=avatar&amp;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}" />

&安培;而不是第二个?