2010-02-03 99 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一起呈现。