web.xml
[code]<!-- Struts Action Mapping-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml,
/WEB-INF/modules/struts-config-admin.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>[/code]
struts-config-admin.xml
[code]
<form-beans>
<form-bean name="codecatalogForm" type="org.apache.struts.validator.LazyValidatorForm"/>
</form-beans>
<action-mappings>
<!--使用通配符,对/admin/ 进行批量配置-->
<action path="/admin/*" name="{1}Form" scope="request" parameter="method" validate="false">
<forward name="list" path="/WEB-INF/pages/admin/{1}List.jsp"/>
<forward name="edit" path="/WEB-INF/pages/admin/{1}Form.jsp"/>
<forward name="success" path="/admin/{1}.do?method=list" redirect="true"/>
</action>
</action-mappings>[/code]
spring的action-servlet.xml
[code]<beans default-autowire="byName" default-lazy-init="true">
<bean name="/admin/codecatalog" class="com.yahaitt.web.CodecatalogAction"/>
</beans>[/code]
页面代码:
[code]<li><a href="admin/codecatalog.do">Codecatalog</a></li>[/code]
当点击这个链接后
进入页面:
[code]:<a href="${ ctx }/admin/codecatalog.do?method=edit&id=1">Edit</a>[/code]查看源代码为:
[code]<a href="/searcher/admin/codecatalog.do?method=edit&id=1">Edit</a> //searcher为项目名
[/code]
当点击Edit后报错误:org.apache.jasper.JasperException: Cannot retrieve mapping for action /codecatalog
跟踪了下代码, debug到
[code]return mapping.findForward(LIST);[/code]
这句代码出错了。
也就是说:struts-config.xml里有没有配置/codecatalog映射,只配置了/admin/codecatalog映射,所以 报异常:
org.apache.jasper.JasperException: Cannot retrieve mapping for action /codecatalog
不知道是什么原因?谢谢。
[code]<!-- Struts Action Mapping-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml,
/WEB-INF/modules/struts-config-admin.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>[/code]
struts-config-admin.xml
[code]
<form-beans>
<form-bean name="codecatalogForm" type="org.apache.struts.validator.LazyValidatorForm"/>
</form-beans>
<action-mappings>
<!--使用通配符,对/admin/ 进行批量配置-->
<action path="/admin/*" name="{1}Form" scope="request" parameter="method" validate="false">
<forward name="list" path="/WEB-INF/pages/admin/{1}List.jsp"/>
<forward name="edit" path="/WEB-INF/pages/admin/{1}Form.jsp"/>
<forward name="success" path="/admin/{1}.do?method=list" redirect="true"/>
</action>
</action-mappings>[/code]
spring的action-servlet.xml
[code]<beans default-autowire="byName" default-lazy-init="true">
<bean name="/admin/codecatalog" class="com.yahaitt.web.CodecatalogAction"/>
</beans>[/code]
页面代码:
[code]<li><a href="admin/codecatalog.do">Codecatalog</a></li>[/code]
当点击这个链接后
进入页面:
[code]:<a href="${ ctx }/admin/codecatalog.do?method=edit&id=1">Edit</a>[/code]查看源代码为:
[code]<a href="/searcher/admin/codecatalog.do?method=edit&id=1">Edit</a> //searcher为项目名
[/code]
当点击Edit后报错误:org.apache.jasper.JasperException: Cannot retrieve mapping for action /codecatalog
跟踪了下代码, debug到
[code]return mapping.findForward(LIST);[/code]
这句代码出错了。
也就是说:struts-config.xml里有没有配置/codecatalog映射,只配置了/admin/codecatalog映射,所以 报异常:
org.apache.jasper.JasperException: Cannot retrieve mapping for action /codecatalog
不知道是什么原因?谢谢。