在struts2.0中直接访问jsp路径,有时候会出现这样的错误:
Error 500--Internal Server Error
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:52)
at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:49)
at jsp_servlet._report.__customerinfo._jspService(__customerinfo.java:133)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3242)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2010)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1916)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
|
错误提示里已经说得很明白:这通常是由于不经由Filter访问包含struts标签的jsp页面导致的。那么,只要通过配置,使得对jsp页面的访问请求由Filter过滤转发即可。
方法1:在strut.xml中配置一个通用Action,通过这个Action转发到jsp页面。这个时候,原先访问jsp的请求路径就要换成相应的Action路径了。写法如下。
<action name="*">
<result>/{1}.jsp</result>
</action>
方法2:在web.xml中配置Filter的url-parttern。写法如下。其中struts2-dispatcher 是已定义的Filter。
<filter-mapping>
<filter-name>struts2-dispatcher </filter-name>
<url-pattern>*.action
</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2-dispatcher </filter-name>
<url-pattern>*.jsp
</url-pattern>
</filter-mapping>
方法3:在web.xml中配置扩展名。写法如下。配置完成后,就可以这样访问了:http://localhost:8080/yk_cpp/public/index.html
在web.xml中加
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>html</param-value>
</init-param>
在struts.xml中加
<constant
name="struts.action.extension" value="html" />
方法4:修改struts.properties文件。去struts2的包里看一下default.properties,里面默认的action是struts.action.extension=action,,(注意有两个逗号,意思是第二个配置是空)空是全部拦截。在这里修改要拦截的带扩展名的文件,比如struts.action.extension=action,jnlp,do
不过这些没有经过测试;因为我的本地服务器没有出500的错误,问题是出在正式服务器上的,所以没法调试。下次设法在本地重现一下问题,然后挨个试一试。
分享到:
相关推荐
3. **org.apache.struts2.dispatcher**:核心包之一,包含重要的类如`Dispatcher`,用于初始化框架和调用指定Action的`execute()`方法。 4. **org.apache.struts2.impl**:定义了三个类`StrutsActionProxy`、`...
总的来说,`org.apache.struts2.dispatcher.FilterDispatcher`是Struts 2框架中一个至关重要的组件,负责请求的分发和Action的调用,对于理解和掌握Struts 2的运行机制具有重要意义。开发者需要熟悉其工作原理和配置...
The org.apache.struts2.dispatcher.multipart.MultiPartRequest parser implementation for a multipart request (file upload) 专为multipart请求信息使用的org.apache.struts2.dispatcher.multipart....
at org.apache.struts2.dispatcher.Dispatcher.cleanUpRequest(Dispatcher.java:837) at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupRequest(PrepareOperations.java:103) at org.apache.struts2....
Struts2.5.2是Apache Struts框架的一个版本,它是基于MVC设计模式的Java Web应用程序开发框架。本文将详细介绍Struts2.5.2的配置过程以及可能遇到的问题和解决方案。 首先,配置Struts2.5.2需要从官方站点下载所需...
org.apache.struts2, org.apache.struts2.components, org.apache.struts2.components.template, org.apache.struts2.config, org.apache.struts2.dispatcher, org.apache.struts2.dispatcher.mapper, org.apache....
Struts的核心组件包括Action、ActionForm、ActionMapping、Controller(Struts Dispatcher)以及一系列的配置文件,如struts-config.xml。Action是处理用户请求的类,ActionForm用于在Action和视图之间传递数据,...
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter <filter-name>struts2 <url-pattern>/* ``` 自从Struts2.1.3版本之后,原来的`FilterDispatcher`类已经被标记为过时...
标题中的“tomcat报错Unable to find 'struts multipart saveDir'”是一个常见的问题,通常出现在使用Apache Struts框架,并且在处理multipart/form-data类型的请求时。这种类型的请求通常用于上传文件,而`saveDir`...
Struts Dispatcher,中文通常称为Struts调度器,是Apache Struts框架的核心组件之一。它在Struts架构中扮演着至关重要的角色,负责处理HTTP请求并分派到相应的控制器(Action)进行业务逻辑处理。这个"struts_...
Struts1和Struts2是两个非常著名的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(Model-View-Controller)架构的应用程序。虽然它们在目标上相似,但在设计模式、功能特性和使用体验上存在显著差异。...
9. struts.dispatcher.parametersWorkaround:这是一个布尔值,用于确定是否使用Servlet请求参数工作区(PARAMETERSWORKAROUND),该工作区用于某些版本的WebLogic。 10. struts.enable.DynamicMethodInvocation:...
Struts 1的核心组件包括Action、Form、Dispatcher(控制器)和Tiles(布局管理)。ActionServlet作为核心控制器,负责接收请求,调用相应的Action,然后将结果传递给视图。Form Bean用于在请求之间存储数据,而Tiles...
- `web.xml`:需要更新过滤器配置,确保Struts2的前端控制器(`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`)已经正确配置。 - `pom.xml`:如果你的项目是Maven构建的,确保`pom.xml...
在Struts1中,控制器由Struts Dispatcher Servlet(也称为ActionServlet)执行,它根据struts-config.xml配置文件中的映射规则,将请求转发到相应的Action。 **Struts1工作原理**: 1. 用户发起HTTP请求到服务器。 ...
Struts2内置了多种结果类型,如dispatcher(重定向或转发到一个JSP页面)、stream(下载文件)等,也可以自定义结果类型。 5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,...
8. **请求处理(Request Handling)**:`org.apache.struts2.dispatcher.ng.filter`包中的`StrutsPrepareAndExecuteFilter`是Struts2与Servlet容器交互的关键,它负责准备请求并执行Action。 9. **类型转换(Type ...
**示例**:通常使用默认实现类`org.apache.struts2.dispatcher.multipart.MultiPartRequest`。 **应用场景**:当需要扩展或自定义文件上传功能时,可以替换默认实现类。 #### struts.multipart.saveDir **含义**...
默认的Result是dispatcher,它将结果渲染到JSP页面。 5. **动态方法调用(Dynamic Method Invocation,DMI)** - DMI允许通过URL直接调用Action的方法,而不是仅限于默认的execute方法。这增加了灵活性,但同时也需要...
that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different ...