繼承MultiActionController的SysAdminAction類
package com.wop.website.action;
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.wop.common.springframework.web.servlet.ModelAndView;
public class SysAdminAction
extends org.springframework.web.servlet.mvc.multiaction.MultiActionController {
public String toView;
public void showSysAdminFrame(HttpServletRequest request,
HttpServletResponse response,ModelAndView mav) throws Exception {
System.out.println(this.getClass() + "." + "showSysAdminFrame()");
mav.setViewName(this.toView);
//return new ModelAndView("/sysadmin/common/sysAdminFrame");
}
public ModelAndView doTree(HttpServletRequest request,
HttpServletResponse response,Exception e){
System.out.println(this.getClass() + "." + "showTree()");
return new ModelAndView("sysAdminBar");
//return new ModelAndView(this.toView,new HashMap());
//return null;
}
public String getToView() {
return toView;
}
public void setToView(String toView) {
this.toView = toView;
}
}
actionConfig.xml配置springMVC
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/sysAdmin.html">sysAdminAction</prop> </props> </property> </bean> </bean> <bean id="paraMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName" value="method" /> </bean> <bean id="sysAdminAction" class="com.wop.website.action.SysAdminAction"> <property name="methodNameResolver" ref="paraMethodNameResolver" /> <property name="toView"> <value>sysAdminBar</value> </property> </bean> </beans>
freeMarker配置在springConfig.xml如下:
<!-- freeMarker環境 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/ftl" /> <property name="defaultEncoding" value="UTF-8" /> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">1000</prop> <prop key="locale">zh_CN</prop> </props> </property> </bean> <!-- freeMarker視圖 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="suffix" value=".ftl" /> <property name="contentType" value="text/html;charset=utf-8" /> <property name="exposeRequestAttributes" value="true" /> <property name="exposeSessionAttributes" value="true" /> </bean>
當訪問action中的兩個方法時,問題出現了。。
http://127.0.0.1/sysAdmin.html?method=showSysAdminFrame
當方法使用void時,url請求正常。
http://http://127.0.0.1/sysAdmin.html?method=doTree
當方式使用ModelAndView時,URL請求不到,tomcat報warn錯誤:
warn錯誤是:
2008-07-27 23:57:28,487 WARN [http-80-Processor25] (MultiActionController.java:394) - No request handling method with name 'doTree' in class [com.wop.website.action.SysAdminAction]
究竟這是什麼問題,什麼環節出錯?
有誰能解決嗎?