Struts 2扩展名已更改,外部链接.action时重定向

时间:2017-03-21 03:03:07

标签: java struts2

使用以下struts.xml设置,将操作范围从.action更改为.html是成功的。

<constant name="struts.action.extension" value="html"/>

但是,来自Google搜索结果或其他外部链接的旧链接仍指向.action网址,点击时始终会重定向到找不到网页错误。 无论如何,我可以将这些.action网址重定向到最新的.html个链接吗?

1 个答案:

答案 0 :(得分:0)

以下是将.action url替换为.html的拦截器代码。 不要忘记在struts.xml中声明添加的拦截器。 我希望它对寻找它的其他人有所帮助。 ;)

@Override
public String intercept(ActionInvocation actioninvocation) throws Exception {
    HttpServletRequest request = ServletActionContext.getRequest();
    HttpServletResponse response = ServletActionContext.getResponse();
    StringBuffer url = request.getRequestURL();
    if(url != null && url.indexOf(".action") > 0) {
        String fullUrl = url.toString().replace(".action", ".html");
        String queryString = request.getQueryString();
        fullUrl += (queryString == null ? "" : ("?" + queryString));
        // return new url with .html
        response.sendRedirect(fullUrl);
    }
    return actioninvocation.invoke();
}