IndexDelegateAction
package com.gt.kathleen.http.action.api; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.swing.text.View; import org.springframework.web.servlet.ModelAndView; public class IndexDelegateAction { public ModelAndView index(HttpServletRequest req, HttpServletResponse resp) { System.out.println(" index ========== >>>"); return new ModelAndView("index", "date", new Long(System.currentTimeMillis())); } public ModelAndView indexOne(HttpServletRequest req, HttpServletResponse resp) { System.out.println(" indexOne ========== >>>"); return new ModelAndView("index", "date", new Long(System.currentTimeMillis())); } public ModelAndView findOwners(HttpServletRequest req, HttpServletResponse resp) { System.out.println(" findOwnersForm view ========== >>>"); return new ModelAndView("findOwnersForm"); } public ModelAndView velocityView(HttpServletRequest req, HttpServletResponse resp) { System.out.println(" velocityView view ========== >>>"); return new ModelAndView("velocityViewName"); } public ModelAndView findOwners2(HttpServletRequest req, HttpServletResponse resp) { System.out.println(" findOwners view========== >>>"); return new ModelAndView("findOwners"); } public ModelAndView indexTwo(HttpServletRequest req, HttpServletResponse resp,Object command) { System.out.println(" indexTwo ========== >>> command" + command); return new ModelAndView("index", "date", new Long(System.currentTimeMillis())); } public Map indexThree(HttpServletRequest req, HttpServletResponse resp) { System.out.println(" indexThree ========== >>>"); return new HashMap(); } public void indexFour(HttpServletRequest req, HttpServletResponse resp) { System.out.println(" indexFour ========== >>>"); //return new ModelAndView("index", "date", new Long(System.currentTimeMillis())); } }
views_zh_TW.properties
#welcomeView.class=org.springframework.web.servlet.view.tiles.TilesView #welcomeView.url=welcome (<b>this is the name of a definition</b>) velocityViewName.(class)=org.springframework.web.servlet.view.velocity.VelocityView velocityViewName.url=velocityView.vm findOwnersForm.(class)=org.springframework.web.servlet.view.JstlView findOwnersForm.url=/WEB-INF/jsp/kathleen/findOwners.jsp
kathleen_servletContext-api.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- 设置委托的 multiActionController Action --> <bean id="indexActionController" class="org.springframework.web.servlet.mvc.multiaction.MultiActionController"> <property name="methodNameResolver" ref="propsMethodNameResolver"/> <property name="delegate" ef="indexDelegate"/> </bean> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="order" value="1"/> <property name="alwaysUseFullPath" value="true"/> <property name="interceptors"> <list><ref bean="logInterceptor" /></list> </property> <property name="mappings"> <props> <!-- <prop key="/wap/main.do">avcVideoMultiAction</prop> <prop key="/wap/index.do">avcVideoMultiAction</prop> <prop key="/**/index.do">indexActionController</prop> <prop key="/action/*book.do">indexActionController</prop> 设置被被处理的 请求的URL --> <prop key="/**/index.do">indexActionController</prop> </props> </property> </bean> <bean id="propsMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver"> <!-- Simple URL 里面所有 /**/index.do 请求 都交给 indexDelegateAction 处理 if urlMap="/index.do" 则request请求只能匹配 <prop key="/*/index.do">index</prop> --> <property name="mappings"> <props> <prop key="/*/index.do">index</prop> <prop key="/**/index.do">indexOne</prop> <prop key="/index.do">indexTwo</prop> <prop key="/**/action/index.do">indexThree</prop> <prop key="/*/action/index.do">findOwners</prop> <prop key="/*/velocity/index.do">velocityView</prop> </props> <!-- <value> 这里不能随意修改 后缀的.. .do .html .go 要依照web.xml 文件的配置 <servlet-mapping> <servlet-name>dispatchServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> /*/index.do=index /**/index.form=indexOne /**/index.html=indexTwo /**/index.go=indexThree /*/action/index.action=indexFour </value> --> </property> </bean> <bean id="kathleen_paraMethodResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName" value="action"/> <property name="defaultMethodName" value="index"/> </bean> <bean id="indexDelegate" class="com.gt.kathleen.http.action.api.IndexDelegateAction"></bean> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> <property name="order" value="2"/> </bean> <bean name="/editaccount.do" class="com.gt.kathleen.http.action.api.EditAccountAction"> <property name="cacheSeconds" value="120"/> </bean> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/kathleen/" /> <property name="suffix" value=".jsp" /> </bean> <!-- jstl 视图Resovler springMVC 内定处理的就是 jsp 如果不显示设置的话 默认 就是这个 resolver --> <bean id="viewResolver2" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/other/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 资源文件绑定处理 resolver --> <bean id="resourceViewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="order" value="1"></property> <property name="basename" value="views" /> <property name="defaultParentView" value="parentView" /> </bean> <!-- .vm resovler --> <bean class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.velocity.VelocityView"> </property> <!-- 这里不允许加前缀 需要在 velocityConfig 设置 查找的路经 <property name="resourceLoaderPath" value="/WEB-INF/velocity/"/> --> <property name="prefix" value=""/> <property name="suffix" value=".vm"/> </bean> <!-- This bean sets up the Velocity environment for us based on a root path for templates. Optionally, a properties file can be specified for more control over the Velocity environment, but the defaults are pretty sane for file based template loading. 视图渲染技术 order 只能 使用一个 就是Order 最新小的 哪一个 不想 handldermapping 那样具有chaining 概念 要想使用 多种视图 请使 org.springframework.web.servlet.view.ResourceBundleViewResolver 视图技术 --> <!-- 要使用 velocity 技术 需要 设置 这个东西 --> <bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer" singleton="true"> <!-- <property name="resourceLoaderPath" value="/WEB-INF/velocity/"/> <property name="configLocation"><value>/WEB-INF/velocity.properties</value></property> --> <property name="velocityProperties"> <props> <prop key="resource.loader">file</prop> <prop key="file.resource.loader.class">org.apache.velocity.runtime.resource.loader.FileResourceLoader</prop> <prop key="file.resource.loader.path">/WEB-INF/velocity/</prop> <prop key="file.resource.loader.cache">false</prop> </props> </property> </bean> </beans>