我有一个页面太长而无法在一个块中处理(在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就是这样吗?
答案 0 :(得分:1)
执行JSP页面时会处理jsp:include
元素。 include操作允许您在JSP文件中包含静态或动态资源。包含静态和动态资源的结果是完全不同的。如果资源是静态的,则将其内容插入到调用JSP文件中。如果资源是动态的,则将请求发送到包含的资源,执行包含的页面,然后将结果包含在来自调用JSP页面的响应中。 - [reference]
<强>解决方案:强>
尝试将包含的页面设为JSP片段(.jspf
)。 JSP片段静态地包含在另一个JSP中。而且他们不会自己编译。
进一步阅读:
答案 1 :(得分:1)
尝试将bean放入会话范围....