【问题标题】:Why are jsp:include pages with get parameters marked as error in eclipse?为什么jsp:包含带有get参数的页面在eclipse中标记为错误?
【发布时间】:2012-09-24 09:35:00
【问题描述】:

我的同事正在使用 netbeans,以下验证很好:

<jsp:include page="/somepage.jsp?parameter=value"/>

然而在日食中我得到了

在所选路径中找不到片段

这与添加参数有关,如下所示:

<jsp:include page="/somepage.jsp"/>

有没有办法解决这个问题?

【问题讨论】:

    标签: eclipse jsp jstl


    【解决方案1】:

    您应该使用&lt;jsp:param&gt; 来传递请求参数。

    <jsp:include page="/somepage.jsp">
      <jsp:param name="parameter1" value="value1"/>
    </jsp:include>
    

    【讨论】:

      【解决方案2】:

      将参数传递给另一个 JSP 页面 包含操作(请参阅在 JSP 页面中包含文件)执行包含的 JSP 页面并将生成的输出附加到它自己的输出流中。从 URL 的查询字符串解析的请求参数不仅可用于主 JSP 页面,也可用于所有包含的 JSP 页面。在调用 JSP 页面时,可以临时覆盖请求参数或临时引入新的请求参数。这是通过使用 jsp:param 操作完成的。

      在此示例中,param1 在查询字符串中指定,并自动提供给被调用者 JSP 页面。 param2 也在查询字符串中指定,但被调用者覆盖。请注意,调用后 param2 恢复为原始值。 param3 是调用者创建的新请求参数。请注意,param3 仅对被调用者可用,当被调用者返回时,param3 不再存在。这里是调用者 JSP 页面:

      <html>
      <head></head>
      <body>
      
      <jsp:include page="callee.jsp" />
         <jsp:param name="param2" value="value2" />
         <jsp:param name="param3" value="value3" />
      </jsp:include>
      
      Caller:
      param1: <%= request.getParameter("param1") %>
      param2: <%= request.getParameter("param2") %>
      param3: <%= request.getParameter("param3") %>
      
      </body>
      </html>
      

      这里是被调用的 JSP 页面:

      被调用者:

      param1: <%= request.getParameter("param1") %>
      param2: <%= request.getParameter("param2") %>
      param3: <%= request.getParameter("param3") %>
      

      如果使用 URL 调用示例:

      http://hostname.com?param1=a&param2=b
      

      输出将是:

      被调用者:

      param1: 一个

      参数2:值2

      param3: value3

      来电者:

      param1: 一个

      参数2:b

      param3: 空

      访问http://www.exampledepot.com/egs/javax.servlet.jsp/caller.jsp.html

      【讨论】:

      • 我不明白这如何回答 OP 的问题。如果是这样,我不清楚。他在问一个日食错误,这个答案甚至没有提到。
      【解决方案3】:

      Eclipse 认为被包含的文件的名称是“somepage.jsp?parameter=value”,这当然不存在。它在 NetBeans 中验证良好,因为它用于解析/验证路径的任何机制都比 Eclipse 更智能。

      Eclipse 中的错误是误报(假设“somepage.jsp”确实存在于预期位置),因为 JSP 编译器将正确解释路径并将“parameter=value”作为参数包含到包含的 JSP 中,访问者:

      ${param.parameter}${param['parameter']}

      【讨论】:

        【解决方案4】:

        如果您想使用 url 中的参数,请在 eclipse 中禁用“JSP Syntax Validator”。

        项目右键->属性->验证

        确保启用项目特定设置,上面的复选框。否则将采用默认设置。

        【讨论】:

          猜你喜欢
          • 2010-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-17
          • 1970-01-01
          相关资源
          最近更新 更多