關於MultiActionController中方法不能返回含有ModelAndView方法的問題

繼承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]

 

 

究竟這是什麼問題,什麼環節出錯?

 

有誰能解決嗎?

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章