可以同时使用@RequestMapping和struts的映射吗?

时间:2012-10-09 07:40:24

标签: spring annotations struts

我可以同时在struts.xml和Spring的RequestMapping注释中使用动作映射吗? (我的环境是Struts 2.3.1和Spring 3.1.1)

struts.xml这样的事情中:

<package name="proj" namespace="/proj" extends="proj-default">
    <action name="home" class="proj">
        <result name="success" type="tiles">proj.home</result>
    </action>
</package>

我的一个课程注释如下:

@Controller
@RequestMapping("/dialog")
public class MyDialogController {
    ...
    @RequestMapping(value="/info", method=RequestMethod.GET)
    public String info(NativeWebRequest request) {
        ...
    }
}

1 个答案:

答案 0 :(得分:0)

我发现答案是肯定的。
我只需要另外配置弹簧配置。

首先,我在DispatcherServlet

中添加Spring的web.xml
<servlet>
    <servlet-name>profile</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>profile</servlet-name>
    <url-pattern>/testProj/*</url-pattern>
</servlet-mapping>

然后在applicationContext.xml

中另外添加以下代码
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

最后,我创建了一个profile-servlet.xml,其中包含请求映射设置

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <value>
            /profile/*=profileController
        </value>
    </property>
    <property name="alwaysUseFullPath" value="true" />
</bean>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

现在它运作良好。