我们正在将我们的Web应用程序从Spring 2.5迁移到Spring 3.0.5。看起来所有的Controller类(org.springframework.web.servlet.mvc包中的类:BaseCommandController,AbstractCommandController,SimpleFormController等)都已被弃用。我们在应用程序中大量使用了这些类。这些类已被@Controller注释替代。
我有一些关于Spring 3.0.x控制器配置的问题......
<bean id="photosetViewController" class="com.xyz.web.PhotosetViewController"
p:photosetManager-ref="photosetManager"
p:photoManager-ref="photoManager" />
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="alwaysUseFullPath" value="true" />
<property name="interceptors">
<list>
<ref bean="httpRedirectInterceptor"/>
<ref bean="loginInterceptor"/>
</list>
</property>
<property name="mappings">
<value>
/abc.html=abcLookupController
/photoupload.html=photoUploadController
</value>
</property>
</bean>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="alwaysUseFullPath" value="true" />
<property name="interceptors">
<list>
<ref bean="httpRedirectInterceptor"/>
<ref bean="loginInterceptor"/>
<ref bean="userMenuInterceptor" />
</list>
</property>
<property name="mappings">
<value>
/index.html=homepageController
/success.html=simpleController
</value>
</property>
</bean>
<bean id="photosetAddController" class="com.xyz.web.PhotosetAddController"
p:photosetManager-ref="photosetManager"
p:photosetTypeManager-ref="photosetTypeManager"
p:stateManager-ref="stateManager" >
<property name="validator">
<bean class="com.xyz.form.PhotosetAddValidator" />
</property>
<property name="formView" value="photosetadd" />
<property name="successView" value="redirect:/photoset" />
</bean>
非常感谢任何指针。
答案 0 :(得分:2)
正如斯卡弗曼所指出的那样 - 您的代码无需任何修改即可正常工作。我将简要回答你的问题:
您可以使用@Resource(name="beanName")
进行基于名称的注射。但自动装配也是一个不错的选择。 @Autowired
或@javax.inject.Inject
。@Qualifier("name")
或javax.inject
。请注意,您可以使用@InitBinder
来区分具有相同接口/基类的bean。您甚至可以使用{{1}}限定符(在文档中阅读所有这些内容)
拦截器映射可以保持不变
有{{1}},表示initBinder方法。我不能告诉对方。