spring mvc前缀文本到所有网址

时间:2013-09-20 22:23:00

标签: spring-mvc

我想在我的所有网址

中添加以下前缀

/ login现在应该是/ springmvc / login

需要做出哪些改变。我添加以下但没有用。我也试过更新所有以下没有运气,有时登录页面工作,但结果页面主要返回“登录”不起作用

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
    <property name="pathPrefix" value="springmvc" />
    <property name="caseSensitive" value="false" />
</bean>

我已更新我的控制器,如下所示

@RequestMapping("/springmvc")
public class LoginController {

我的web.xml如下,我没有更新那些

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

我的春季安全相关代码如下

<http access-decision-manager-ref="accessDecisionManager" auto-config="true">
    <intercept-url pattern="/welcome*" access="ADMIN" />
    <form-login login-page="/login" default-target-url="/welcome"
        authentication-failure-url="/loginfailed" />
    <logout logout-success-url="/logout" />
</http>

1 个答案:

答案 0 :(得分:0)

我首先将'/ springmvc'添加到您的调度程序servlet的映射中。

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/springmvc/*</url-pattern>
</servlet-mapping>

这应该为您的控制器提供一个通用前缀。您可能需要单独调整spring security以使登录/注销链接正常工作。 E.G。

<http access-decision-manager-ref="accessDecisionManager" auto-config="true">
    <intercept-url pattern="/springmvc//welcome*" access="ADMIN" />
    <form-login login-page="/springmvc/login" default-target-url="/springmvc/welcome"
        authentication-failure-url="/springmvc/loginfailed" />
    <logout logout-success-url="/springmvc/logout" />
</http>

ControllerClassNameHandlerMapping类用于设置“约定优于配置”映射。换句话说,路径是从类/包名称派生的,这意味着您根本不需要@RequestMapping注释。