2011-05-18 17 views
1

我有一個頁面太長,無法在一個塊中處理(代碼在try語句中太長),所以我想切入不同的jsp。但是現在我無法在包含的jsp中訪問我的bean,並且我收到在任何範圍內找不到bean:「org.apache.struts.taglib.html.BEAN」。jsp的bean錯誤:include

我查看了互聯網,發現只有一個頁面談論它,它說我的動作定義不能是頁面範圍,我的範圍現在是請求。

這裏是我的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:包括這樣呢?

回答

1

執行JSP頁面時會處理jsp:include元素。 include操作允許您在JSP文件中包含靜態或動態資源。包括靜態和動態資源的結果是完全不同的。如果資源是靜態的,則其內容將被插入到調用的JSP文件中。如果資源是動態的,則將請求發送到包含的資源,執行包含的頁面,然後將結果包含在調用JSP頁面的響應中。 - [reference]

解決方案:

嘗試使你的頁面包含一個JSP片段(.jspf)。 JSP碎片將被靜態地包含在另一個JSP中。而且他們不是自己編譯的。

延伸閱讀:

1

嘗試把豆在會話範圍....