做练习的时候碰到了一个奇怪的问题 在网上查资也没解决 所以发帖求助一下
这是web.xml中struts跟urlrewrite的配置
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>这是urlrewrite.xml的一个url重写规则
<rule>
<note>测试</note>
<from>/register</from>
<to>/registerAction</to>
</rule>这是struts.xml的action
<action name="registerAction" class="com.ssh.register.action.RegisterAction">
<result name="success">success.jsp</result>
<result name="faild">faild.jsp</result>
<result name="init">register.jsp</result>
</action>
当我在jsp中访问/register时报这个错
HTTP Status 404 - There is no Action mapped for action name registerAction/.
说找不到名字叫“registerAction/”的action 于是把action改成“registerAction/”可以了.. 查了半天资料也不知道为什么做url重写的时候会在路径后面加一个/
今天被这个问题愁死了..大家帮帮忙吧
这是web.xml中struts跟urlrewrite的配置
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>这是urlrewrite.xml的一个url重写规则
<rule>
<note>测试</note>
<from>/register</from>
<to>/registerAction</to>
</rule>这是struts.xml的action
<action name="registerAction" class="com.ssh.register.action.RegisterAction">
<result name="success">success.jsp</result>
<result name="faild">faild.jsp</result>
<result name="init">register.jsp</result>
</action>
当我在jsp中访问/register时报这个错
HTTP Status 404 - There is no Action mapped for action name registerAction/.
说找不到名字叫“registerAction/”的action 于是把action改成“registerAction/”可以了.. 查了半天资料也不知道为什么做url重写的时候会在路径后面加一个/
今天被这个问题愁死了..大家帮帮忙吧
解决方案 »
- jsp如何刷新eclipse 下面的图片目录
- 大家帮我分析下内存溢出的原因
- 中文无法显示
- java如何实现webservice服务端?
- Deamweaver中用JSP通过JDBC和SQL2000连接时问题
- 关于JSF框架下 与数据库连接的问题。
- 有关request.getSession参数(true或者false)的含义
- 请问weblogic.properties文件在哪里放?在线等待!
- 求一个在servlet中转发页面的例子?很着急!!
- 页面打不开后的问题!
- weblogic经常连接池重建,socket write error: Connection reset by peer
- JSP中out.write()和out.print()的区别
<url-pattern>/*</url-pattern>
问题就出现在这
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
把name="/registerAction" 加个/
<action name="registerAction/" class="com.ssh.register.action.RegisterAction">
这样才可以..<action name="/registerAction" class="com.ssh.register.action.RegisterAction">
改成这样不行..还是报
HTTP Status 404 - There is no Action mapped for action name registerAction/.
<to type="redirect">/SSH/registerAction</to>
也不行 改成这样之后直接报Internet Explorer 无法显示该网页..没有经过action ..
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<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>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping><struts>
<constant name="struts.devMode" value="true"/>
<constant name="struts.i18n.encoding" value="GBK" />
<constant name="struts.action.extension" value="do,action"/>
<package name="t" extends="struts-default" namespace="/">
<action name="registerAction" class="com.action.RegisterAction">
<result>/index.jsp</result>
</action>
</package>
</struts>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<listener>
<listener-class>com.ssh.hibernate.HibernateUtil</listener-class>
</listener>
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>
org.apache.struts2.views.JspSupportServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app><to type="redirect">/struts/registerAction.do</to>这种写法会直接访问http://localhost:8080/struts/registerAction 不可能访问到...