浏览 7265 次
锁定老帖子 主题:struts跳转问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-07
<!-- 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> struts-config-admin.xml <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> spring的action-servlet.xml <beans default-autowire="byName" default-lazy-init="true"> <bean name="/admin/codecatalog" class="com.yahaitt.web.CodecatalogAction"/> </beans> 页面代码: <li><a href="admin/codecatalog.do">Codecatalog</a></li> 当点击这个链接后 进入页面: :<a href="${ ctx }/admin/codecatalog.do?method=edit&id=1">Edit</a>查看源代码为: <a href="/searcher/admin/codecatalog.do?method=edit&id=1">Edit</a> //searcher为项目名 当点击Edit后报错误:org.apache.jasper.JasperException: Cannot retrieve mapping for action /codecatalog 跟踪了下代码, debug到 return mapping.findForward(LIST); 这句代码出错了。 也就是说:struts-config.xml里有没有配置/codecatalog映射,只配置了/admin/codecatalog映射,所以 报异常: org.apache.jasper.JasperException: Cannot retrieve mapping for action /codecatalog 不知道是什么原因?谢谢。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-07
问题已经解决
主要原因是因为跳转的页面/admin/{1}Form.jsp里有这样一段代码 : <html:form action="/codecatalog.do" focus="name" styleClass="form" onsubmit="return validateUserForm(this)"> 这段代码用到了struts标签,会自动立即去struts-config.xml里找/codecatalog这个映射,而这个映射是不存在的,所以就报错了。 所以改为 <html:form action="/admin/codecatalog.do" focus="name" styleClass="form" onsubmit="return validateUserForm(this)"> 这样就可以了。 这段代码的struts标签里的action也不能这样写:action="${ctx}/admin/codecatalog.do" 也就是说不能带${ctx} |
|
返回顶楼 | |
发表时间:2007-08-11
用了html标签以后,action对应的就是struts配置文件中的对应的映射。
在html标签里也不能使用jstl的标签,他们的作用域是不一样的。 |
|
返回顶楼 | |
发表时间:2007-08-12
我觉得用struts标签很有局限性(我指html:*),有的时候还不如直接写html的元素,但出于规范,用struts标签还是有必要的.
|
|
返回顶楼 | |