jsp:include的Bean错误

时间:2011-05-18 09:25:49

标签: java jsp struts javabeans

我有一个页面太长而无法在一个块中处理(在try语句中代码太长)所以我想切入不同的jsp。但是现在我无法在包含的jsp中访问我的bean而且我收到了无法在任何范围内找到bean:“org.apache.struts.taglib.html.BEAN”。

我查看了互联网,发现只有一个页面谈论它,它说我的动作定义不能是页面范围,我的范围现在是请求。

以下是我的page1.jsp

的示例
<html:form action="editFooBarAction">
  <jsp:include page=page2.jsp/>
</html:form>

page2.jsp包含一些html:标签并使用表单bean。

这是我的行动的定义

<action
  path="/edit*"
  type="com.sham.web.action.{1}Action"
  name="{1}Form"
  scope="request"
  validate="true"
  input="edit.{1}">
  <forward name="edit" path="edit.{1}"/>
  <forward name="view" path="view.{1}"/>
</action>

无论如何使用jsp:include就是这样吗?

2 个答案:

答案 0 :(得分:1)

执行JSP页面时会处理jsp:include元素。 include操作允许您在JSP文件中包含静态或动态资源。包含静态和动态资源的结果是完全不同的。如果资源是静态的,则将其内容插入到调用JSP文件中。如果资源是动态的,则将请求发送到包含的资源,执行包含的页面,然后将结果包含在来自调用JSP页面的响应中。 - [reference]

<强>解决方案:

尝试将包含的页面设为JSP片段(.jspf)。 JSP片段静态地包含在另一个JSP中。而且他们不会自己编译。

进一步阅读:

答案 1 :(得分:1)

尝试将bean放入会话范围....