小弟最近在使用spring2.5搭建mvc框剪,具体过程如下:
web.xml:
------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>testFrame</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testFrame</servlet-name>
<url-pattern>*.spr</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>-----------------------
testFrame-servlet.xml
-----------------------
<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <import resource="classpath:applicationContext.xml" /> <!-- 定义映射 -->
<bean id="simpleUrlhandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- 定义控制层类的映射 -->
<prop key="/demo.spr">demoController</prop>
</props>
</property>
</bean> <!-- 指定提取方法的参数名为action,用来请求后的*.spr?methodOp=method -->
<bean name="methodNameResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName">
<value>methodOp</value>
</property>
</bean> <!-- 定义视及路径,prefix="/"表示jsp都放在"/"根目录下面,suffix=".jsp"表示JSP页面的后缀都是.jsp -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/" p:suffix=".jsp" /> <!-- 映射控制层的具体类 -->
<bean name = "demoController" class="com.spr.pro.controller.DemoController">
<property name="methodNameResolver">
<ref bean="methodNameResolver"/>
</property>
</bean>
</beans>-----------------DemoController.java
------------------------
package com.spr.pro.controller;import java.util.HashMap;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import org.springframework.web.servlet.ModelAndView;public class DemoController extends MultiActionController { public ModelAndView test1111(){
HashMap model = new HashMap();
String navigation = "test";
System.out.println("this is controller!!!");
return new ModelAndView();
}
}-----------------------------------index.jsp
-----------------------------------
<body>
<form action="/springTest/demo.spr?methodOp=test1111" method="post">
<input type = "submit"/>
</form>
</body>当点击"submit"按钮后,应该运行DemoController.java类中的test1111方法,并在后台打印出“this is controller!!!”,
但是点击后,却出现警告:
WARN PageNotFound:432 - No request handling method with name 'test111' in class [com.spr.pro.controller.DemoController]小弟曾将testFrame-servlet.xml中的:
<bean name = "demoController" class="com.spr.pro.controller.DemoController">
<property name="methodNameResolver">
<ref bean="methodNameResolver"/>
</property>
</bean>
"class='com.spr.pro.controller.DemoController'"改为"class='com.spr.pro.controller.DemoController1'
随即出现类名无法找到的错误,由此可见,类应该是映射成功了的,但是却找不到test111的方法,小弟很是纳闷,
请各位高手指点江山啊!!!!
web.xml:
------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>testFrame</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testFrame</servlet-name>
<url-pattern>*.spr</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>-----------------------
testFrame-servlet.xml
-----------------------
<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <import resource="classpath:applicationContext.xml" /> <!-- 定义映射 -->
<bean id="simpleUrlhandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- 定义控制层类的映射 -->
<prop key="/demo.spr">demoController</prop>
</props>
</property>
</bean> <!-- 指定提取方法的参数名为action,用来请求后的*.spr?methodOp=method -->
<bean name="methodNameResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName">
<value>methodOp</value>
</property>
</bean> <!-- 定义视及路径,prefix="/"表示jsp都放在"/"根目录下面,suffix=".jsp"表示JSP页面的后缀都是.jsp -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/" p:suffix=".jsp" /> <!-- 映射控制层的具体类 -->
<bean name = "demoController" class="com.spr.pro.controller.DemoController">
<property name="methodNameResolver">
<ref bean="methodNameResolver"/>
</property>
</bean>
</beans>-----------------DemoController.java
------------------------
package com.spr.pro.controller;import java.util.HashMap;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
import org.springframework.web.servlet.ModelAndView;public class DemoController extends MultiActionController { public ModelAndView test1111(){
HashMap model = new HashMap();
String navigation = "test";
System.out.println("this is controller!!!");
return new ModelAndView();
}
}-----------------------------------index.jsp
-----------------------------------
<body>
<form action="/springTest/demo.spr?methodOp=test1111" method="post">
<input type = "submit"/>
</form>
</body>当点击"submit"按钮后,应该运行DemoController.java类中的test1111方法,并在后台打印出“this is controller!!!”,
但是点击后,却出现警告:
WARN PageNotFound:432 - No request handling method with name 'test111' in class [com.spr.pro.controller.DemoController]小弟曾将testFrame-servlet.xml中的:
<bean name = "demoController" class="com.spr.pro.controller.DemoController">
<property name="methodNameResolver">
<ref bean="methodNameResolver"/>
</property>
</bean>
"class='com.spr.pro.controller.DemoController'"改为"class='com.spr.pro.controller.DemoController1'
随即出现类名无法找到的错误,由此可见,类应该是映射成功了的,但是却找不到test111的方法,小弟很是纳闷,
请各位高手指点江山啊!!!!
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class Timport static org.junit.Assert.*;import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class xxxTest {
private static BeanFactory factory = new ClassPathXmlApplicationContext("*-*.xml");
你的bean类 你的bean对象 = (你的bean类)factory.getBean("你的bean名");
@Test
public void test方法名() {
测试代码自己写。
}
}