关于 struts2.3.14.2 访问不存在的 jsp 页面时,自定义404页面中无法使用 struts2 标签。 100
使用的struts版本为struts2.3.14.2,java1.6,tomcat6。补充说明:自定义404文件存在,并且在web.xml中设置的该路径也正确。已经在自定...
使用的 struts 版本为 struts2.3.14.2, java 1.6, tomcat 6。
补充说明:
自定义404文件存在,并且在 web.xml 中设置的该路径也正确。
已经在自定义的404页面中,正确添加了对 struts2 标签的引用:
<%@ taglib uri="/struts-tags" prefix="s" %>
web.xml 配置如下:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
struts.xml 配置如下:
<default-action-ref name="pageNotFound" />
<action name="pageNotFound">
<result>/404.jsp</result>
</action>
已经在 struts.xml 中配置的默认的action,这样,当访问了不存在的Action时,可以正常跳转到自定义 404 页面。
现在的问题是,如果直接访问不存在的jsp时,例如 /xxx.jsp,由于自定义404页面需要国际化,因此使用了struts2的标签,但是后台会报错:
Exception Processing ErrorPage[errorCode=404, location=/404.jsp]
org.apache.jasper.JasperException: 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]
我也上网查了下,上述异常的大意是说,在 struts2 中必须通过 action 访问 jsp,无法直接访问 jsp。
请问,当直接访问不存在的 jsp 时,此时由于不走action,那么如何解决 404 页面国际化的问题?(即,可以使用 struts2 标签) 展开
补充说明:
自定义404文件存在,并且在 web.xml 中设置的该路径也正确。
已经在自定义的404页面中,正确添加了对 struts2 标签的引用:
<%@ taglib uri="/struts-tags" prefix="s" %>
web.xml 配置如下:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
struts.xml 配置如下:
<default-action-ref name="pageNotFound" />
<action name="pageNotFound">
<result>/404.jsp</result>
</action>
已经在 struts.xml 中配置的默认的action,这样,当访问了不存在的Action时,可以正常跳转到自定义 404 页面。
现在的问题是,如果直接访问不存在的jsp时,例如 /xxx.jsp,由于自定义404页面需要国际化,因此使用了struts2的标签,但是后台会报错:
Exception Processing ErrorPage[errorCode=404, location=/404.jsp]
org.apache.jasper.JasperException: 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]
我也上网查了下,上述异常的大意是说,在 struts2 中必须通过 action 访问 jsp,无法直接访问 jsp。
请问,当直接访问不存在的 jsp 时,此时由于不走action,那么如何解决 404 页面国际化的问题?(即,可以使用 struts2 标签) 展开
3个回答
展开全部
你不走struts2的action了,就表示struts2所有的功能都不能用了。你自己写个类读取struts2的那个国际化properties文件,或自定义tag,然后在jsp页面用,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-26
展开全部
<error-page>
<error-code>404</error-code>
<location>/pageNotFound.action</location>
</error-page>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在web.xml中
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询