我的网络应用程序中的注册帐户(使用struts2创建)获得了一个单独的网站,如http://localhost/accountname
每个帐户都有自己的登录页面。注册后,用户将获得单独的网站http://localhost/accountname
我想首先扫描请求URL(在struts2中),然后将该请求转发到相应的登录页面。
我该怎么做?请帮忙
答案 0 :(得分:1)
您可以通过以下方式获取操作方法中的请求对象:
HttpServletRequest request = ServletActionContext.getRequest();
然后,您可以找到这样的请求网址:
String spath = request.getServletPath();
然后你可以解析它并寻找你想要的模式并相应地转发。
更新:
您可以在struts.xml配置文件中使用包。让我们说“userapps”。
<package name="userapps" extends="default" namespace="/userapps">
<action name="*" class="path.to.your.ActionClass" method="processUrl">
<result name="success" type="redirectAction">
<param name="actionName">userpage</param>
<param name="id">${user.id}</param>
</result>
</action>
</package>
在ActionClass的processURL方法中,您可以提取您感兴趣的URL部分并设置属性,让我们说出用户及其ID。然后,您将从行动中恢复成功。
您将有另一个名为userpage的操作说,它将获取用户的ID并转发到正确的页面。
现在,任何形式为localhost / myapp / userapps /anything.action的url都会调用processURL方法。