您现在的位置: 软界网软界问答WEB开发JSP > 问题显示
我要提问    
提示:提问和回答别人的问题均可赢得积分
加入收藏我要投诉 我来回答
此问题已经被浏览377次,收藏:0次. 所属类别:[JSP]
问题:Struts 跳转异常------DispatchMapping[/articleQuery] does not define a handler property?
Struts配置
<action
path="/articleQuery"
validate="false" >
<forward name="next" path="/show_article.jsp"/>
</action>

Spring配置
<bean name="/articleQuery" class="nuc.hailang.struts.article.ArticleAction">
<property name="articleService" ref="articleService"/>
</bean>

页面跳转
<td width="40%" align="center">
<html:link action="/articleQuery.do?name=${community.name}">
${community.name}
</html:link>
</td>
这个community是保存在request中的,能顺利取得

articleQueryAction
public class ArticleQueryAction extends Action {
private ArticleService articleService;
public void setArticleService(ArticleService articleService) {
this.articleService = articleService;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String name = request.getParameter("name");
System.out.println(name);
List list = articleService.queryByCommunity(name);
request.setAttribute("articles", list);
return mapping.findForward("next");
}
}

点那个链接进去就报异常
javax.servlet.ServletException: DispatchMapping[/articleQuery] does not define a handler property
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:176)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
nuc.hailang.util.SetCharacterEncoding.doFilter(SetCharacterEncoding.java:22)

哪位达人帮忙看看?感觉很简单的内容出现很奇异的问题。
提问时间:2007-9-29 11:27:05 回答次数:(14) 提问人:软界网友 我来回答
回答(1)
class ArticleQueryAction extends Action


这个Action到底是 继承自 DispatchAction 还是Action

怎么看你的信息是Dispatch 的Action 没有指定相应的方法
回答人:软界网友 我来回答
回答(2)
<action
path="/articleQuery"
type呢~~~~~~~~~
validate="false" >
<forward name="next" path="/show_article.jsp"/ >
</action >

回答人:软界网友 我来回答
回答(3)
struts-config.xml中加入
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/bean-config.xml"/>
</plug-in>
用来和spring联系。
然后
<action
path="/articleQuery"
type=“org.springframework.web.struts.DelegatingActionProxy”
validate="false" >
<forward name="next" path="/show_article.jsp"/ >
</action >
用来将/articleQuery的请求代理到spring中进行。
回答人:软界网友 我来回答
回答(4)
回2楼
action交给spring管理
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" />
</controller>
回答人:软界网友 我来回答
回答(5)

回lz,你交给spring处理也要把spring的代理写上的~~~

像3#那样就可以了~~

另外在spring的配置文件中要添加与这个action对应的bean
回答人:软界网友 我来回答
回答(6)
回楼上--加一个控制器就不用写type了
<controller >
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" / >
</controller >
回答人:软界网友 我来回答
回答(7)
我用的spring跟你们用法有些不同~
我不是把spring作为controller来引入的~
这样的话你再想扩展processor的话就比较费劲了~
我的做法是在web.xml中加载pring配置文件

<!-- contextConfigLocation 属性代表spring-config.xml文件的地址-->
<context-param>
<description> Spring2.0 Config </description>
<param-name> contextConfigLocation </param-name>
<param-value> /WEB-INF/config/spring-config.xml </param-value>
</context-param>
<!-- log4jConfigLocation 属性代表log4j.properties文件的地址-->
<context-param>
<param-name> log4jConfigLocation </param-name>
<param-value> /WEB-INF/config/log4j.properties </param-value>
</context-param>
<!-- 加上这个Spring的Log4j侦听类,注意在JBOSS里面,不需要这个类,注释掉,不然会冲突 -->
<listener>
<listener-class> org.springframework.web.util.Log4jConfigListener </listener-class>
</listener>
<!-- 加上这个Spring的侦听类 -->
<listener>
<listener-class> com.lr.daniel.dakcardsystem.server.web.ServiceContextListener </listener-class>
</listener>
===============================================================================
spring的侦听类是用来加载spring-config.xml文件的,也就是初始化spring~~
com.lr.daniel.dakcardsystem.server.web.ServiceContextListener
这个类继承自spring的org.springframework.web.context.ContextLoaderListener

我添加了一些自己要用到的必要代码~~

这样做的好处就是可以把struts的controller空出来做其他的处理~~
struts-config也不需要作特殊处理,只是把action的type设定为
type=“org.springframework.web.struts.DelegatingActionProxy”
就可以了~~

回答人:软界网友 我来回答
回答(8)



<action
path="/articleQuery"
validate="false" parameter="XXXX" >
<forward name="next" path="/show_article.jsp"/ >
</action>


把action配置加上红色部分试试

或者先不用Spring管理

定位一下问题
回答人:软界网友 我来回答
回答(9)
这个就是普通action ...
回答人:软界网友 我来回答
回答(10)
问题解决...
<bean name="/articleQuery" class="nuc.hailang.struts.article.ArticleAction" >
修改过一个bean,这里忘记改了...谢谢楼上的各位耐心指点
回答人:软界网友 我来回答
相关问题
关键字: lt,gt,param,web,path,springframework,value,controller,spanstyle,apache,FF0000,color, org,type,ActionServlet,show_article
我来回答
验证码