我正在将一个webapp从2.5开始迁移到Spring 4,但我发现了一个问题。 我有两个不同的url,适用于同一个类的两个不同配置。 在我的旧版本中,我有类似的东西:
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/url1.htm">bean1</prop>
<prop key="/url2.htm">bean2</prop>
</props>
</property>
</bean>
和bean类似
<bean id="bean1" class="com.package.Controller" scope="session">
<property name="property" value="value of property"/>
</bean>
<bean id="bean2" class="com.package.Controller" scope="session">
<property name="property" value="a different value of the same property"/>
</bean>
我怎么能用注释做到这一点?
答案 0 :(得分:1)
在控制器类上使用@Controller注释,并使用@RequestMapping注释映射/url1.htm和/url2.htm。看Spring Reference @RequestMapping。
你会得到这样的东西:
@Controller
@RequestMapping("/url1.htm")
public class bean1{
}
@Controller
@RequestMapping("/url2.htm")
public class bean2{
}
并在每个类中设置bean属性。 如果您不想复制方法,可以这样做
@Controller
public class bean1{
@RequestMapping("/url{id}.htm")
public void setBeanProp(@PathVariable int id){
if (id.equals(1))
...
else
...
}