使用以下struts.xml设置,将操作范围从.action
更改为.html
是成功的。
<constant name="struts.action.extension" value="html"/>
但是,来自Google搜索结果或其他外部链接的旧链接仍指向.action
网址,点击时始终会重定向到找不到网页错误。
无论如何,我可以将这些.action
网址重定向到最新的.html
个链接吗?
答案 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();
}