【问题标题】:parameterised jsp:includes of stripes actions?参数化的jsp:包括条纹动作?
【发布时间】:2008-10-06 02:29:16
【问题描述】:

我一直在尝试解决这个问题,但一直被卡住,所以我想问一下。

想象两个 ActionBean,A 和 B。

A.jsp 里面有这个部分:

...
<jsp:include page="/B.action">
  <jsp:param name="ponies" value="on"/>
</jsp:include>
<jsp:include page="/B.action">
  <jsp:param name="ponies" value="off"/>
</jsp:include>
...

根据“ponies”参数是否设置为打开或关闭,B ActionBean 会做一些非常有趣的事情。

参数字符串“ponies=on”在您调试请求时可见,但它不是绑定到 B ActionBean 中的内容。相反,绑定的是原始 A.action 的参数。

有什么方法可以得到我想要的行为,还是我错过了一些基本的东西?

【问题讨论】:

    标签: parameterized stripes jspinclude


    【解决方案1】:

    那么您是说在每种情况下,您的 JSP 页面上的 ${ponies} 都会打印出“on”?

    因为听起来您将 JSP 参数与 Stripes 操作 bean 混淆了。设置 JSP 参数只是在该 JSP 页面上设置一个参数,您可以如上所示引用该参数,它实际上并没有在条纹动作 bean 上设置任何内容。

    【讨论】:

    • java.sun.com/products/jsp/syntax/2.0/syntaxref2020.html 说:“如果资源是动态的,它会根据请求执行操作并返回包含在 JSP 页面中的结果。”从幕后看,它在我看来更像是 jsp:param 构建 URL 而不是设置属性。没有?
    • 是的,以这种方式设置参数相当于将其放在 URL 的末尾,例如:?ponies=on
    • 那么你能再回顾一下为什么 url 上的请求参数不会绑定到包含的 ActionBean 中吗?
    • 简单的答案是因为条纹操作 bean 是您页面上的一个属性。 Request.getAttribute("actionBean");是它的必然。参数是参数,而不是属性。请求.getParameter("paramName");。较短的答案是您使用错误的条纹...
    【解决方案2】:

    这不起作用的原因是我们的 HttpServletRequest 实现完成了按摩。

    它适用于“正常”实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-02
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      相关资源
      最近更新 更多