2010-02-03 97 views
0

我有一個servlet,它將我們帶到現有的jsp,比如說「home.jsp」。這是由許多jspf片段組成的。因此,結構類似於從非struts 2 action訪問struts 2 jsp

Home.jsp 包括 jsp1,jsp2等等。

現在我們將模塊的一部分遷移到struts2,並在「home.jsp」中包含一個「new.jsp」(使用struts2標籤)。 要做到這一點我已經把

<s:action namespace="/home" name="showNewJsp" executeResult="true"/> 

它返回「new.jsp」作爲結果。

但是當我點擊sevlet時,在渲染過程中,我得到關於struts 2 FilterDispatcher的異常。異常跟蹤附加。

請澄清,如果(1)這是可能的渲染S2 JSP,而不是通過S2的描繪它

   **(2)** any thing is missing ? 

以下是異常跟蹤:

The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location] 
    at org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:60) 
    at org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:44) 
    at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48) 
    at org.apache.jsp.matterhome_jsp._jspx_meth_s_005faction_005f0(matterhome_jsp.java:5021) 
    at org.apache.jsp.matterhome_jsp._jspService(matterhome_jsp.java:1339) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) 
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469) 
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403) 

回答

0

OK,直接使用struts 2標籤是不可能的,但我得到了解決方法。

我們可以使用<iframes>來劃分基於S2的部分。在iframe中提供S2 url作品,視圖可以與基於非S2的jsp一起呈現。