2010-11-02 64 views
0

我正在开发一个JSF应用程序,它有一个servlet来显示二进制图像。我使用一个参数工作,但想传递两个参数。它似乎只得到第一个参数。我的映射看起来像这样。如何将两个值传递给Java 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

用于编码URL参数的格式是键 - 值对与符号(&)分离:

<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" /> 
+0

看起来像来自XML文件的摘录:& – 2010-11-02 13:42:30

+0

可能是或可能只是一个JSP taglib – 2010-11-02 16:20:16

0

使用符号的所有参数之前,但第一个:

<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" /> 
1

的JSP标签应该写为:

<p:graphicImage value="image?app=avatar&amp;id=#{bean.imgId}" /> 

URL中查询部分的参数应该用'&'分开,不是'?'。

(您可以忽略这一点,但他们,你将无法使用ServletRequest.getParameter(String)检索参数值。相反,你将不得不使用ServletRequest.getQueryString()和自己分析各个参数。)

0
<p:graphicImage value="image?app=avatar&id=#{bean.imgId}" /> 

&而不是第二个?